; Segment Number : 3 ; Alloc Size : 3C7Ah ; Offset in the file: 10A30h Length: 3C7Ah ; Attributes (1D30): CODE Moveable Pure Relocations Discardable DPL: 3 ; 様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様 ; Segment type: Regular cseg03 segment para public 'CODE' use16 assume cs:cseg03 assume es:nothing, ss:nothing, ds:dseg08, fs:nothing, gs:nothing ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame sub_1038_0 proc near ; CODE XREF: sub_1038_47A+15Ap arg_0 = word ptr 4 arg_2 = word ptr 6 push bp mov bp, sp mov bx, [bp+arg_0] mov es, [bp+arg_2] mov word ptr es:[bx], 1 mov word ptr es:[bx+2], 2 mov word ptr es:[bx+4], 4 mov word ptr es:[bx+6], 8 mov word ptr es:[bx+8], 10h mov word ptr es:[bx+0Ah], 20h ; ' ' mov word ptr es:[bx+0Ch], 40h ; '@' mov word ptr es:[bx+0Eh], 80h ; '' mov word ptr es:[bx+10h], 100h mov word ptr es:[bx+12h], 200h mov word ptr es:[bx+14h], 400h mov word ptr es:[bx+16h], 800h mov word ptr es:[bx+18h], 1000h mov word ptr es:[bx+1Ah], 2000h mov word ptr es:[bx+1Ch], 4000h mov word ptr es:[bx+1Eh], 8000h leave retn sub_1038_0 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _DDCreateDriverObject proc far ; CODE XREF: CONTROL1+B7P _SetupG2+7CP var_2 = byte ptr -2 arg_0 = word ptr 6 mov ax, ds nop inc bp push bp mov bp, sp push ds mov ds, ax mov ax, word ptr _lpDDHAL_SetInfo+2 or ax, word ptr _lpDDHAL_SetInfo jz loc_1038_8A push [bp+arg_0] call _SetDriverInfo add sp, 2 jmp short loc_1038_8C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_8A: ; CODE XREF: _DDCreateDriverObject+11j xor ax, ax loc_1038_8C: ; CODE XREF: _DDCreateDriverObject+1Ej lea sp, [bp+var_2] pop ds pop bp dec bp retf _DDCreateDriverObject endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _DDNewCallbackFns proc far ; CODE XREF: CONTROL1+F0P var_2 = byte ptr -2 arg_0 = dword ptr 6 mov ax, ds nop inc bp push bp mov bp, sp push ds mov ds, ax les bx, [bp+arg_0] les bx, es:[bx+4] mov ax, es:[bx+4] mov dx, es:[bx+6] mov word ptr _lpDDHAL_SetInfo, ax mov word ptr _lpDDHAL_SetInfo+2, dx lea sp, [bp+var_2] pop ds pop bp dec bp retf _DDNewCallbackFns endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _DDGet32bitDriverName proc far ; CODE XREF: CONTROL1+10BP var_2 = byte ptr -2 arg_0 = word ptr 6 arg_2 = word ptr 8 mov ax, ds nop inc bp push bp mov bp, sp push ds mov ds, ax push di push si mov si, [bp+arg_0] mov ax, [bp+arg_2] push ax push si push ds push offset ??_C@_0M@ECHA@NmgcDD5?4dll?$AA@ ; "NmgcDD5.dll" mov di, ax call LSTRCPY lea ax, [si+104h] push di push ax push ds push offset ??_C@_0L@FCGC@DriverInit?$AA@ ; "DriverInit" call LSTRCPY mov es, di mov word ptr es:[si+144h], offset _ddns mov es:[si+146h], ds mov al, byte ptr wChipId sub ah, ah mov word_1947_CB5C, ax cmp ISBUSMASTER, ah jz loc_1038_110 mov ax, POSTBUFFERDATASIZE mov dx, word_1947_988A jmp short loc_1038_113 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_110: ; CODE XREF: _DDGet32bitDriverName+48j xor ax, ax cwd loc_1038_113: ; CODE XREF: _DDGet32bitDriverName+51j mov word_1947_CB6A, ax mov word_1947_CB6C, dx push selVGA call GETSELECTORBASE mov word_1947_CB72, ax mov word_1947_CB74, dx call READDXRUNTIME mov word_1947_CBAE, ax mov word_1947_CBB0, dx pop si pop di lea sp, [bp+var_2] pop ds pop bp dec bp retf _DDGet32bitDriverName endp ; sp = -12h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame sub_1038_140 proc near ; CODE XREF: sub_1038_47A+331p arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 arg_6 = word ptr 0Ah push bp mov bp, sp push di mov di, [bp+arg_0] mov bx, [bp+arg_4] mov es, [bp+arg_6] mov word ptr es:[bx], 20h ; ' ' mov word ptr es:[bx+2], 0 sub ax, ax mov es:[bx+0Ah], ax mov es:[bx+8], ax mov word ptr es:[bx+4], 40h ; '@' mov es:[bx+6], ax mov es, [bp+arg_2] test byte ptr es:[di+10h], 1 jz loc_1038_183 mov es, [bp+arg_6] mov word ptr es:[bx+4], 60h ; '`' mov es:[bx+6], ax loc_1038_183: ; CODE XREF: sub_1038_140+34j mov es, [bp+arg_2] mov ax, es:[di+0Ch] mov dx, es:[di+0Eh] mov es, [bp+arg_6] mov es:[bx+0Ch], ax mov es:[bx+0Eh], dx mov es, [bp+arg_2] mov ax, es:[di+14h] mov dx, es:[di+16h] mov es, [bp+arg_6] mov es:[bx+10h], ax mov es:[bx+12h], dx mov es, [bp+arg_2] mov ax, es:[di+18h] mov dx, es:[di+1Ah] mov es, [bp+arg_6] mov es:[bx+14h], ax mov es:[bx+16h], dx mov es, [bp+arg_2] mov ax, es:[di+1Ch] mov dx, es:[di+1Eh] mov es, [bp+arg_6] mov es:[bx+18h], ax mov es:[bx+1Ah], dx mov es, [bp+arg_2] mov ax, es:[di+20h] mov dx, es:[di+22h] mov es, [bp+arg_6] mov es:[bx+1Ch], ax mov es:[bx+1Eh], dx pop di leave retn sub_1038_140 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 MYDESTROYDRIVER db 8Ch ; ; DATA XREF: dseg08:8428o db 0D8h ; db 90h ; db 45h ; E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 push bp mov bp, sp push ds mov ds, ax mov ax, seg dseg08 mov ds, ax les bx, [bp+6] sub ax, ax mov es:[bx+6], ax mov es:[bx+4], ax and byte ptr deviceBitmapFlags, 0FEh call _RestoreDeviceBitmapHeap mov ax, 1 cwd lea sp, [bp-2] pop ds pop bp dec bp retf 4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _TranslateModeInformation proc near ; CODE XREF: _SetDriverInfo+3Dp var_E = word ptr -0Eh var_C = word ptr -0Ch var_A = word ptr -0Ah var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 enter 10h, 0 push di push si mov word_1947_8400, 22h ; '"' mov word_1947_8402, 0 mov ax, word_1947_83FE or ax, word_1947_83FC jnz loc_1038_26B push 2040h push 0 push 24h ; '$' push word_1947_8402 push word_1947_8400 call __aFlmul push dx push ax call GLOBALALLOC push ax call GLOBALLOCK mov word_1947_83FC, ax mov word_1947_83FE, dx loc_1038_26B: ; CODE XREF: _TranslateModeInformation+19j mov [bp+var_4], 0 mov [bp+var_2], 28h ; '(' cmp WCHIPREV, 50h ; 'P' jb loc_1038_286 mov [bp+var_4], 0 mov [bp+var_2], 30h ; '0' loc_1038_286: ; CODE XREF: _TranslateModeInformation+52j mov bx, 3CEh mov cx, selVGA mov es, cx mov di, bx mov [bp+var_6], es mov byte ptr es:3CEh, 20h ; ' ' inc di mov es, [bp+var_6] mov al, es:[di] and al, 18h cmp al, 8 jnz loc_1038_2AC mov ax, 1 jmp short loc_1038_2AE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2AC: ; CODE XREF: _TranslateModeInformation+7Dj xor ax, ax loc_1038_2AE: ; CODE XREF: _TranslateModeInformation+82j mov [bp+var_C], ax lea bx, [di-1] mov byte ptr es:[bx], 21h ; '!' mov [bp+var_A], 0 mov ax, word_1947_83FC mov dx, word_1947_83FE mov si, ax mov [bp+var_E], dx cmp word_1947_8402, 0 jnz loc_1038_2DA cmp word_1947_8400, 0 jnz loc_1038_2DA jmp loc_1038_462 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2DA: ; CODE XREF: _TranslateModeInformation+A6j ; _TranslateModeInformation+ADj mov di, 8794h loc_1038_2DD: ; CODE XREF: _TranslateModeInformation+22Cj ; _TranslateModeInformation+237j mov [bp+var_6], 1 mov ax, [di+2] mul word ptr [di] cmp dx, [bp+var_2] jb loc_1038_2F3 ja loc_1038_324 cmp ax, [bp+var_4] jnb loc_1038_324 loc_1038_2F3: ; CODE XREF: _TranslateModeInformation+C2j mov cx, [bp+var_6] cmp word ptr [di], 190h jnz loc_1038_302 cmp word ptr [di-8], 18h jz loc_1038_324 loc_1038_302: ; CODE XREF: _TranslateModeInformation+D2j cmp word ptr [di], 190h jnb loc_1038_326 cmp word ptr [di], 180h jnz loc_1038_326 cmp [bp+var_C], 0 jz loc_1038_316 xor cx, cx loc_1038_316: ; CODE XREF: _TranslateModeInformation+EAj cmp fToshibaSys, 0 jz loc_1038_326 test fDisplay_Status, 4 jz loc_1038_326 loc_1038_324: ; CODE XREF: _TranslateModeInformation+C4j ; _TranslateModeInformation+C9j ; _TranslateModeInformation+D8j xor cx, cx loc_1038_326: ; CODE XREF: _TranslateModeInformation+DEj ; _TranslateModeInformation+E4j ; _TranslateModeInformation+F3j ; _TranslateModeInformation+FAj or cx, cx jnz loc_1038_32D jmp loc_1038_43E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_32D: ; CODE XREF: _TranslateModeInformation+100j mov ax, [di-2] mov es, [bp+var_E] mov es:[si], ax mov word ptr es:[si+2], 0 mov ax, [di] mov es:[si+4], ax mov word ptr es:[si+6], 0 mov ax, [di+2] mov es:[si+8], ax mov word ptr es:[si+0Ah], 0 mov ax, [di-8] mov es:[si+0Ch], ax mov word ptr es:[si+0Eh], 0 mov ax, [di-8] cmp ax, 18h jnz loc_1038_36D jmp loc_1038_414 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_36D: ; CODE XREF: _TranslateModeInformation+140j jbe loc_1038_372 jmp loc_1038_441 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_372: ; CODE XREF: _TranslateModeInformation+145j sub al, 8 jz loc_1038_382 sub al, 7 jz loc_1038_3B0 dec al jz loc_1038_3F6 jmp loc_1038_441 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_382: ; CODE XREF: _TranslateModeInformation+14Cj mov es, [bp+var_E] mov word ptr es:[si+10h], 1 sub ax, ax mov es:[si+22h], ax mov es:[si+20h], ax mov es:[si+1Eh], ax mov es:[si+1Ch], ax mov es:[si+1Ah], ax mov es:[si+18h], ax mov es:[si+16h], ax mov es:[si+14h], ax jmp loc_1038_441 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3B0: ; CODE XREF: _TranslateModeInformation+150j mov es, [bp+var_E] mov word ptr es:[si+0Ch], 10h mov word ptr es:[si+0Eh], 0 mov word ptr es:[si+10h], 0 mov word ptr es:[si+14h], 7C00h mov word ptr es:[si+16h], 0 mov word ptr es:[si+18h], 3E0h loc_1038_3D7: ; CODE XREF: _TranslateModeInformation+1E9j mov word ptr es:[si+1Ah], 0 mov word ptr es:[si+1Ch], 1Fh loc_1038_3E3: ; CODE XREF: _TranslateModeInformation+213j mov word ptr es:[si+1Eh], 0 sub ax, ax mov es:[si+22h], ax mov es:[si+20h], ax jmp short loc_1038_441 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3F6: ; CODE XREF: _TranslateModeInformation+154j mov es, [bp+var_E] mov word ptr es:[si+10h], 0 mov word ptr es:[si+14h], 0F800h mov word ptr es:[si+16h], 0 mov word ptr es:[si+18h], 7E0h jmp short loc_1038_3D7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_414: ; CODE XREF: _TranslateModeInformation+142j mov es, [bp+var_E] mov word ptr es:[si+10h], 0 mov word ptr es:[si+14h], 0 mov word ptr es:[si+16h], 0FFh mov word ptr es:[si+18h], 0FF00h mov word ptr es:[si+1Ah], 0 mov word ptr es:[si+1Ch], 0FFh jmp short loc_1038_3E3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_43E: ; CODE XREF: _TranslateModeInformation+102j sub si, 24h ; '$' loc_1038_441: ; CODE XREF: _TranslateModeInformation+147j ; _TranslateModeInformation+156j ; _TranslateModeInformation+185j ; _TranslateModeInformation+1CBj add di, 12h add si, 24h ; '$' inc [bp+var_A] mov ax, [bp+var_A] cwd cmp dx, word_1947_8402 jnb loc_1038_457 jmp loc_1038_2DD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_457: ; CODE XREF: _TranslateModeInformation+22Aj ja loc_1038_462 cmp ax, word_1947_8400 jnb loc_1038_462 jmp loc_1038_2DD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_462: ; CODE XREF: _TranslateModeInformation+AFj ; _TranslateModeInformation+22Fj ; _TranslateModeInformation+235j mov ax, si sub ax, word_1947_83FC mov cx, 24h ; '$' cwd idiv cx cwd mov word_1947_8400, ax mov word_1947_8402, dx pop si pop di leave retn _TranslateModeInformation endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame sub_1038_47A proc near ; CODE XREF: _SetDriverInfo+1A3p var_4C = word ptr -4Ch var_4A = word ptr -4Ah var_48 = word ptr -48h var_46 = byte ptr -46h var_26 = word ptr -26h var_24 = word ptr -24h var_6 = word ptr -6 var_4 = dword ptr -4 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 enter 4Ch, 0 push di push si xor ax, ax mov bx, 0C946h mov cx, 0E6h ; '' mov di, bx push ds pop es assume es:dseg08 repe stosw mov _ddns, 1CCh mov word_1947_C948, ax mov word_1947_CB02, ds mov word_1947_CB04, ax mov ax, word ptr lpDriverPDevice mov dx, word ptr lpDriverPDevice+2 mov word_1947_CAFE, ax mov word_1947_CB00, dx mov ax, 400h cwd mov word_1947_C9AA, ax mov word_1947_C9AC, dx mov word_1947_CA52, ax mov word_1947_CA54, dx sub ax, ax mov word_1947_C9B8, ax mov word_1947_C9B6, ax mov word_1947_CA2A, 250h mov word_1947_CA2C, ax imul bx, [bp+arg_2], 24h mov [bp+var_4C], bx mov es, word_1947_83FE assume es:nothing add bx, word_1947_83FC add bx, 0Ch mov [bp+var_4A], bx mov [bp+var_48], es cmp es:[bx+2], ax jnz loc_1038_51E cmp word ptr es:[bx], 18h ja loc_1038_51E mov ax, 200h cwd mov word_1947_C9B2, ax mov word_1947_C9B4, dx mov word_1947_CA56, ax mov word_1947_CA58, dx or byte ptr word_1947_C9AA, 0C0h or word_1947_C9AC, 8542h mov ax, word_1947_C9AA mov dx, word_1947_C9AC mov word_1947_CA52, ax mov word_1947_CA54, dx loc_1038_51E: ; CODE XREF: sub_1038_47A+71j ; sub_1038_47A+77j mov es, [bp+var_48] cmp word ptr es:[bx], 18h jnz loc_1038_542 cmp word ptr es:[bx+2], 0 jnz loc_1038_542 and byte ptr word_1947_CA54+1, 0FBh and byte ptr word_1947_C9AC+1, 0FBh and byte ptr word_1947_CA56+1, 0FDh and byte ptr word_1947_C9B2+1, 0FDh loc_1038_542: ; CODE XREF: sub_1038_47A+ABj ; sub_1038_47A+B2j mov al, BY_INTERP sub ah, ah shl ax, 0Fh mov word_1947_CDAE, 0 mov word_1947_CDB0, ax or byte ptr word_1947_C9AA+1, 58h mov word_1947_C9B6, 0 mov word_1947_C9B8, 284h or byte ptr word_1947_CA2A, 80h mov word_1947_C9EA, 1 mov word_1947_C9EC, 0 mov word_1947_CA2E, 3E8h mov word_1947_CA30, 0 mov word_1947_CA32, 1F40h mov word_1947_CA34, 0 or word_1947_C9B2, 110h or word_1947_C9B8, 1828h mov word_1947_CA2E, 10h mov word_1947_CA30, 0 or byte ptr word_1947_C9AA+1, 20h mov word_1947_C9F2, 7 mov word_1947_C9F4, 0 mov word_1947_CAEE, offset aNmganmmchmcndm ; "NMGANMMCHMCNDMCNYV12I420YUY2" mov word_1947_CAF0, ds mov word_1947_C9EA, 2 mov word_1947_C9EC, 0 push word ptr es:[bx] lea ax, [bp+var_26] push ss push ax call sub_1038_0 add sp, 6 xor si, si mov di, 8 loc_1038_5DF: ; CODE XREF: sub_1038_47A+17Fj mov ax, [bp+si+var_26] mov dx, [bp+si+var_24] mov [si-35F6h], ax mov [si-35F4h], dx mov [si-35A2h], ax mov [si-35A0h], dx add si, 4 dec di jnz loc_1038_5DF mov ax, word_1947_8400 mov dx, word_1947_8402 mov word_1947_CAF2, ax mov word_1947_CAF4, dx mov ax, word_1947_83FC mov dx, word_1947_83FE mov word_1947_CAF6, ax mov word_1947_CAF8, dx mov ax, selScreen mov word_1947_CB48, ax mov ax, selCOP mov word_1947_CB4A, ax push selScreen call GETSELECTORBASE mov word_1947_CB4C, ax mov word_1947_CB4E, dx mov word_1947_C956, ax mov word_1947_C958, dx push selCOP call GETSELECTORBASE mov word_1947_CB50, ax mov word_1947_CB52, dx push selHost call GETSELECTORBASE add ax, 4 adc dx, 0 mov word_1947_CB54, ax mov word_1947_CB56, dx push ds call GETSELECTORBASE add ax, 86CCh adc dx, 0 mov word_1947_CB76, ax mov word_1947_CB78, dx push ds call GETSELECTORBASE add ax, 86CAh adc dx, 0 mov word_1947_CB7A, ax mov word_1947_CB7C, dx push ds call GETSELECTORBASE add ax, 86A4h adc dx, 0 mov word_1947_CB7E, ax mov word_1947_CB80, dx push ds call GETSELECTORBASE add ax, 86B0h adc dx, 0 mov word_1947_CB82, ax mov word_1947_CB84, dx push ds call GETSELECTORBASE add ax, 5681h adc dx, 0 mov word_1947_CB86, ax mov word_1947_CB88, dx push ds call GETSELECTORBASE add ax, 98F0h adc dx, 0 mov word_1947_CB8A, ax mov word_1947_CB8C, dx push ds call GETSELECTORBASE add ax, 83F8h adc dx, 0 mov word_1947_CB8E, ax mov word_1947_CB90, dx push ds call GETSELECTORBASE add ax, 83FAh adc dx, 0 mov word_1947_CB92, ax mov word_1947_CB94, dx push ds call GETSELECTORBASE add ax, 98F8h adc dx, 0 mov word_1947_CB96, ax mov word_1947_CB98, dx mov ax, SELPOST mov word_1947_CB60, ax push ax call GETSELECTORBASE mov word_1947_CB62, ax mov word_1947_CB64, dx mov ax, DATABUFFERBYTESSIZE mov dx, word_1947_9886 mov word_1947_CB6E, ax mov word_1947_CB70, dx mov ax, [bp+arg_2] mov dx, [bp+arg_4] mov word_1947_83F4, ax mov word_1947_83F6, dx mov word_1947_CAEA, ax mov word_1947_CAEC, dx mov ax, [bp+var_4C] add ax, word_1947_83FC mov dx, word_1947_83FE mov word ptr [bp+var_4], ax mov word ptr [bp+var_4+2], dx mov bx, 0CB12h push ds mov di, bx mov si, ax push ds pop es assume es:dseg08 mov ds, dx mov cx, 12h repe movsw pop ds mov ax, 0CB36h mov dx, pModeTagSecond mov di, ax mov si, dx push ds pop es mov cx, 9 repe movsw les bx, [bp+var_4] assume es:nothing mov ax, es:[bx+4] mov dx, es:[bx+6] mov word_1947_C962, ax mov word_1947_C964, dx mov ax, es:[bx] mov dx, es:[bx+2] mov word_1947_C95E, ax mov word_1947_C960, dx mov ax, es:[bx+8] mov dx, es:[bx+0Ah] mov word_1947_C966, ax mov word_1947_C968, dx lea ax, [bp+var_46] push ss push ax push es push bx call sub_1038_140 add sp, 8 mov ax, 0C96Ah push ds mov di, ax lea si, [bp+var_46] push ds pop es assume es:dseg08 push ss pop ds mov cx, 10h repe movsw pop ds mov word_1947_8408, 1 mov word_1947_840A, 0 mov ax, word ptr PSCRATCHMEM mov dx, word ptr PSCRATCHMEM+2 add ax, word_1947_C956 adc dx, word_1947_C958 mov word_1947_840C, ax mov word_1947_840E, dx add ax, word ptr CBSCRATCHMEM adc dx, word ptr CBSCRATCHMEM+2 sub ax, 401h sbb dx, 0 mov word_1947_8410, ax mov word_1947_8412, dx mov word_1947_C99E, 1 mov word_1947_C9A0, 0 mov word_1947_C9A2, offset word_1947_8408 mov word_1947_C9A4, ds mov ax, 4 cwd mov word_1947_C98A, ax mov word_1947_C98C, dx mov word_1947_C98E, ax mov word_1947_C990, dx mov word_1947_C94A, offset unk_1947_8420 mov word_1947_C94C, ds mov word_1947_C94E, offset unk_1947_8460 mov word_1947_C950, ds mov word_1947_C952, offset unk_1947_8450 mov word_1947_C954, ds les bx, dword_1947_A2A6 assume es:nothing mov cx, es:[bx+34h] mov si, es:[bx+36h] mov word_1947_CAE6, cx mov word_1947_CAE8, si or word_1947_CAFA, ax or word_1947_CAFC, dx or word_1947_C9AE, 303Ch mov word_1947_CAD6, 2 mov word_1947_CAD8, 0 sub ax, ax mov word_1947_CADC, ax mov word_1947_CADA, ax or byte_1947_C9B0, 10h push ds push offset _ddns push [bp+arg_0] call _lpDDHAL_SetInfo mov [bp+var_6], ax or ax, ax jz loc_1038_8A1 mov ax, 0A286h push ds mov di, ax lea si, [bp+var_46] push ds pop es assume es:dseg08 push ss pop ds mov cx, 10h repe movsw pop ds loc_1038_8A1: ; CODE XREF: sub_1038_47A+412j mov ax, [bp+var_6] pop si pop di leave retn sub_1038_47A endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _RestoreZV proc far ; CODE XREF: CONTROL1+1B3P ; CONTROL1+512P CONTROL1+584P ; CONTROL1+60EP ; _UpdateHardwareRegs+5CP ; _ReconfigureOneOverlay+8B8P var_2 = byte ptr -2 arg_0 = word ptr 6 mov ax, ds nop inc bp push bp mov bp, sp push ds mov ds, ax mov bx, [bp+arg_0] mov ax, bx mov cx, bx mov al, 9 mov ah, bh mov dx, 3CEh out dx, ax ; EGA: graph 1 and 2 addr reg: ; set/reset. ; Data bits 0-3 select planes for write mode 00 mov al, 0Ah mov ah, cl out dx, ax ; EGA: graph 1 and 2 addr reg: ; set/reset. ; Data bits 0-3 select planes for write mode 00 lea sp, [bp+var_2] pop ds pop bp dec bp retf _RestoreZV endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _UnlockZV proc far ; CODE XREF: CONTROL1+163P ; CONTROL1+438P CONTROL1+46AP ; CONTROL1+4B0P CONTROL1+522P ; CONTROL1+594P ; _UpdateHardwareRegs+23P ; _ReconfigureOneOverlay+6BFP var_3 = byte ptr -3 var_2 = byte ptr -2 mov ax, ds nop inc bp push bp mov bp, sp push ds mov ds, ax sub sp, 2 push si mov ax, 9 mov dx, 3CEh out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register mov dx, 3CFh in al, dx ; EGA port: graphics controller data register mov [bp+var_3], al or al, 26h mov cx, ax mov al, 9 mov ah, cl mov dx, 3CEh out dx, ax ; EGA: graph 1 and 2 addr reg: ; set/reset. ; Data bits 0-3 select planes for write mode 00 mov al, [bp+var_3] sub ah, ah mov si, ax mov ax, 0Ah out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register mov dx, 3CFh in al, dx ; EGA port: graphics controller data register mov [bp+var_3], al shl si, 8 or al, 20h mov cx, ax mov al, 0Ah mov ah, cl mov dx, 3CEh out dx, ax ; EGA: graph 1 and 2 addr reg: ; set/reset. ; Data bits 0-3 select planes for write mode 00 mov al, [bp+var_3] sub ah, ah or ax, si pop si lea sp, [bp+var_2] pop ds pop bp dec bp retf _UnlockZV endp ; sp = -2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame sub_1038_926 proc near ; CODE XREF: CHECKIMPINGEMENT+9Fp ; CHECKIMPINGEMENT+16Ep push bp mov bp, sp leave retn sub_1038_926 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _SetDriverInfo proc far ; CODE XREF: _DDCreateDriverObject+16P ; REENABLE1+BEP ENABLE1+36BP var_4 = word ptr -4 var_2 = byte ptr -2 arg_0 = word ptr 6 mov ax, ds nop inc bp push bp mov bp, sp push ds mov ds, ax sub sp, 0Ah push di push si les bx, lpPrimaryDev assume es:nothing mov si, es:[bx+2] mov di, es:[bx+4] mov al, es:[bx+9] sub ah, ah mov [bp+var_4], ax mov word ptr dword_1947_A2A6, offset unk_1947_CCC0 mov word ptr dword_1947_A2A6+2, ds cmp fToshibaSys, ah jnz loc_1038_969 mov ax, word_1947_83FE or ax, word_1947_83FC jnz loc_1038_96C loc_1038_969: ; CODE XREF: _SetDriverInfo+32j call _TranslateModeInformation loc_1038_96C: ; CODE XREF: _SetDriverInfo+3Bj sub ax, ax mov word_1947_83F6, ax mov word_1947_83F4, ax cmp word_1947_8402, ax jnz loc_1038_980 cmp word_1947_8400, ax jz loc_1038_9D6 loc_1038_980: ; CODE XREF: _SetDriverInfo+4Cj ; _SetDriverInfo+A0j ; _SetDriverInfo+A8j sub ax, ax imul bx, word_1947_83F4, 24h mov es, word_1947_83FE add bx, word_1947_83FC cmp es:[bx], si jnz loc_1038_9B7 cmp es:[bx+2], ax jnz loc_1038_9B7 cmp es:[bx+4], di jnz loc_1038_9B7 cmp es:[bx+6], ax jnz loc_1038_9B7 mov ax, [bp+var_4] sub dx, dx cmp es:[bx+0Ch], ax jnz loc_1038_9B7 cmp es:[bx+0Eh], dx jz loc_1038_9D6 loc_1038_9B7: ; CODE XREF: _SetDriverInfo+66j ; _SetDriverInfo+6Cj ; _SetDriverInfo+72j ; _SetDriverInfo+78j ; _SetDriverInfo+83j mov ax, word_1947_8400 mov dx, word_1947_8402 add word_1947_83F4, 1 adc word_1947_83F6, 0 cmp word_1947_83F6, dx jb loc_1038_980 ja loc_1038_9D6 cmp word_1947_83F4, ax jb loc_1038_980 loc_1038_9D6: ; CODE XREF: _SetDriverInfo+52j ; _SetDriverInfo+89j ; _SetDriverInfo+A2j mov ax, [bp+arg_0] cwd les bx, dword_1947_A2A6 mov es:[bx+38h], ax mov es:[bx+3Ah], dx les bx, dword_1947_A2A6 mov ax, es:[bx] mov dx, es:[bx+2] mov word_1947_847C, ax mov word_1947_847E, dx mov ax, es:[bx+4] mov dx, es:[bx+6] mov word_1947_846C, ax mov word_1947_846E, dx mov ax, es:[bx+8] mov dx, es:[bx+0Ah] mov word_1947_8474, ax mov word_1947_8476, dx mov ax, es:[bx+0Ch] mov dx, es:[bx+0Eh] mov word_1947_8478, ax mov word_1947_847A, dx mov ax, es:[bx+10h] mov dx, es:[bx+12h] mov word_1947_8488, ax mov word_1947_848A, dx mov ax, es:[bx+14h] mov dx, es:[bx+16h] mov word_1947_848C, ax mov word_1947_848E, dx mov ax, es:[bx+18h] mov dx, es:[bx+1Ah] mov word_1947_8490, ax mov word_1947_8492, dx mov ax, es:[bx+1Ch] mov dx, es:[bx+1Eh] mov word_1947_8494, ax mov word_1947_8496, dx mov ax, es:[bx+20h] mov dx, es:[bx+22h] mov word_1947_8468, ax mov word_1947_846A, dx mov word_1947_8464, 0F3Bh mov word_1947_8466, 0 mov ax, es:[bx+2Ch] mov dx, es:[bx+2Eh] mov word_1947_8438, ax mov word_1947_843A, dx mov ax, es:[bx+30h] mov dx, es:[bx+32h] mov word_1947_8444, ax mov word_1947_8446, dx mov ax, es:[bx+28h] mov dx, es:[bx+2Ah] mov word_1947_842C, ax mov word_1947_842E, dx mov ax, es:[bx+24h] mov dx, es:[bx+26h] mov word_1947_843C, ax mov word_1947_843E, dx mov word_1947_8424, 0B2h ; '' mov word_1947_8426, 0 push word_1947_83F6 push word_1947_83F4 push [bp+arg_0] call sub_1038_47A add sp, 6 pop si pop di lea sp, [bp+var_2] pop ds pop bp dec bp retf _SetDriverInfo endp ; sp = -0Ah ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _CheckOverlay proc far ; CODE XREF: CONTROL1+2E0P ; CONTROL1+A6DP CONTROL1+A9DP ; CHECKIMPINGEMENT+AAP ; CHECKIMPINGEMENT+17AP ; SetCursorPosition_IO+60P ; SetCursorPosition_MMIO+73P ; MoveCursor+246P MoveCursor+37BP ; CheckPanning_MMIO+316P ; CheckPanning_MMIO+340P var_4 = byte ptr -4 var_3 = byte ptr -3 var_2 = byte ptr -2 mov ax, ds nop inc bp push bp mov bp, sp push ds mov ds, ax sub sp, 4 mov ax, word_1947_CDCE or ax, word_1947_CDCC jnz loc_1038_AF7 jmp loc_1038_C38 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_AF7: ; CODE XREF: _CheckOverlay+14j test byte ptr word_1947_CDD4, 80h jnz loc_1038_B01 jmp loc_1038_B95 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_B01: ; CODE XREF: _CheckOverlay+1Ej test byte ptr word_1947_CDD4, 8 jz loc_1038_B85 mov ax, 9 mov dx, 3CEh out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register mov dx, 3CFh in al, dx ; EGA port: graphics controller data register or al, 26h mov cx, ax mov al, 9 mov ah, cl mov dx, 3CEh out dx, ax ; EGA: graph 1 and 2 addr reg: ; set/reset. ; Data bits 0-3 select planes for write mode 00 mov ax, 0BFh ; '' out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register mov dx, 3CFh in al, dx ; EGA port: graphics controller data register mov [bp+var_3], al mov ax, 0A3h ; '' mov dx, 3CEh out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register mov dx, 3CFh in al, dx ; EGA port: graphics controller data register mov [bp+var_4], al test byte ptr word_1947_CCBE, 1 jz loc_1038_B4C or byte ptr word_1947_CDD4, 20h mov al, [bp+var_3] or al, 4 jmp short loc_1038_B56 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_B4C: ; CODE XREF: _CheckOverlay+5Fj and byte ptr word_1947_CDD4, 0DFh mov al, [bp+var_3] and al, 0FBh loc_1038_B56: ; CODE XREF: _CheckOverlay+6Bj mov cx, ax mov al, 0BFh ; '' mov ah, cl mov dx, 3CEh out dx, ax ; EGA: graph 1 and 2 addr reg: ; set/reset. ; Data bits 0-3 select planes for write mode 00 test byte ptr word_1947_CCBE, 2 jz loc_1038_B74 or byte ptr word_1947_CDD4, 40h mov al, [bp+var_4] or al, 1 jmp short loc_1038_B7E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_B74: ; CODE XREF: _CheckOverlay+87j and byte ptr word_1947_CDD4, 0BFh mov al, [bp+var_4] and al, 0FEh loc_1038_B7E: ; CODE XREF: _CheckOverlay+93j mov cx, ax mov al, 0A3h ; '' mov ah, cl out dx, ax ; EGA: graph 1 and 2 addr reg: ; set/reset. ; Data bits 0-3 select planes for write mode 00 loc_1038_B85: ; CODE XREF: _CheckOverlay+28j push 0 push 0 push ds push offset _ddns call _ReconfigureOverlay add sp, 8 loc_1038_B95: ; CODE XREF: _CheckOverlay+20j test byte ptr word_1947_CDD8, 80h jnz loc_1038_B9F jmp loc_1038_C38 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_B9F: ; CODE XREF: _CheckOverlay+BCj test byte ptr word_1947_CDD8, 8 jnz loc_1038_BA9 jmp loc_1038_C2B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_BA9: ; CODE XREF: _CheckOverlay+C6j mov ax, 9 mov dx, 3CEh out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register mov dx, 3CFh in al, dx ; EGA port: graphics controller data register or al, 26h mov cx, ax mov al, 9 mov ah, cl mov dx, 3CEh out dx, ax ; EGA: graph 1 and 2 addr reg: ; set/reset. ; Data bits 0-3 select planes for write mode 00 mov ax, 0B6h ; '' mov dx, 3D4h out dx, al ; Video: CRT cntrlr addr ; mov dx, 3D5h in al, dx ; Video: CRT controller internal registers mov [bp+var_3], al mov ax, 0C9h ; '' mov dx, 3D4h out dx, al ; Video: CRT cntrlr addr ; mov dx, 3D5h in al, dx ; Video: CRT controller internal registers mov [bp+var_4], al test byte ptr word_1947_CCBE, 1 jz loc_1038_BF2 or byte ptr word_1947_CDD8, 20h mov al, [bp+var_3] or al, 4 jmp short loc_1038_BFC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; db 90h ; db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_BF2: ; CODE XREF: _CheckOverlay+103j and byte ptr word_1947_CDD8, 0DFh mov al, [bp+var_3] and al, 0FBh loc_1038_BFC: ; CODE XREF: _CheckOverlay+10Fj mov cx, ax mov al, 0B6h ; '' mov ah, cl mov dx, 3D4h out dx, ax ; Video: CRT cntrlr addr ; horizontal total test byte ptr word_1947_CCBE, 2 jz loc_1038_C1A or byte ptr word_1947_CDD8, 40h mov al, [bp+var_4] or al, 1 jmp short loc_1038_C24 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_C1A: ; CODE XREF: _CheckOverlay+12Dj and byte ptr word_1947_CDD8, 0BFh mov al, [bp+var_4] and al, 0FEh loc_1038_C24: ; CODE XREF: _CheckOverlay+139j mov cx, ax mov al, 0C9h ; '' mov ah, cl out dx, ax ; Video: CRT cntrlr addr ; horizontal total loc_1038_C2B: ; CODE XREF: _CheckOverlay+C8j push 0 push 1 push ds push offset _ddns call _ReconfigureOverlay loc_1038_C38: ; CODE XREF: _CheckOverlay+16j ; _CheckOverlay+BEj lea sp, [bp+var_2] pop ds pop bp dec bp retf _CheckOverlay endp ; sp = -0Ch ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame CHECKIMPINGEMENT proc far ; CODE XREF: cseg01:0164P cseg01:0460P ; cseg01:048DP DibToDevice+ACP var_C = word ptr -0Ch var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = byte ptr -2 arg_0 = word ptr 6 arg_2 = word ptr 8 arg_4 = word ptr 0Ah arg_6 = word ptr 0Ch mov ax, ds nop inc bp push bp mov bp, sp push ds mov ds, ax sub sp, 0Ah push di push si mov ax, word_1947_CDCE or ax, word_1947_CDCC jnz loc_1038_C5B jmp loc_1038_E63 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_C5B: ; CODE XREF: CHECKIMPINGEMENT+16j mov al, byte ptr word_1947_CDD4 and al, 2 jnz loc_1038_C6C test byte ptr word_1947_CDD8, 2 jnz loc_1038_C6C jmp loc_1038_E63 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_C6C: ; CODE XREF: CHECKIMPINGEMENT+20j ; CHECKIMPINGEMENT+27j mov al, byte ptr word_1947_CDD4 and al, 2 jz loc_1038_C98 mov ax, word_1947_CD48 cmp [bp+arg_0], ax jnb loc_1038_C98 mov ax, word_1947_CD4C cmp [bp+arg_2], ax jnb loc_1038_C98 mov ax, word_1947_CD40 cmp [bp+arg_4], ax jbe loc_1038_C98 mov ax, word_1947_CD44 cmp [bp+arg_6], ax jbe loc_1038_C98 or byte ptr word_1947_CDD4, 4 loc_1038_C98: ; CODE XREF: CHECKIMPINGEMENT+31j ; CHECKIMPINGEMENT+39j ; CHECKIMPINGEMENT+41j ; CHECKIMPINGEMENT+49j ; CHECKIMPINGEMENT+51j test byte ptr word_1947_CDD8, 2 jz loc_1038_CC4 mov ax, word_1947_CD58 cmp [bp+arg_0], ax jnb loc_1038_CC4 mov ax, word_1947_CD5C cmp [bp+arg_2], ax jnb loc_1038_CC4 mov ax, word_1947_CD50 cmp [bp+arg_4], ax jbe loc_1038_CC4 mov ax, word_1947_CD54 cmp [bp+arg_6], ax jbe loc_1038_CC4 or byte ptr word_1947_CDD8, 4 loc_1038_CC4: ; CODE XREF: CHECKIMPINGEMENT+5Dj ; CHECKIMPINGEMENT+65j ; CHECKIMPINGEMENT+6Dj ; CHECKIMPINGEMENT+75j ; CHECKIMPINGEMENT+7Dj test byte ptr word_1947_CDD4, 4 jnz loc_1038_CCE jmp loc_1038_D93 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_CCE: ; CODE XREF: CHECKIMPINGEMENT+89j and byte ptr word_1947_CDD4, 0FDh or byte ptr word_1947_CDD4, 10h test byte ptr word_1947_CDD4, 8 jz loc_1038_CE4 call sub_1038_926 jmp short loc_1038_CEF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_CE4: ; CODE XREF: CHECKIMPINGEMENT+9Dj mov ax, word_1947_CDF8 mov word_1947_CD7E, ax call _CheckOverlay loc_1038_CEF: ; CODE XREF: CHECKIMPINGEMENT+A2j mov ax, word_1947_CB1A mov si, ax mov cx, word_1947_CDF4 add cx, cx mov [bp+var_C], cx mov cx, word_1947_CDE8 mov dx, word_1947_CDEA mov [bp+var_6], cx mov [bp+var_4], dx mul word_1947_CDF6 mov [bp+var_A], ax mov [bp+var_8], dx push [bp+var_4] call GETSELECTORLIMIT mov cx, [bp+var_A] mov bx, [bp+var_8] sub cx, 1 sbb bx, 0 cmp bx, dx jb loc_1038_D41 ja loc_1038_D33 cmp cx, ax jbe loc_1038_D41 loc_1038_D33: ; CODE XREF: CHECKIMPINGEMENT+EDj push [bp+var_4] push [bp+var_8] push [bp+var_A] call SETSELECTORLIMIT loc_1038_D41: ; CODE XREF: CHECKIMPINGEMENT+EBj ; CHECKIMPINGEMENT+F1j push word_1947_CDF6 push [bp+var_C] push [bp+var_4] push [bp+var_6] push si push word_1947_CD42 push word_1947_CD40 mov ax, word_1947_CB1E mov dx, word_1947_CB20 shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 push dx push ax call __aFlmul push word_1947_CD46 push word_1947_CD44 push 0 push si mov si, ax mov di, dx call __aFlmul add si, ax adc di, dx push di push si call _CopyToFrame add sp, 0Eh loc_1038_D93: ; CODE XREF: CHECKIMPINGEMENT+8Bj test byte ptr word_1947_CDD8, 4 jnz loc_1038_D9D jmp loc_1038_E63 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_D9D: ; CODE XREF: CHECKIMPINGEMENT+158j and byte ptr word_1947_CDD8, 0FDh or byte ptr word_1947_CDD8, 10h test byte ptr word_1947_CDD8, 8 jz loc_1038_DB4 call sub_1038_926 jmp short loc_1038_DBF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_DB4: ; CODE XREF: CHECKIMPINGEMENT+16Cj mov ax, word_1947_CDF8 mov word_1947_CD80, ax call _CheckOverlay loc_1038_DBF: ; CODE XREF: CHECKIMPINGEMENT+171j mov ax, word_1947_CB1A mov si, ax mov cx, word_1947_CDF4 add cx, cx mov [bp+var_C], cx mov cx, word_1947_CDE8 mov dx, word_1947_CDEA mov [bp+var_6], cx mov [bp+var_4], dx mul word_1947_CDF6 mov [bp+var_A], ax mov [bp+var_8], dx push [bp+var_4] call GETSELECTORLIMIT mov cx, [bp+var_A] mov bx, [bp+var_8] sub cx, 1 sbb bx, 0 cmp bx, dx jb loc_1038_E11 ja loc_1038_E03 cmp cx, ax jbe loc_1038_E11 loc_1038_E03: ; CODE XREF: CHECKIMPINGEMENT+1BDj push [bp+var_4] push [bp+var_8] push [bp+var_A] call SETSELECTORLIMIT loc_1038_E11: ; CODE XREF: CHECKIMPINGEMENT+1BBj ; CHECKIMPINGEMENT+1C1j push word_1947_CDF6 push [bp+var_C] push [bp+var_4] push [bp+var_6] push si push word_1947_CD52 push word_1947_CD50 mov ax, word_1947_CB1E mov dx, word_1947_CB20 shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 push dx push ax call __aFlmul push word_1947_CD56 push word_1947_CD54 push 0 push si mov si, ax mov di, dx call __aFlmul add si, ax adc di, dx push di push si call _CopyToFrame add sp, 0Eh loc_1038_E63: ; CODE XREF: CHECKIMPINGEMENT+18j ; CHECKIMPINGEMENT+29j ; CHECKIMPINGEMENT+15Aj pop si pop di lea sp, [bp+var_2] pop ds pop bp dec bp retf 8 CHECKIMPINGEMENT endp ; sp = -1Ah ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _InitLocalPostBuffPtrs proc far ; CODE XREF: REENABLE1+F0P ; Physical_Read_Profile+107P ; DATA XREF: cseg04:2AFDo var_2 = byte ptr -2 mov ax, ds nop inc bp push bp mov bp, sp push ds mov ds, ax mov _lpcurHead, 0CB66h mov _pHostBltFlag, 0CB58h mov _pddnifFlags, 0CDD4h mov bx, 0CDF0h mov _pPrimary, bx sub ax, ax mov [bx+2], ax mov [bx], ax mov word_1947_CF94, ax mov word_1947_CF92, ax lea sp, [bp+var_2] pop ds pop bp dec bp retf _InitLocalPostBuffPtrs endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _UpdateHardwareRegs proc far ; CODE XREF: DevToForeground+20P var_4 = byte ptr -4 var_3 = byte ptr -3 var_2 = byte ptr -2 mov ax, ds nop inc bp push bp mov bp, sp push ds mov ds, ax sub sp, 2 push si test byte_1947_CB59, 80h jz loc_1038_F16 mov ax, 0B0h ; '' mov dx, 3CEh out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register mov dx, 3CFh in al, dx ; EGA port: graphics controller data register mov [bp+var_3], al call _UnlockZV mov si, ax and [bp+var_3], 0FEh mov al, 0B0h ; '' mov ah, [bp+var_3] mov dx, 3CEh out dx, ax ; EGA: graph 1 and 2 addr reg: ; set/reset. ; Data bits 0-3 select planes for write mode 00 mov ax, 0A8h ; '' mov dx, 3D4h out dx, al ; Video: CRT cntrlr addr ; mov dx, 3D5h in al, dx ; Video: CRT controller internal registers mov [bp+var_4], al mov al, byte_1947_CDB2 xor al, [bp+var_4] and al, 74h xor al, byte_1947_CDB2 mov cx, ax mov al, 0A8h ; '' mov ah, cl mov dx, 3D4h out dx, ax ; Video: CRT cntrlr addr ; horizontal total push si call _RestoreZV add sp, 2 mov word_1947_CDAE, 0 and word_1947_CDB0, 8000h loc_1038_F16: ; CODE XREF: _UpdateHardwareRegs+13j pop si lea sp, [bp+var_2] pop ds pop bp dec bp retf _UpdateHardwareRegs endp ; sp = -2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _SetupG2 proc far ; CODE XREF: CONTROL1+EE8P ; CONTROL1+FA4P _ApplyG2Mode+9FP ; _neoApi_SetCopyProtect+64P ; CheckPanning_MMIO+7BP var_12 = byte ptr -12h var_10 = byte ptr -10h var_E = byte ptr -0Eh var_C = word ptr -0Ch var_A = byte ptr -0Ah var_8 = byte ptr -8 var_6 = byte ptr -6 var_4 = byte ptr -4 var_2 = byte ptr -2 arg_0 = word ptr 6 mov ax, ds nop inc bp push bp mov bp, sp push ds mov ds, ax sub sp, 10h mov ax, word_1947_CDCE or ax, word_1947_CDCC jnz loc_1038_F37 jmp loc_1038_1194 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_F37: ; CODE XREF: _SetupG2+14j cmp [bp+arg_0], 0 jz loc_1038_F40 jmp loc_1038_1130 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_F40: ; CODE XREF: _SetupG2+1Dj call _neoApi_GetVendor mov [bp+var_C], ax dec ax jnz loc_1038_F78 mov ax, word_1947_CF94 or ax, word_1947_CF92 jz loc_1038_F8A mov ax, 4F14h mov bx, 4 int 10h ; - VIDEO - VESA SuperVGA BIOS - mov [bp+var_E], cl and [bp+var_E], 0FBh or [bp+var_E], 1 mov ax, 4F14h mov bx, 104h mov cl, [bp+var_E] int 10h ; - VIDEO - VESA SuperVGA BIOS - loc_1038_F72: ; CODE XREF: _SetupG2+84j mov ax, 0FFFFh jmp loc_1038_1196 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_F78: ; CODE XREF: _SetupG2+2Bj cmp [bp+var_C], 2 jnz loc_1038_F8A mov word_1947_CF96, 1 mov word_1947_CF98, 0 loc_1038_F8A: ; CODE XREF: _SetupG2+34j _SetupG2+5Ej test byte ptr word_1947_CDD4, 1 jz loc_1038_FA4 test byte ptr word_1947_CDD8, 1 jz loc_1038_FA4 push 1 call _DDCreateDriverObject add sp, 2 jmp short loc_1038_F72 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_FA4: ; CODE XREF: _SetupG2+71j _SetupG2+78j mov BG2VIDEOISON, 1 mov [bp+var_A], 0 mov ax, 0B0h ; '' mov dx, 3CEh out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register mov dx, 3CFh in al, dx ; EGA port: graphics controller data register mov [bp+var_6], al mov ax, 0A8h ; '' mov dx, 3D4h out dx, al ; Video: CRT cntrlr addr ; mov dx, 3D5h in al, dx ; Video: CRT controller internal registers mov [bp+var_8], al test byte ptr word_1947_CDD4, 1 jnz loc_1038_FD3 jmp loc_1038_107C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_FD3: ; CODE XREF: _SetupG2+B0j push 0 push 0 push ds push offset _ddns call _ReconfigureOverlay add sp, 8 cmp word_1947_CDE4, 0 jnz loc_1038_FED jmp loc_1038_1194 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_FED: ; CODE XREF: _SetupG2+CAj and byte ptr word_1947_CDD8, 0FBh mov ax, 0A3h ; '' mov dx, 3CEh out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register mov dx, 3CFh in al, dx ; EGA port: graphics controller data register mov [bp+var_4], al mov al, 0C9h ; '' mov ah, [bp+var_4] mov dx, 3D4h out dx, ax ; Video: CRT cntrlr addr ; horizontal total mov al, [bp+var_8] xor al, [bp+var_6] and al, 7Dh xor al, [bp+var_6] mov [bp+var_A], al test [bp+var_6], 20h jnz loc_1038_1024 and al, 0F7h mov [bp+var_A], al jmp short loc_1038_1028 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1024: ; CODE XREF: _SetupG2+FDj or [bp+var_A], 8 loc_1038_1028: ; CODE XREF: _SetupG2+104j mov al, [bp+var_A] or al, 1 mov cx, ax mov al, 0A8h ; '' mov ah, cl out dx, ax ; Video: CRT cntrlr addr ; horizontal total mov ax, 0C5h ; '' mov dx, 3CEh out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register mov dx, 3CFh in al, dx ; EGA port: graphics controller data register mov [bp+var_E], al mov al, 0BCh ; '' mov ah, [bp+var_E] mov dx, 3D4h out dx, ax ; Video: CRT cntrlr addr ; horizontal total mov ax, 0C6h ; '' mov dx, 3CEh out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register mov dx, 3CFh in al, dx ; EGA port: graphics controller data register mov [bp+var_10], al mov al, 0BDh ; '' mov ah, [bp+var_10] mov dx, 3D4h out dx, ax ; Video: CRT cntrlr addr ; horizontal total mov ax, 0C7h ; '' mov dx, 3CEh out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register mov dx, 3CFh in al, dx ; EGA port: graphics controller data register mov [bp+var_12], al mov al, 0BEh ; '' mov ah, [bp+var_12] mov dx, 3D4h loc_1038_1078: ; CODE XREF: _SetupG2+20Ej out dx, ax ; Video: CRT cntrlr addr ; horizontal total jmp loc_1038_1194 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_107C: ; CODE XREF: _SetupG2+B2j test byte ptr word_1947_CDD8, 1 jnz loc_1038_1086 jmp loc_1038_1194 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1086: ; CODE XREF: _SetupG2+163j push 0 push 1 push ds push offset _ddns call _ReconfigureOverlay add sp, 8 cmp word_1947_CDE6, 0 jnz loc_1038_10A0 jmp loc_1038_1194 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_10A0: ; CODE XREF: _SetupG2+17Dj and byte ptr word_1947_CDD4, 0FBh mov ax, 0C9h ; '' mov dx, 3D4h out dx, al ; Video: CRT cntrlr addr ; mov dx, 3D5h in al, dx ; Video: CRT controller internal registers mov [bp+var_4], al mov al, 0A3h ; '' mov ah, [bp+var_4] mov dx, 3CEh out dx, ax ; EGA: graph 1 and 2 addr reg: ; set/reset. ; Data bits 0-3 select planes for write mode 00 mov al, [bp+var_8] xor al, [bp+var_6] and al, 7Dh xor al, [bp+var_8] mov [bp+var_A], al test [bp+var_8], 8 jnz loc_1038_10D8 and al, 0DFh mov [bp+var_A], al jmp short loc_1038_10DC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_10D8: ; CODE XREF: _SetupG2+1B0j or [bp+var_A], 20h loc_1038_10DC: ; CODE XREF: _SetupG2+1B7j mov al, [bp+var_A] or al, 1 mov cx, ax mov al, 0B0h ; '' mov ah, cl out dx, ax ; EGA: graph 1 and 2 addr reg: ; set/reset. ; Data bits 0-3 select planes for write mode 00 mov ax, 0BCh ; '' mov dx, 3D4h out dx, al ; Video: CRT cntrlr addr ; mov dx, 3D5h in al, dx ; Video: CRT controller internal registers mov [bp+var_12], al mov al, 0C5h ; '' mov ah, [bp+var_12] mov dx, 3CEh out dx, ax ; EGA: graph 1 and 2 addr reg: ; set/reset. ; Data bits 0-3 select planes for write mode 00 mov ax, 0BDh ; '' mov dx, 3D4h out dx, al ; Video: CRT cntrlr addr ; mov dx, 3D5h in al, dx ; Video: CRT controller internal registers mov [bp+var_10], al mov al, 0C6h ; '' mov ah, [bp+var_10] mov dx, 3CEh out dx, ax ; EGA: graph 1 and 2 addr reg: ; set/reset. ; Data bits 0-3 select planes for write mode 00 mov ax, 0BEh ; '' mov dx, 3D4h out dx, al ; Video: CRT cntrlr addr ; mov dx, 3D5h in al, dx ; Video: CRT controller internal registers mov [bp+var_E], al mov al, 0C7h ; '' mov ah, [bp+var_E] mov dx, 3CEh jmp loc_1038_1078 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1130: ; CODE XREF: _SetupG2+1Fj mov BG2VIDEOISON, 0 mov ax, 80h ; '' mov dx, 3D4h out dx, al ; Video: CRT cntrlr addr ; mov dx, 3D5h in al, dx ; Video: CRT controller internal registers and al, 0F7h mov cx, ax mov al, 80h ; '' mov ah, cl mov dx, 3D4h out dx, ax ; Video: CRT cntrlr addr ; horizontal total cmp word_1947_CDE4, 0 jz loc_1038_1170 mov ax, 0A8h ; '' out dx, al ; Video: CRT cntrlr addr ; mov dx, 3D5h in al, dx ; Video: CRT controller internal registers and ax, 0FEh out dx, al ; Video: CRT controller internal registers mov word_1947_CDE4, 0 sub ax, ax mov word_1947_CDDA, ax mov word_1947_CDD8, ax jmp short loc_1038_1194 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1170: ; CODE XREF: _SetupG2+233j cmp word_1947_CDE6, 0 jz loc_1038_1194 mov ax, 0B0h ; '' mov dx, 3CEh out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register mov dx, 3CFh in al, dx ; EGA port: graphics controller data register and ax, 0FEh out dx, al ; EGA port: graphics controller data register mov word_1947_CDE6, 0 sub ax, ax mov word_1947_CDD6, ax mov word_1947_CDD4, ax loc_1038_1194: ; CODE XREF: _SetupG2+16j _SetupG2+CCj ; _SetupG2+15Bj _SetupG2+165j ; _SetupG2+17Fj _SetupG2+24Fj ; _SetupG2+257j xor ax, ax loc_1038_1196: ; CODE XREF: _SetupG2+57j lea sp, [bp+var_2] pop ds pop bp dec bp retf _SetupG2 endp ; sp = -10h ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _GetStartAddr16 proc near ; CODE XREF: _ReconfigureOneOverlay+356p ; _ReconfigureOneOverlay+364p ; _ReconfigureOneOverlay+10A2p ; _ReconfigureOneOverlay+10DCp var_8 = dword ptr -8 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 enter 8, 0 push di push si cmp [bp+arg_0], 0 jz loc_1038_11AD jmp loc_1038_1254 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_11AD: ; CODE XREF: _GetStartAddr16+Aj mov ax, selVGA mov word ptr [bp+var_8], 3CEh mov word ptr [bp+var_8+2], ax les bx, [bp+var_8] mov byte ptr es:[bx], 0Eh inc word ptr [bp+var_8] les bx, [bp+var_8] mov al, es:[bx] and ax, 0Fh mov [bp+var_4], ax mov [bp+var_2], 0 mov ax, [bp+var_4] mov dx, [bp+var_2] mov dh, dl mov dl, ah mov ah, al sub al, al mov [bp+var_4], ax mov [bp+var_2], dx mov ax, selVGA mov word ptr [bp+var_8], 3D4h mov word ptr [bp+var_8+2], ax les bx, [bp+var_8] mov byte ptr es:[bx], 0Ch inc word ptr [bp+var_8] les bx, [bp+var_8] mov al, es:[bx] sub ah, ah sub dx, dx or [bp+var_4], ax or [bp+var_2], dx mov ax, [bp+var_4] mov dx, [bp+var_2] mov dh, dl mov dl, ah mov ah, al sub al, al mov [bp+var_4], ax mov [bp+var_2], dx dec word ptr [bp+var_8] les bx, [bp+var_8] mov byte ptr es:[bx], 0Dh inc word ptr [bp+var_8] les bx, [bp+var_8] mov al, es:[bx] sub ah, ah sub dx, dx or [bp+var_4], ax or [bp+var_2], dx mov ax, [bp+var_4] mov dx, [bp+var_2] shl ax, 1 rcl dx, 1 shl ax, 1 rcl dx, 1 mov [bp+var_4], ax mov [bp+var_2], dx jmp loc_1038_12DC ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1254: ; CODE XREF: _GetStartAddr16+Cj mov ax, selVGA mov word ptr [bp+var_8], 3D4h mov word ptr [bp+var_8+2], ax les bx, [bp+var_8] mov byte ptr es:[bx], 89h ; '' inc word ptr [bp+var_8] les bx, [bp+var_8] mov al, es:[bx] and ax, 3Fh mov [bp+var_4], ax mov [bp+var_2], 0 mov ax, [bp+var_4] mov dx, [bp+var_2] mov dh, dl mov dl, ah mov ah, al sub al, al mov [bp+var_4], ax mov [bp+var_2], dx dec word ptr [bp+var_8] les bx, [bp+var_8] mov byte ptr es:[bx], 8Ah ; '' inc word ptr [bp+var_8] les bx, [bp+var_8] mov al, es:[bx] sub ah, ah sub dx, dx or [bp+var_4], ax or [bp+var_2], dx mov ax, [bp+var_4] mov dx, [bp+var_2] mov dh, dl mov dl, ah mov ah, al sub al, al mov [bp+var_4], ax mov [bp+var_2], dx dec word ptr [bp+var_8] les bx, [bp+var_8] mov byte ptr es:[bx], 8Bh ; '' inc word ptr [bp+var_8] les bx, [bp+var_8] mov al, es:[bx] sub ah, ah sub dx, dx or [bp+var_4], ax or [bp+var_2], dx loc_1038_12DC: ; CODE XREF: _GetStartAddr16+B3j mov ax, [bp+var_4] mov dx, [bp+var_2] jmp $+3 pop si pop di leave retn _GetStartAddr16 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _SetSourceRect_MMIO16 proc near ; CODE XREF: _ReconfigureOneOverlay+19C4p ; _ReconfigureOneOverlay+1B66p var_2C = word ptr -2Ch var_2A = word ptr -2Ah var_28 = word ptr -28h var_26 = word ptr -26h var_24 = word ptr -24h var_22 = word ptr -22h var_20 = word ptr -20h var_1E = word ptr -1Eh var_1C = word ptr -1Ch var_1A = word ptr -1Ah var_18 = word ptr -18h var_16 = word ptr -16h var_14 = word ptr -14h var_12 = byte ptr -12h var_10 = dword ptr -10h var_C = word ptr -0Ch var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = dword ptr 4 arg_4 = word ptr 8 arg_6 = word ptr 0Ah arg_8 = word ptr 0Ch arg_A = word ptr 0Eh arg_C = word ptr 10h arg_E = word ptr 12h arg_10 = word ptr 14h arg_12 = word ptr 16h arg_14 = word ptr 18h arg_16 = word ptr 1Ah arg_18 = word ptr 1Ch arg_1A = word ptr 1Eh arg_1C = word ptr 20h arg_1E = word ptr 22h enter 2Ch, 0 push di push si cmp [bp+arg_8], 5659h jz loc_1038_12FA jmp loc_1038_13ED ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_12FA: ; CODE XREF: _SetSourceRect_MMIO16+Bj cmp [bp+arg_A], 3231h jz loc_1038_1304 jmp loc_1038_13ED ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1304: ; CODE XREF: _SetSourceRect_MMIO16+15j mov ax, [bp+arg_10] mov dx, [bp+arg_12] shl ax, 1 rcl dx, 1 mov [bp+var_18], ax mov [bp+var_16], dx mov ax, [bp+arg_C] mov dx, [bp+arg_E] sub ax, [bp+arg_1C] sbb dx, [bp+arg_1E] mov [bp+var_1C], ax mov [bp+var_1A], dx push [bp+var_16] push [bp+var_18] push [bp+var_16] push [bp+var_18] push [bp+var_1A] push [bp+var_1C] call __aFuldiv push dx push ax call __aFlmul mov [bp+var_20], ax mov [bp+var_1E], dx push [bp+arg_12] push [bp+arg_10] push [bp+arg_16] push [bp+arg_14] call __aFlmul add ax, [bp+arg_1C] adc dx, [bp+arg_1E] mov [bp+var_8], ax mov [bp+var_6], dx mov ax, [bp+arg_10] mov dx, [bp+arg_12] shr dx, 1 rcr ax, 1 push dx push ax mov ax, [bp+arg_14] mov dx, [bp+arg_16] shr dx, 1 rcr ax, 1 push dx push ax call __aFlmul add ax, [bp+var_8] adc dx, [bp+var_6] mov [bp+var_4], ax mov [bp+var_2], dx push [bp+arg_12] push [bp+arg_10] push [bp+var_1A] push [bp+var_1C] call __aFulrem shr dx, 1 rcr ax, 1 mov cx, [bp+var_20] mov bx, [bp+var_1E] shr bx, 1 rcr cx, 1 shr bx, 1 rcr cx, 1 add ax, cx adc dx, bx add [bp+var_8], ax adc [bp+var_6], dx push [bp+arg_12] push [bp+arg_10] push [bp+var_1A] push [bp+var_1C] call __aFulrem shr dx, 1 rcr ax, 1 mov cx, [bp+var_20] mov bx, [bp+var_1E] shr bx, 1 rcr cx, 1 shr bx, 1 rcr cx, 1 add ax, cx adc dx, bx add [bp+var_4], ax adc [bp+var_2], dx jmp loc_1038_16D2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_13ED: ; CODE XREF: _SetSourceRect_MMIO16+Dj ; _SetSourceRect_MMIO16+17j cmp [bp+arg_8], 3449h jz loc_1038_13F7 jmp loc_1038_14EA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_13F7: ; CODE XREF: _SetSourceRect_MMIO16+108j cmp [bp+arg_A], 3032h jz loc_1038_1401 jmp loc_1038_14EA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1401: ; CODE XREF: _SetSourceRect_MMIO16+112j mov ax, [bp+arg_10] mov dx, [bp+arg_12] shl ax, 1 rcl dx, 1 mov [bp+var_20], ax mov [bp+var_1E], dx mov ax, [bp+arg_C] mov dx, [bp+arg_E] sub ax, [bp+arg_1C] sbb dx, [bp+arg_1E] mov [bp+var_1C], ax mov [bp+var_1A], dx push [bp+var_1E] push [bp+var_20] push [bp+var_1E] push [bp+var_20] push [bp+var_1A] push [bp+var_1C] call __aFuldiv push dx push ax call __aFlmul mov [bp+var_18], ax mov [bp+var_16], dx push [bp+arg_12] push [bp+arg_10] push [bp+arg_16] push [bp+arg_14] call __aFlmul add ax, [bp+arg_1C] adc dx, [bp+arg_1E] mov [bp+var_4], ax mov [bp+var_2], dx mov ax, [bp+arg_10] mov dx, [bp+arg_12] shr dx, 1 rcr ax, 1 push dx push ax mov ax, [bp+arg_14] mov dx, [bp+arg_16] shr dx, 1 rcr ax, 1 push dx push ax call __aFlmul add ax, [bp+var_4] adc dx, [bp+var_2] mov [bp+var_8], ax mov [bp+var_6], dx push [bp+arg_12] push [bp+arg_10] push [bp+var_1A] push [bp+var_1C] call __aFulrem shr dx, 1 rcr ax, 1 mov cx, [bp+var_18] mov bx, [bp+var_16] shr bx, 1 rcr cx, 1 shr bx, 1 rcr cx, 1 add ax, cx adc dx, bx add [bp+var_4], ax adc [bp+var_2], dx push [bp+arg_12] push [bp+arg_10] push [bp+var_1A] push [bp+var_1C] call __aFulrem shr dx, 1 rcr ax, 1 mov cx, [bp+var_18] mov bx, [bp+var_16] shr bx, 1 rcr cx, 1 shr bx, 1 rcr cx, 1 add ax, cx adc dx, bx add [bp+var_8], ax adc [bp+var_6], dx jmp loc_1038_16D2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_14EA: ; CODE XREF: _SetSourceRect_MMIO16+10Aj ; _SetSourceRect_MMIO16+114j cmp [bp+arg_8], 4D4Eh jz loc_1038_14F4 jmp loc_1038_14FE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_14F4: ; CODE XREF: _SetSourceRect_MMIO16+205j cmp [bp+arg_A], 434Dh jnz loc_1038_14FE jmp loc_1038_153A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_14FE: ; CODE XREF: _SetSourceRect_MMIO16+207j ; _SetSourceRect_MMIO16+20Fj cmp [bp+arg_8], 4D48h jz loc_1038_1508 jmp loc_1038_1512 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1508: ; CODE XREF: _SetSourceRect_MMIO16+219j cmp [bp+arg_A], 4E43h jnz loc_1038_1512 jmp loc_1038_153A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1512: ; CODE XREF: _SetSourceRect_MMIO16+21Bj ; _SetSourceRect_MMIO16+223j cmp [bp+arg_8], 4D44h jz loc_1038_151C jmp loc_1038_1526 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_151C: ; CODE XREF: _SetSourceRect_MMIO16+22Dj cmp [bp+arg_A], 4E43h jnz loc_1038_1526 jmp loc_1038_153A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1526: ; CODE XREF: _SetSourceRect_MMIO16+22Fj ; _SetSourceRect_MMIO16+237j cmp [bp+arg_8], 4D4Eh jz loc_1038_1530 jmp loc_1038_16D2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1530: ; CODE XREF: _SetSourceRect_MMIO16+241j cmp [bp+arg_A], 4147h jz loc_1038_153A jmp loc_1038_16D2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_153A: ; CODE XREF: _SetSourceRect_MMIO16+211j ; _SetSourceRect_MMIO16+225j ; _SetSourceRect_MMIO16+239j ; _SetSourceRect_MMIO16+24Bj les bx, [bp+arg_0] mov ax, es:[bx+4F9h] mov dx, es:[bx+4FBh] mov [bp+var_20], ax mov [bp+var_1E], dx push [bp+arg_16] push [bp+arg_14] push [bp+var_1E] push [bp+var_20] call __aFlmul add ax, 3FFh adc dx, 0 and ax, 0FC00h and dx, 0FFFFh mov [bp+var_1C], ax mov [bp+var_1A], dx push [bp+arg_16] push [bp+arg_14] push [bp+var_1E] push [bp+var_20] call __aFlmul shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 add ax, 3FFh adc dx, 0 and ax, 0FC00h and dx, 0FFFFh mov [bp+var_18], ax mov [bp+var_16], dx mov ax, [bp+arg_C] mov dx, [bp+arg_E] sub ax, [bp+arg_1C] sbb dx, [bp+arg_1E] mov [bp+var_24], ax mov [bp+var_22], dx push [bp+var_1E] push [bp+var_20] mov ax, [bp+var_20] mov dx, [bp+var_1E] shl ax, 1 rcl dx, 1 push dx push ax push [bp+var_22] push [bp+var_24] call __aFuldiv push dx push ax call __aFlmul shl ax, 1 rcl dx, 1 mov [bp+var_28], ax mov [bp+var_26], dx mov ax, [bp+var_24] mov dx, [bp+var_22] sub ax, [bp+var_28] sbb dx, [bp+var_26] mov [bp+var_2C], ax mov [bp+var_2A], dx mov ax, [bp+var_20] mov dx, [bp+var_1E] cmp [bp+var_2A], dx jnb loc_1038_15FB jmp loc_1038_1614 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_15FB: ; CODE XREF: _SetSourceRect_MMIO16+30Cj jbe loc_1038_1600 jmp loc_1038_1608 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1600: ; CODE XREF: _SetSourceRect_MMIO16+311j cmp [bp+var_2C], ax ja loc_1038_1608 jmp loc_1038_1614 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1608: ; CODE XREF: _SetSourceRect_MMIO16+313j ; _SetSourceRect_MMIO16+319j mov ax, [bp+var_20] mov dx, [bp+var_1E] sub [bp+var_2C], ax sbb [bp+var_2A], dx loc_1038_1614: ; CODE XREF: _SetSourceRect_MMIO16+30Ej ; _SetSourceRect_MMIO16+31Bj les bx, [bp+arg_0] cmp word ptr es:[bx+543h], 5 jbe loc_1038_1622 jmp loc_1038_1666 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1622: ; CODE XREF: _SetSourceRect_MMIO16+333j jnb loc_1038_1627 jmp loc_1038_1633 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1627: ; CODE XREF: _SetSourceRect_MMIO16+338j cmp word ptr es:[bx+541h], 2800h jbe loc_1038_1633 jmp loc_1038_1666 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1633: ; CODE XREF: _SetSourceRect_MMIO16+33Aj ; _SetSourceRect_MMIO16+344j mov ax, [bp+var_1C] mov dx, [bp+var_1A] add ax, [bp+arg_1C] adc dx, [bp+arg_1E] add ax, 2000h adc dx, 0 mov [bp+var_8], ax mov [bp+var_6], dx mov ax, [bp+var_18] mov dx, [bp+var_16] add ax, [bp+var_8] adc dx, [bp+var_6] add ax, 800h adc dx, 0 mov [bp+var_4], ax mov [bp+var_2], dx jmp loc_1038_168A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1666: ; CODE XREF: _SetSourceRect_MMIO16+335j ; _SetSourceRect_MMIO16+346j mov ax, [bp+var_1C] mov dx, [bp+var_1A] add ax, [bp+arg_1C] adc dx, [bp+arg_1E] mov [bp+var_8], ax mov [bp+var_6], dx mov ax, [bp+var_18] mov dx, [bp+var_16] add ax, [bp+var_8] adc dx, [bp+var_6] mov [bp+var_4], ax mov [bp+var_2], dx loc_1038_168A: ; CODE XREF: _SetSourceRect_MMIO16+379j mov ax, [bp+var_28] mov dx, [bp+var_26] shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 add [bp+var_8], ax adc [bp+var_6], dx mov ax, [bp+var_28] mov dx, [bp+var_26] shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 add [bp+var_4], ax adc [bp+var_2], dx mov ax, [bp+var_2C] mov dx, [bp+var_2A] shr dx, 1 rcr ax, 1 add [bp+var_8], ax adc [bp+var_6], dx mov ax, [bp+var_2C] mov dx, [bp+var_2A] shr dx, 1 rcr ax, 1 add [bp+var_4], ax adc [bp+var_2], dx loc_1038_16D2: ; CODE XREF: _SetSourceRect_MMIO16+100j ; _SetSourceRect_MMIO16+1FDj ; _SetSourceRect_MMIO16+243j ; _SetSourceRect_MMIO16+24Dj cmp [bp+arg_8], 5659h jz loc_1038_16DC jmp loc_1038_16E6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_16DC: ; CODE XREF: _SetSourceRect_MMIO16+3EDj cmp [bp+arg_A], 3231h jnz loc_1038_16E6 jmp loc_1038_174A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_16E6: ; CODE XREF: _SetSourceRect_MMIO16+3EFj ; _SetSourceRect_MMIO16+3F7j cmp [bp+arg_8], 3449h jz loc_1038_16F0 jmp loc_1038_16FA ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_16F0: ; CODE XREF: _SetSourceRect_MMIO16+401j cmp [bp+arg_A], 3032h jnz loc_1038_16FA jmp loc_1038_174A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_16FA: ; CODE XREF: _SetSourceRect_MMIO16+403j ; _SetSourceRect_MMIO16+40Bj cmp [bp+arg_8], 4D4Eh jz loc_1038_1704 jmp loc_1038_170E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1704: ; CODE XREF: _SetSourceRect_MMIO16+415j cmp [bp+arg_A], 434Dh jnz loc_1038_170E jmp loc_1038_174A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_170E: ; CODE XREF: _SetSourceRect_MMIO16+417j ; _SetSourceRect_MMIO16+41Fj cmp [bp+arg_8], 4D48h jz loc_1038_1718 jmp loc_1038_1722 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1718: ; CODE XREF: _SetSourceRect_MMIO16+429j cmp [bp+arg_A], 4E43h jnz loc_1038_1722 jmp loc_1038_174A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1722: ; CODE XREF: _SetSourceRect_MMIO16+42Bj ; _SetSourceRect_MMIO16+433j cmp [bp+arg_8], 4D44h jz loc_1038_172C jmp loc_1038_1736 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_172C: ; CODE XREF: _SetSourceRect_MMIO16+43Dj cmp [bp+arg_A], 4E43h jnz loc_1038_1736 jmp loc_1038_174A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1736: ; CODE XREF: _SetSourceRect_MMIO16+43Fj ; _SetSourceRect_MMIO16+447j cmp [bp+arg_8], 4D4Eh jz loc_1038_1740 jmp loc_1038_17B0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1740: ; CODE XREF: _SetSourceRect_MMIO16+451j cmp [bp+arg_A], 4147h jz loc_1038_174A jmp loc_1038_17B0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_174A: ; CODE XREF: _SetSourceRect_MMIO16+3F9j ; _SetSourceRect_MMIO16+40Dj ; _SetSourceRect_MMIO16+421j ; _SetSourceRect_MMIO16+435j ; _SetSourceRect_MMIO16+449j ; _SetSourceRect_MMIO16+45Bj mov ax, [bp+arg_18] mov dx, [bp+arg_1A] add ax, 3Fh ; '?' adc dx, 0 shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 add ax, 1 adc dx, 0 mov [bp+arg_18], ax mov [bp+arg_1A], dx mov ax, [bp+arg_18] mov dx, [bp+arg_1A] add ax, 1 adc dx, 0 mov [bp+var_C], ax mov [bp+var_A], dx cmp [bp+var_A], 0 jge loc_1038_1795 jmp loc_1038_17AD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1795: ; CODE XREF: _SetSourceRect_MMIO16+4A6j jle loc_1038_179A jmp loc_1038_17A3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_179A: ; CODE XREF: _SetSourceRect_MMIO16+4ABj cmp [bp+var_C], 9 ja loc_1038_17A3 jmp loc_1038_17AD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_17A3: ; CODE XREF: _SetSourceRect_MMIO16+4ADj ; _SetSourceRect_MMIO16+4B4j mov [bp+var_C], 9 mov [bp+var_A], 0 loc_1038_17AD: ; CODE XREF: _SetSourceRect_MMIO16+4A8j ; _SetSourceRect_MMIO16+4B6j jmp loc_1038_1817 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_17B0: ; CODE XREF: _SetSourceRect_MMIO16+453j ; _SetSourceRect_MMIO16+45Dj shl [bp+arg_18], 1 rcl [bp+arg_1A], 1 mov ax, [bp+arg_18] mov dx, [bp+arg_1A] add ax, 1Fh adc dx, 0 shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 add ax, 1 adc dx, 0 mov [bp+arg_18], ax mov [bp+arg_1A], dx mov ax, [bp+arg_18] mov dx, [bp+arg_1A] shr dx, 1 rcr ax, 1 shr dx, 1 rcr ax, 1 mov [bp+var_C], ax mov [bp+var_A], dx cmp [bp+var_A], 0 jge loc_1038_17FF jmp loc_1038_1817 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_17FF: ; CODE XREF: _SetSourceRect_MMIO16+510j jle loc_1038_1804 jmp loc_1038_180D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1804: ; CODE XREF: _SetSourceRect_MMIO16+515j cmp [bp+var_C], 9 ja loc_1038_180D jmp loc_1038_1817 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_180D: ; CODE XREF: _SetSourceRect_MMIO16+517j ; _SetSourceRect_MMIO16+51Ej mov [bp+var_C], 9 mov [bp+var_A], 0 loc_1038_1817: ; CODE XREF: _SetSourceRect_MMIO16+4C3j ; _SetSourceRect_MMIO16+512j ; _SetSourceRect_MMIO16+520j mov al, byte ptr [bp+var_C] and ax, 0Fh sub dx, dx shl ax, 1 rcl dx, 1 shl ax, 1 rcl dx, 1 mov [bp+var_C], ax mov [bp+var_A], dx mov ax, word ptr _lpMEMIO_GRIDX mov dx, word ptr _lpMEMIO_GRIDX+2 mov word ptr [bp+var_10], ax mov word ptr [bp+var_10+2], dx mov ax, [bp+arg_6] or ax, [bp+arg_4] jz loc_1038_1845 jmp loc_1038_1AC0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1845: ; CODE XREF: _SetSourceRect_MMIO16+556j cmp [bp+arg_8], 5659h jz loc_1038_184F jmp loc_1038_1859 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_184F: ; CODE XREF: _SetSourceRect_MMIO16+560j cmp [bp+arg_A], 3231h jnz loc_1038_1859 jmp loc_1038_18BD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1859: ; CODE XREF: _SetSourceRect_MMIO16+562j ; _SetSourceRect_MMIO16+56Aj cmp [bp+arg_8], 3449h jz loc_1038_1863 jmp loc_1038_186D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1863: ; CODE XREF: _SetSourceRect_MMIO16+574j cmp [bp+arg_A], 3032h jnz loc_1038_186D jmp loc_1038_18BD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_186D: ; CODE XREF: _SetSourceRect_MMIO16+576j ; _SetSourceRect_MMIO16+57Ej cmp [bp+arg_8], 4D4Eh jz loc_1038_1877 jmp loc_1038_1881 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1877: ; CODE XREF: _SetSourceRect_MMIO16+588j cmp [bp+arg_A], 434Dh jnz loc_1038_1881 jmp loc_1038_18BD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1881: ; CODE XREF: _SetSourceRect_MMIO16+58Aj ; _SetSourceRect_MMIO16+592j cmp [bp+arg_8], 4D48h jz loc_1038_188B jmp loc_1038_1895 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_188B: ; CODE XREF: _SetSourceRect_MMIO16+59Cj cmp [bp+arg_A], 4E43h jnz loc_1038_1895 jmp loc_1038_18BD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1895: ; CODE XREF: _SetSourceRect_MMIO16+59Ej ; _SetSourceRect_MMIO16+5A6j cmp [bp+arg_8], 4D44h jz loc_1038_189F jmp loc_1038_18A9 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_189F: ; CODE XREF: _SetSourceRect_MMIO16+5B0j cmp [bp+arg_A], 4E43h jnz loc_1038_18A9 jmp loc_1038_18BD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_18A9: ; CODE XREF: _SetSourceRect_MMIO16+5B2j ; _SetSourceRect_MMIO16+5BAj cmp [bp+arg_8], 4D4Eh jz loc_1038_18B3 jmp loc_1038_19F3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_18B3: ; CODE XREF: _SetSourceRect_MMIO16+5C4j cmp [bp+arg_A], 4147h jz loc_1038_18BD jmp loc_1038_19F3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_18BD: ; CODE XREF: _SetSourceRect_MMIO16+56Cj ; _SetSourceRect_MMIO16+580j ; _SetSourceRect_MMIO16+594j ; _SetSourceRect_MMIO16+5A8j ; _SetSourceRect_MMIO16+5BCj ; _SetSourceRect_MMIO16+5CEj mov ax, [bp+var_2] mov [bp+var_14], ax mov al, 0CFh ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+var_4] mov dx, [bp+var_2] mov al, ah mov ah, dl mov dl, dh sub dh, dh sub ah, ah mov [bp+var_14], ax mov al, 0D0h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov al, byte ptr [bp+var_4] and ax, 0FEh mov [bp+var_14], ax mov al, 0D1h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+arg_10] mov dx, [bp+arg_12] mov al, ah mov ah, dl mov dl, dh sub dh, dh shr dx, 1 rcr ax, 1 mov [bp+var_14], ax mov al, 0CDh ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+arg_10] mov dx, [bp+arg_12] shr dx, 1 rcr ax, 1 sub ah, ah mov [bp+var_14], ax mov al, 0CEh ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+var_6] mov [bp+var_14], ax mov al, 0C8h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+var_8] mov dx, [bp+var_6] mov al, ah mov ah, dl mov dl, dh sub dh, dh sub ah, ah mov [bp+var_14], ax mov al, 0C9h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov al, byte ptr [bp+var_8] and ax, 0FEh mov [bp+var_14], ax mov al, 0CAh ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+arg_10] mov dx, [bp+arg_12] mov al, ah mov ah, dl mov dl, dh sub dh, dh shr dx, 1 rcr ax, 1 mov [bp+var_14], ax mov al, 0CBh ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+arg_10] mov dx, [bp+arg_12] shr dx, 1 rcr ax, 1 sub ah, ah mov [bp+var_14], ax mov al, 0CCh ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax loc_1038_19F3: ; CODE XREF: _SetSourceRect_MMIO16+5C6j ; _SetSourceRect_MMIO16+5D0j mov ax, [bp+arg_E] mov [bp+var_14], ax mov al, 0B7h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+arg_C] mov dx, [bp+arg_E] mov al, ah mov ah, dl mov dl, dh sub dh, dh sub ah, ah mov [bp+var_14], ax mov al, 0B8h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov al, byte ptr [bp+arg_C] sub ah, ah mov [bp+var_14], ax mov al, 0B9h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+arg_10] mov dx, [bp+arg_12] mov al, ah mov ah, dl mov dl, dh sub dh, dh and ax, 0Fh mov [bp+var_14], ax mov al, 0BAh ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov al, byte ptr [bp+arg_10] sub ah, ah mov [bp+var_14], ax mov al, 0BBh ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+arg_18] mov [bp+var_14], ax mov al, 0BCh ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax les bx, [bp+var_10] mov byte ptr es:[bx], 0A4h ; '' inc word ptr [bp+var_10] les bx, [bp+var_10] mov al, es:[bx] and al, 0C3h or al, byte ptr [bp+var_C] mov [bp+var_12], al mov al, [bp+var_12] les bx, [bp+var_10] mov es:[bx], al jmp loc_1038_1D42 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1AC0: ; CODE XREF: _SetSourceRect_MMIO16+558j sub word ptr [bp+var_10], 3CEh add word ptr [bp+var_10], 3D4h cmp [bp+arg_8], 5659h jz loc_1038_1AD4 jmp loc_1038_1ADE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1AD4: ; CODE XREF: _SetSourceRect_MMIO16+7E5j cmp [bp+arg_A], 3231h jnz loc_1038_1ADE jmp loc_1038_1B42 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1ADE: ; CODE XREF: _SetSourceRect_MMIO16+7E7j ; _SetSourceRect_MMIO16+7EFj cmp [bp+arg_8], 3449h jz loc_1038_1AE8 jmp loc_1038_1AF2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1AE8: ; CODE XREF: _SetSourceRect_MMIO16+7F9j cmp [bp+arg_A], 3032h jnz loc_1038_1AF2 jmp loc_1038_1B42 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1AF2: ; CODE XREF: _SetSourceRect_MMIO16+7FBj ; _SetSourceRect_MMIO16+803j cmp [bp+arg_8], 4D4Eh jz loc_1038_1AFC jmp loc_1038_1B06 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1AFC: ; CODE XREF: _SetSourceRect_MMIO16+80Dj cmp [bp+arg_A], 434Dh jnz loc_1038_1B06 jmp loc_1038_1B42 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1B06: ; CODE XREF: _SetSourceRect_MMIO16+80Fj ; _SetSourceRect_MMIO16+817j cmp [bp+arg_8], 4D48h jz loc_1038_1B10 jmp loc_1038_1B1A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1B10: ; CODE XREF: _SetSourceRect_MMIO16+821j cmp [bp+arg_A], 4E43h jnz loc_1038_1B1A jmp loc_1038_1B42 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1B1A: ; CODE XREF: _SetSourceRect_MMIO16+823j ; _SetSourceRect_MMIO16+82Bj cmp [bp+arg_8], 4D44h jz loc_1038_1B24 jmp loc_1038_1B2E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1B24: ; CODE XREF: _SetSourceRect_MMIO16+835j cmp [bp+arg_A], 4E43h jnz loc_1038_1B2E jmp loc_1038_1B42 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1B2E: ; CODE XREF: _SetSourceRect_MMIO16+837j ; _SetSourceRect_MMIO16+83Fj cmp [bp+arg_8], 4D4Eh jz loc_1038_1B38 jmp loc_1038_1C78 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1B38: ; CODE XREF: _SetSourceRect_MMIO16+849j cmp [bp+arg_A], 4147h jz loc_1038_1B42 jmp loc_1038_1C78 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1B42: ; CODE XREF: _SetSourceRect_MMIO16+7F1j ; _SetSourceRect_MMIO16+805j ; _SetSourceRect_MMIO16+819j ; _SetSourceRect_MMIO16+82Dj ; _SetSourceRect_MMIO16+841j ; _SetSourceRect_MMIO16+853j mov ax, [bp+var_2] mov [bp+var_14], ax mov al, 0C6h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+var_4] mov dx, [bp+var_2] mov al, ah mov ah, dl mov dl, dh sub dh, dh sub ah, ah mov [bp+var_14], ax mov al, 0C7h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov al, byte ptr [bp+var_4] and ax, 0FEh mov [bp+var_14], ax mov al, 0C8h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+arg_10] mov dx, [bp+arg_12] mov al, ah mov ah, dl mov dl, dh sub dh, dh shr dx, 1 rcr ax, 1 mov [bp+var_14], ax mov al, 0C4h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+arg_10] mov dx, [bp+arg_12] shr dx, 1 rcr ax, 1 sub ah, ah mov [bp+var_14], ax mov al, 0C5h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+var_6] mov [bp+var_14], ax mov al, 0BFh ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+var_8] mov dx, [bp+var_6] mov al, ah mov ah, dl mov dl, dh sub dh, dh sub ah, ah mov [bp+var_14], ax mov al, 0C0h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov al, byte ptr [bp+var_8] and ax, 0FEh mov [bp+var_14], ax mov al, 0C1h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+arg_10] mov dx, [bp+arg_12] mov al, ah mov ah, dl mov dl, dh sub dh, dh shr dx, 1 rcr ax, 1 mov [bp+var_14], ax mov al, 0C2h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+arg_10] mov dx, [bp+arg_12] shr dx, 1 rcr ax, 1 sub ah, ah mov [bp+var_14], ax mov al, 0C3h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax loc_1038_1C78: ; CODE XREF: _SetSourceRect_MMIO16+84Bj ; _SetSourceRect_MMIO16+855j mov ax, [bp+arg_E] mov [bp+var_14], ax mov al, 0AFh ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+arg_C] mov dx, [bp+arg_E] mov al, ah mov ah, dl mov dl, dh sub dh, dh sub ah, ah mov [bp+var_14], ax mov al, 0B0h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov al, byte ptr [bp+arg_C] sub ah, ah mov [bp+var_14], ax mov al, 0B1h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+arg_10] mov dx, [bp+arg_12] mov al, ah mov ah, dl mov dl, dh sub dh, dh and ax, 0Fh mov [bp+var_14], ax mov al, 0B2h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov al, byte ptr [bp+arg_10] sub ah, ah mov [bp+var_14], ax mov al, 0B3h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax mov ax, [bp+arg_18] mov [bp+var_14], ax mov al, 0B4h ; '' mov ah, byte ptr [bp+var_14] mov [bp+var_14], ax mov ax, [bp+var_14] les bx, [bp+var_10] mov es:[bx], ax les bx, [bp+var_10] mov byte ptr es:[bx], 0CAh ; '' inc word ptr [bp+var_10] les bx, [bp+var_10] mov al, es:[bx] and al, 0C3h or al, byte ptr [bp+var_C] mov [bp+var_12], al mov al, [bp+var_12] les bx, [bp+var_10] mov es:[bx], al loc_1038_1D42: ; CODE XREF: _SetSourceRect_MMIO16+7D3j pop si pop di leave retn _SetSourceRect_MMIO16 endp ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _SetDestRect_MMIO16 proc near ; CODE XREF: _ReconfigureOneOverlay+19E4p ; _ReconfigureOneOverlay+1B89p var_6 = dword ptr -6 var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 arg_6 = word ptr 0Ah arg_8 = word ptr 0Ch arg_A = word ptr 0Eh arg_C = word ptr 10h arg_E = word ptr 12h arg_10 = word ptr 14h arg_12 = word ptr 16h enter 6, 0 push di push si mov ax, word ptr _lpMEMIO_GRIDX mov dx, word ptr _lpMEMIO_GRIDX+2 mov word ptr [bp+var_6], ax mov word ptr [bp+var_6+2], dx mov ax, [bp+arg_2] or ax, [bp+arg_0] jz loc_1038_1D64 jmp loc_1038_1E5F ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1D64: ; CODE XREF: _SetDestRect_MMIO16+19j mov ax, [bp+arg_4] mov dx, [bp+arg_6] mov al, ah mov ah, dl mov dl, dh shl dh, 1 sbb dh, dh and ax, 7 mov cx, [bp+arg_C] mov dx, [bp+arg_E] sub cx, 1 sbb dx, 0 sar dx, 1 rcr cx, 1 sar dx, 1 rcr cx, 1 sar dx, 1 rcr cx, 1 sar dx, 1 rcr cx, 1 and cx, 70h or cl, al mov [bp+var_2], cx mov al, 0B1h ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax mov al, byte ptr [bp+arg_4] sub ah, ah mov [bp+var_2], ax mov al, 0B2h ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax mov al, byte ptr [bp+arg_C] dec al sub ah, ah mov [bp+var_2], ax mov al, 0B3h ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax mov ax, [bp+arg_8] mov dx, [bp+arg_A] mov al, ah mov ah, dl mov dl, dh shl dh, 1 sbb dh, dh and ax, 3 mov cx, [bp+arg_10] mov dx, [bp+arg_12] sub cx, 1 sbb dx, 0 sar dx, 1 rcr cx, 1 sar dx, 1 rcr cx, 1 sar dx, 1 rcr cx, 1 sar dx, 1 rcr cx, 1 and cx, 30h or cl, al mov [bp+var_2], cx mov al, 0B4h ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax mov al, byte ptr [bp+arg_8] sub ah, ah mov [bp+var_2], ax mov al, 0B5h ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax mov al, byte ptr [bp+arg_10] dec al sub ah, ah mov [bp+var_2], ax mov al, 0B6h ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax jmp loc_1038_1F61 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1E5F: ; CODE XREF: _SetDestRect_MMIO16+1Bj sub word ptr [bp+var_6], 3CEh add word ptr [bp+var_6], 3D4h mov ax, [bp+arg_4] mov dx, [bp+arg_6] mov al, ah mov ah, dl mov dl, dh shl dh, 1 sbb dh, dh and ax, 7 mov cx, [bp+arg_C] mov dx, [bp+arg_E] sub cx, 1 sbb dx, 0 sar dx, 1 rcr cx, 1 sar dx, 1 rcr cx, 1 sar dx, 1 rcr cx, 1 sar dx, 1 rcr cx, 1 and cx, 70h or cl, al mov [bp+var_2], cx mov al, 0A9h ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax mov al, byte ptr [bp+arg_4] sub ah, ah mov [bp+var_2], ax mov al, 0AAh ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax mov al, byte ptr [bp+arg_C] dec al sub ah, ah mov [bp+var_2], ax mov al, 0ABh ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax mov ax, [bp+arg_8] mov dx, [bp+arg_A] mov al, ah mov ah, dl mov dl, dh shl dh, 1 sbb dh, dh and ax, 3 mov cx, [bp+arg_10] mov dx, [bp+arg_12] sub cx, 1 sbb dx, 0 sar dx, 1 rcr cx, 1 sar dx, 1 rcr cx, 1 sar dx, 1 rcr cx, 1 sar dx, 1 rcr cx, 1 and cx, 30h or cl, al mov [bp+var_2], cx mov al, 0ACh ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax mov al, byte ptr [bp+arg_8] sub ah, ah mov [bp+var_2], ax mov al, 0ADh ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax mov al, byte ptr [bp+arg_10] dec al sub ah, ah mov [bp+var_2], ax mov al, 0AEh ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax loc_1038_1F61: ; CODE XREF: _SetDestRect_MMIO16+116j pop si pop di leave retn _SetDestRect_MMIO16 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _SetScaleFactors_MMIO16 proc near ; CODE XREF: _ReconfigureOneOverlay+19F6p ; _ReconfigureOneOverlay+1B9Bp var_6 = dword ptr -6 var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = byte ptr 8 arg_5 = byte ptr 9 arg_6 = byte ptr 0Ah arg_7 = byte ptr 0Bh enter 6, 0 push di push si mov ax, word ptr _lpMEMIO_GRIDX mov dx, word ptr _lpMEMIO_GRIDX+2 mov word ptr [bp+var_6], ax mov word ptr [bp+var_6+2], dx mov ax, [bp+arg_2] or ax, [bp+arg_0] jz loc_1038_1F84 jmp loc_1038_1FEB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1F84: ; CODE XREF: _SetScaleFactors_MMIO16+19j mov al, [bp+arg_5] sub ah, ah mov [bp+var_2], ax mov al, 0C0h ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax mov al, [bp+arg_4] sub ah, ah mov [bp+var_2], ax mov al, 0C1h ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax mov al, [bp+arg_7] sub ah, ah mov [bp+var_2], ax mov al, 0C2h ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax mov al, [bp+arg_6] sub ah, ah mov [bp+var_2], ax mov al, 0C3h ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax jmp loc_1038_2059 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_1FEB: ; CODE XREF: _SetScaleFactors_MMIO16+1Bj sub word ptr [bp+var_6], 3CEh add word ptr [bp+var_6], 3D4h mov al, [bp+arg_5] sub ah, ah mov [bp+var_2], ax mov al, 0B7h ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax mov al, [bp+arg_4] sub ah, ah mov [bp+var_2], ax mov al, 0B8h ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax mov al, [bp+arg_7] sub ah, ah mov [bp+var_2], ax mov al, 0B9h ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax mov al, [bp+arg_6] sub ah, ah mov [bp+var_2], ax mov al, 0BAh ; '' mov ah, byte ptr [bp+var_2] mov [bp+var_2], ax mov ax, [bp+var_2] les bx, [bp+var_6] mov es:[bx], ax loc_1038_2059: ; CODE XREF: _SetScaleFactors_MMIO16+82j pop si pop di leave retn _SetScaleFactors_MMIO16 endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _ReconfigureOneOverlay proc near ; CODE XREF: _ReconfigureOverlay+5Cp var_AC = word ptr -0ACh var_AA = dword ptr -0AAh var_A6 = word ptr -0A6h var_A4 = word ptr -0A4h var_A2 = word ptr -0A2h var_A0 = word ptr -0A0h var_9E = word ptr -9Eh var_9C = word ptr -9Ch var_9A = word ptr -9Ah var_98 = word ptr -98h var_96 = word ptr -96h var_94 = word ptr -94h var_92 = word ptr -92h var_90 = word ptr -90h var_8E = word ptr -8Eh var_8C = word ptr -8Ch var_8A = word ptr -8Ah var_88 = word ptr -88h var_86 = word ptr -86h var_84 = word ptr -84h var_82 = word ptr -82h var_80 = word ptr -80h var_7E = word ptr -7Eh var_7C = word ptr -7Ch var_7A = word ptr -7Ah var_78 = word ptr -78h var_76 = word ptr -76h var_74 = word ptr -74h var_72 = word ptr -72h var_70 = word ptr -70h var_6E = word ptr -6Eh var_6C = word ptr -6Ch var_6A = word ptr -6Ah var_68 = word ptr -68h var_66 = word ptr -66h var_64 = word ptr -64h var_62 = word ptr -62h var_60 = word ptr -60h var_5E = word ptr -5Eh var_5C = dword ptr -5Ch var_58 = word ptr -58h var_56 = word ptr -56h var_54 = word ptr -54h var_52 = word ptr -52h var_50 = word ptr -50h var_4E = word ptr -4Eh var_4C = word ptr -4Ch var_4A = word ptr -4Ah var_48 = word ptr -48h var_46 = word ptr -46h var_44 = word ptr -44h var_42 = word ptr -42h var_40 = word ptr -40h var_3E = word ptr -3Eh var_3C = word ptr -3Ch var_3A = byte ptr -3Ah var_39 = byte ptr -39h var_38 = word ptr -38h var_36 = word ptr -36h var_34 = word ptr -34h var_32 = word ptr -32h var_30 = word ptr -30h var_2E = word ptr -2Eh var_2C = word ptr -2Ch var_2A = word ptr -2Ah var_28 = word ptr -28h var_26 = word ptr -26h var_24 = word ptr -24h var_22 = word ptr -22h var_20 = word ptr -20h var_1E = word ptr -1Eh var_1C = byte ptr -1Ch var_1B = byte ptr -1Bh var_19 = byte ptr -19h var_18 = word ptr -18h var_16 = word ptr -16h var_14 = word ptr -14h var_12 = word ptr -12h var_10 = word ptr -10h var_E = word ptr -0Eh var_C = word ptr -0Ch var_A = word ptr -0Ah var_8 = word ptr -8 var_6 = word ptr -6 var_4 = word ptr -4 var_2 = word ptr -2 arg_0 = word ptr 4 arg_2 = word ptr 6 arg_4 = word ptr 8 arg_6 = word ptr 0Ah enter 0ACh, 0 push di push si mov si, [bp+arg_0] mov ax, [bp+arg_2] mov word ptr dword_1947_A2AA, si mov word ptr dword_1947_A2AA+2, ax xor cl, cl mov [bp+var_56], 0 mov [bp+var_3A], cl mov [bp+var_39], cl mov cx, ax mov ax, 9Bh ; '' mov dx, 3D4h out dx, al ; Video: CRT cntrlr addr ; mov dx, 3D5h in al, dx ; Video: CRT controller internal registers and al, 10h mov [bp+var_1B], al mov ax, 9Bh ; '' mov dx, 3D4h out dx, al ; Video: CRT cntrlr addr ; mov dx, 3D5h in al, dx ; Video: CRT controller internal registers and al, 8 mov [bp+var_1C], al mov bx, [bp+arg_4] add bx, bx mov [bp+var_8E], bx mov es, cx mov ax, es:[bx+si+430h] mov [bp+var_54], ax mov bx, [bp+arg_4] shl bx, 2 mov [bp+var_90], bx mov [bp+var_94], si mov [bp+var_92], cx cmp word ptr es:[bx+si+496h], 4649h jnz loc_1038_20E5 cmp word ptr es:[bx+si+498h], 3930h jnz loc_1038_20E5 mov bx, si mov si, [bp+var_8E] mov ax, es:[bx+si+438h] mov [bp+var_54], ax loc_1038_20E5: ; CODE XREF: _ReconfigureOneOverlay+6Ej ; _ReconfigureOneOverlay+77j mov bx, [bp+var_8E] add bx, word ptr dword_1947_A2AA mov es, cx mov si, es:[bx+438h] mov ax, es:[bx+42Ch] mov [bp+var_58], ax mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_2116 cmp word ptr es:[bx+498h], 434Dh jz loc_1038_2164 loc_1038_2116: ; CODE XREF: _ReconfigureOneOverlay+ADj mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D48h jnz loc_1038_2130 cmp word ptr es:[bx+498h], 4E43h jz loc_1038_2164 loc_1038_2130: ; CODE XREF: _ReconfigureOneOverlay+C7j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D44h jnz loc_1038_214A cmp word ptr es:[bx+498h], 4E43h jz loc_1038_2164 loc_1038_214A: ; CODE XREF: _ReconfigureOneOverlay+E1j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_216E cmp word ptr es:[bx+498h], 4147h jnz loc_1038_216E loc_1038_2164: ; CODE XREF: _ReconfigureOneOverlay+B6j ; _ReconfigureOneOverlay+D0j ; _ReconfigureOneOverlay+EAj shl [bp+var_54], 2 shl si, 2 shr [bp+var_58], 1 loc_1038_216E: ; CODE XREF: _ReconfigureOneOverlay+FBj ; _ReconfigureOneOverlay+104j mov ax, 3CEh mov dx, selVGA mov cx, ax mov word ptr _lpMEMIO_GRIDX, ax mov word ptr _lpMEMIO_GRIDX+2, dx mov word ptr [bp+var_5C], ax mov word ptr [bp+var_5C+2], dx mov es, dx mov bx, cx mov word ptr es:3CEh, 2609h add word ptr [bp+var_5C], 6 les bx, [bp+var_5C] mov byte ptr es:[bx], 80h ; '' inc word ptr [bp+var_5C] les bx, [bp+var_5C] mov al, es:[bx] mov byte ptr [bp+var_2+1], al mov al, byte ptr [bp+var_2+1] and al, 1 mov byte ptr [bp+var_10], al or al, al jz loc_1038_21E2 cmp bWinOSType, 2 jz loc_1038_21C1 mov al, byte ptr [bp+var_2+1] or al, 8 mov es:[bx], al loc_1038_21C1: ; CODE XREF: _ReconfigureOneOverlay+159j dec word ptr [bp+var_5C] les bx, [bp+var_5C] mov byte ptr es:[bx], 0A8h ; '' inc word ptr [bp+var_5C] les bx, [bp+var_5C] mov al, es:[bx] test byte ptr [bp+var_2+1], 2 jz loc_1038_21F0 mov [bp+var_56], 1 jmp short loc_1038_21F0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_21E2: ; CODE XREF: _ReconfigureOneOverlay+152j test byte ptr [bp+var_2+1], 8 jz loc_1038_21F0 mov al, byte ptr [bp+var_2+1] and al, 0F7h mov es:[bx], al loc_1038_21F0: ; CODE XREF: _ReconfigureOneOverlay+17Aj ; _ReconfigureOneOverlay+181j ; _ReconfigureOneOverlay+188j mov ax, [bp+arg_6] or ax, [bp+arg_4] jnz loc_1038_2254 mov byte ptr [bp+var_E], 0 cmp byte ptr [bp+var_10], 0 jz loc_1038_2230 cmp bWinOSType, 2 jnz loc_1038_220C jmp loc_1038_22A7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_220C: ; CODE XREF: _ReconfigureOneOverlay+1A9j les bx, dword_1947_A2AA test byte ptr es:[bx+492h], 1 jz loc_1038_221B jmp loc_1038_22A7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_221B: ; CODE XREF: _ReconfigureOneOverlay+1B8j mov word ptr es:[bx+49Eh], 1 mov [bp+var_20], 1 mov [bp+var_1E], 0 jmp short loc_1038_22A7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2230: ; CODE XREF: _ReconfigureOneOverlay+1A2j les bx, dword_1947_A2AA cmp word ptr es:[bx+49Eh], 0 jz loc_1038_22A7 mov ax, 0A8h ; '' mov dx, 3D4h out dx, al ; Video: CRT cntrlr addr ; mov dx, 3D5h in al, dx ; Video: CRT controller internal registers and ax, 0FEh out dx, al ; Video: CRT controller internal registers mov word ptr es:[bx+49Eh], 0 jmp short loc_1038_22A7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2254: ; CODE XREF: _ReconfigureOneOverlay+198j mov byte ptr [bp+var_E], 0 cmp byte ptr [bp+var_10], 0 jz loc_1038_2286 cmp bWinOSType, 2 jz loc_1038_22A7 mov byte ptr [bp+var_E], 1 les bx, dword_1947_A2AA test byte ptr es:[bx+48Eh], 1 jnz loc_1038_22A7 sub ax, ax mov word ptr es:[bx+4A0h], 1 mov [bp+var_1E], ax mov [bp+var_20], ax jmp short loc_1038_22A7 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2286: ; CODE XREF: _ReconfigureOneOverlay+1FEj les bx, dword_1947_A2AA cmp word ptr es:[bx+4A0h], 0 jz loc_1038_22A7 mov ax, 0B0h ; '' mov dx, cx out dx, al ; EGA: graph 1 and 2 addr reg: ; unknown register mov dx, 3CFh in al, dx ; EGA port: graphics controller data register and ax, 0FEh out dx, al ; EGA port: graphics controller data register mov word ptr es:[bx+4A0h], 0 loc_1038_22A7: ; CODE XREF: _ReconfigureOneOverlay+1ABj ; _ReconfigureOneOverlay+1BAj ; _ReconfigureOneOverlay+1CEj ; _ReconfigureOneOverlay+1DCj ; _ReconfigureOneOverlay+1F4j ; _ReconfigureOneOverlay+205j ; _ReconfigureOneOverlay+215j ; _ReconfigureOneOverlay+226j ; _ReconfigureOneOverlay+232j mov bx, [bp+var_90] mov es, word ptr dword_1947_A2AA+2 add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_22C5 cmp word ptr es:[bx+498h], 434Dh jz loc_1038_2313 loc_1038_22C5: ; CODE XREF: _ReconfigureOneOverlay+25Cj mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D48h jnz loc_1038_22DF cmp word ptr es:[bx+498h], 4E43h jz loc_1038_2313 loc_1038_22DF: ; CODE XREF: _ReconfigureOneOverlay+276j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D44h jnz loc_1038_22F9 cmp word ptr es:[bx+498h], 4E43h jz loc_1038_2313 loc_1038_22F9: ; CODE XREF: _ReconfigureOneOverlay+290j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_2348 cmp word ptr es:[bx+498h], 4147h jnz loc_1038_2348 loc_1038_2313: ; CODE XREF: _ReconfigureOneOverlay+265j ; _ReconfigureOneOverlay+27Fj ; _ReconfigureOneOverlay+299j mov bx, word ptr dword_1947_A2AA mov di, [bp+var_8E] cmp word ptr es:[bx+di+49Eh], 0 jz loc_1038_233A mov ax, 1 cwd sub ax, [bp+arg_4] sbb dx, [bp+arg_6] mov es:[bx+599h], ax mov es:[bx+59Bh], dx jmp short loc_1038_2348 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_233A: ; CODE XREF: _ReconfigureOneOverlay+2C3j mov word ptr es:[bx+599h], 0FFFFh mov word ptr es:[bx+59Bh], 0FFFFh loc_1038_2348: ; CODE XREF: _ReconfigureOneOverlay+2AAj ; _ReconfigureOneOverlay+2B3j ; _ReconfigureOneOverlay+2D9j mov bx, [bp+arg_4] shl bx, 4 mov [bp+var_96], bx add bx, word ptr dword_1947_A2AA mov es, word ptr dword_1947_A2AA+2 mov ax, es:[bx+3FAh] mov dx, es:[bx+3FCh] mov [bp+var_6C], ax mov [bp+var_6A], dx mov ax, es:[bx+402h] mov dx, es:[bx+404h] mov [bp+var_64], ax mov [bp+var_62], dx mov ax, es:[bx+3FEh] mov dx, es:[bx+400h] mov [bp+var_68], ax mov [bp+var_66], dx mov ax, es:[bx+406h] mov dx, es:[bx+408h] mov [bp+var_60], ax mov [bp+var_5E], dx or dx, ax jnz loc_1038_23A1 jmp loc_1038_3BFF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_23A1: ; CODE XREF: _ReconfigureOneOverlay+33Ej mov ax, [bp+var_62] or ax, [bp+var_64] jnz loc_1038_23AC jmp loc_1038_3BFF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_23AC: ; CODE XREF: _ReconfigureOneOverlay+349j cmp byte ptr [bp+var_E], 0 jnz loc_1038_23C0 push 0 call _GetStartAddr16 add sp, 2 and ax, 0FFF8h jmp short loc_1038_23C8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_23C0: ; CODE XREF: _ReconfigureOneOverlay+352j push 1 call _GetStartAddr16 add sp, 2 loc_1038_23C8: ; CODE XREF: _ReconfigureOneOverlay+35Fj mov [bp+var_24], ax mov [bp+var_22], dx test PANNING_FLAG, 2 jz loc_1038_23DC mov byte ptr [bp+var_18+1], 1 jmp short loc_1038_23E0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_23DC: ; CODE XREF: _ReconfigureOneOverlay+375j mov byte ptr [bp+var_18+1], 0 loc_1038_23E0: ; CODE XREF: _ReconfigureOneOverlay+37Bj mov bx, [bp+var_90] mov es, word ptr dword_1947_A2AA+2 add bx, word ptr dword_1947_A2AA test byte ptr es:[bx+48Eh], 2 jnz loc_1038_23F7 jmp loc_1038_25A0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_23F7: ; CODE XREF: _ReconfigureOneOverlay+394j mov bx, word ptr dword_1947_A2AA mov ax, es:[bx+42Ah] shr ax, 3 mov [bp+var_6], ax sub ax, ax mov [bp+var_3C], ax mov [bp+var_3E], ax add bx, [bp+var_96] mov ax, es:[bx+3BAh] mov dx, es:[bx+3BCh] mov [bp+var_7C], ax mov [bp+var_7A], dx mov ax, es:[bx+3C2h] mov dx, es:[bx+3C4h] mov [bp+var_74], ax mov [bp+var_72], dx mov ax, es:[bx+3BEh] mov dx, es:[bx+3C0h] mov [bp+var_78], ax mov [bp+var_76], dx mov ax, es:[bx+3C6h] mov dx, es:[bx+3C8h] mov [bp+var_70], ax mov [bp+var_6E], dx mov bx, word ptr dword_1947_A2AA test byte ptr es:[bx+44Dh], 10h jz loc_1038_247B push 0 push 2 sub ax, [bp+var_78] sbb dx, [bp+var_76] push dx push ax call __aFldiv add ax, [bp+var_78] adc dx, [bp+var_76] mov [bp+var_70], ax mov [bp+var_6E], dx loc_1038_247B: ; CODE XREF: _ReconfigureOneOverlay+3FEj push [bp+var_6A] push [bp+var_6C] mov ax, [bp+var_6] sub dx, dx mov [bp+var_9A], ax mov [bp+var_98], dx push dx push ax call __aFlmul mov [bp+var_50], ax mov [bp+var_4E], dx mov bx, [bp+var_90] mov es, word ptr dword_1947_A2AA+2 add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 5559h jz loc_1038_24B3 jmp loc_1038_2558 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_24B3: ; CODE XREF: _ReconfigureOneOverlay+450j cmp word ptr es:[bx+498h], 3259h jz loc_1038_24BF jmp loc_1038_2558 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_24BF: ; CODE XREF: _ReconfigureOneOverlay+45Cj mov ax, [bp+var_74] mov dx, [bp+var_72] sub ax, [bp+var_7C] sbb dx, [bp+var_7A] mov [bp+var_28], ax mov [bp+var_26], dx mov ax, [bp+var_64] mov dx, [bp+var_62] sub ax, [bp+var_6C] sbb dx, [bp+var_6A] mov [bp+var_2C], ax mov [bp+var_2A], dx sub ax, ax mov [bp-2], ax mov [bp+var_4], ax test byte ptr [bp+var_50], 3 jz loc_1038_2518 mov [bp+var_52], si loc_1038_24F4: ; CODE XREF: _ReconfigureOneOverlay+4B8j add [bp+var_6C], 1 adc [bp+var_6A], 0 add [bp+var_4], 1 adc word ptr [bp-2], 0 mov ax, [bp+var_9A] mov dx, [bp+var_98] add [bp+var_50], ax adc [bp+var_4E], dx test byte ptr [bp+var_50], 3 jnz loc_1038_24F4 loc_1038_2518: ; CODE XREF: _ReconfigureOneOverlay+491j cmp [bp+var_6], 3 jnz loc_1038_252C mov ax, [bp+var_4] mov dx, [bp-2] loc_1038_2524: ; CODE XREF: _ReconfigureOneOverlay+4F8j sub [bp+var_74], ax sbb [bp+var_72], dx jmp short loc_1038_257D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_252C: ; CODE XREF: _ReconfigureOneOverlay+4BEj mov ax, [bp+var_28] mov dx, [bp+var_26] cmp [bp+var_2C], ax jnz loc_1038_254C cmp [bp+var_2A], dx jnz loc_1038_254C test byte ptr [bp+var_64], 1 jz loc_1038_257D sub [bp+var_64], 1 sbb [bp+var_62], 0 jmp short loc_1038_257D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_254C: ; CODE XREF: _ReconfigureOneOverlay+4D7j ; _ReconfigureOneOverlay+4DCj mov ax, [bp+var_4] mov dx, [bp-2] add ax, ax adc dx, dx jmp short loc_1038_2524 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2558: ; CODE XREF: _ReconfigureOneOverlay+452j ; _ReconfigureOneOverlay+45Ej test byte ptr [bp+var_50], 1 jz loc_1038_257D mov [bp+var_52], si loc_1038_2561: ; CODE XREF: _ReconfigureOneOverlay+51Dj add [bp+var_6C], 1 adc [bp+var_6A], 0 mov ax, [bp+var_9A] mov dx, [bp+var_98] add [bp+var_50], ax adc [bp+var_4E], dx test byte ptr [bp+var_50], 1 jnz loc_1038_2561 loc_1038_257D: ; CODE XREF: _ReconfigureOneOverlay+4CCj ; _ReconfigureOneOverlay+4E2j ; _ReconfigureOneOverlay+4ECj ; _ReconfigureOneOverlay+4FEj sub ax, ax mov [bp+var_9E], si mov [bp+var_9C], ax push ax push si push [bp+var_66] push [bp+var_68] call __aFlmul add [bp+var_50], ax adc [bp+var_4E], dx mov [bp+var_52], si jmp loc_1038_291E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_25A0: ; CODE XREF: _ReconfigureOneOverlay+396j mov [bp+var_52], si mov bx, [bp+var_96] add bx, word ptr dword_1947_A2AA mov ax, es:[bx+3DAh] mov dx, es:[bx+3DCh] mov [bp+var_7C], ax mov [bp+var_7A], dx mov ax, es:[bx+3E2h] mov dx, es:[bx+3E4h] mov [bp+var_74], ax mov [bp+var_72], dx mov ax, es:[bx+3DEh] mov dx, es:[bx+3E0h] mov [bp+var_78], ax mov [bp+var_76], dx mov ax, es:[bx+3E6h] mov dx, es:[bx+3E8h] mov [bp+var_70], ax mov [bp+var_6E], dx mov bx, word ptr dword_1947_A2AA test byte ptr es:[bx+44Dh], 10h jz loc_1038_2614 push 0 push 2 sub ax, [bp+var_78] sbb dx, [bp+var_76] push dx push ax call __aFldiv add ax, [bp+var_78] adc dx, [bp+var_76] mov [bp+var_70], ax mov [bp+var_6E], dx loc_1038_2614: ; CODE XREF: _ReconfigureOneOverlay+597j mov ax, [bp+var_78] mov dx, [bp+var_76] mov [bp+var_C], ax mov [bp+var_A], dx mov bx, [bp+var_90] mov es, word ptr dword_1947_A2AA+2 add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_263E cmp word ptr es:[bx+498h], 434Dh jz loc_1038_268C loc_1038_263E: ; CODE XREF: _ReconfigureOneOverlay+5D5j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D48h jnz loc_1038_2658 cmp word ptr es:[bx+498h], 4E43h jz loc_1038_268C loc_1038_2658: ; CODE XREF: _ReconfigureOneOverlay+5EFj mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D44h jnz loc_1038_2672 cmp word ptr es:[bx+498h], 4E43h jz loc_1038_268C loc_1038_2672: ; CODE XREF: _ReconfigureOneOverlay+609j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_26A0 cmp word ptr es:[bx+498h], 4147h jnz loc_1038_26A0 loc_1038_268C: ; CODE XREF: _ReconfigureOneOverlay+5DEj ; _ReconfigureOneOverlay+5F8j ; _ReconfigureOneOverlay+612j mov ax, [bp+var_C] mov dx, [bp+var_A] sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 mov [bp+var_C], ax mov [bp+var_A], dx loc_1038_26A0: ; CODE XREF: _ReconfigureOneOverlay+623j ; _ReconfigureOneOverlay+62Cj mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA mov ax, es:[bx+444h] mov dx, es:[bx+446h] mov [bp+var_3E], ax mov [bp+var_3C], dx push [bp+var_A] push [bp+var_C] mov cx, [bp+var_52] sub si, si mov [bp+var_9E], cx mov [bp+var_9C], si push si push cx mov si, ax mov di, dx mov word ptr [bp+var_AA], bx mov word ptr [bp+var_AA+2], es call __aFlmul mov [bp+var_A2], ax mov [bp+var_A0], dx add si, ax adc di, dx push [bp+var_7A] push [bp+var_7C] mov ax, [bp+var_58] sub dx, dx mov [bp+var_A6], ax mov [bp+var_A4], dx push dx push ax call __aFlmul add si, ax adc di, dx mov [bp+var_50], si mov [bp+var_4E], di les bx, [bp+var_AA] test byte ptr es:[bx+48Eh], 8 jnz loc_1038_271D jmp loc_1038_291E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_271D: ; CODE XREF: _ReconfigureOneOverlay+6BAj call _UnlockZV mov [bp+var_6], ax mov ax, 8 mov dx, 3C4h out dx, al ; EGA: sequencer address reg ; unknown register mov dx, 3C5h in al, dx ; EGA port: sequencer data register mov byte ptr [bp+var_2], al mov ax, 9 mov dx, 3C4h out dx, al ; EGA: sequencer address reg ; unknown register mov dx, 3C5h in al, dx ; EGA port: sequencer data register mov byte ptr [bp+var_2+1], al cmp byte ptr [bp+var_18+1], ah jnz loc_1038_2749 jmp loc_1038_2816 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2749: ; CODE XREF: _ReconfigureOneOverlay+6E6j mov ax, [bp+var_22] or ax, [bp+var_24] jnz loc_1038_2754 jmp loc_1038_2816 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2754: ; CODE XREF: _ReconfigureOneOverlay+6F1j les bx, dword_1947_A2AA cmp word ptr es:[bx+370h], 0 jnz loc_1038_276B cmp word ptr es:[bx+374h], 0 jnz loc_1038_276B jmp loc_1038_2869 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_276B: ; CODE XREF: _ReconfigureOneOverlay+700j ; _ReconfigureOneOverlay+708j mov word ptr es:[bx+370h], 0 les bx, dword_1947_A2AA mov ax, 0Eh mov word ptr es:[bx+374h], 1 mov dx, 3C4h out dx, al ; EGA: sequencer address reg ; unknown register mov dx, 3C5h in al, dx ; EGA port: sequencer data register mov byte ptr [bp+var_4+1], al mov ax, 0Dh mov dx, 3C4h out dx, al ; EGA: sequencer address reg ; unknown register mov dx, 3C5h in al, dx ; EGA port: sequencer data register sub dx, dx mov cx, ax mov al, byte ptr [bp+var_4+1] mov ah, al sub al, al or ax, cx mov dl, ah mov ah, al sub al, al mov [bp+var_16], ax mov [bp+var_14], dx mov ax, 0Ch mov dx, 3C4h out dx, al ; EGA: sequencer address reg ; unknown register mov dx, 3C5h in al, dx ; EGA port: sequencer data register sub dx, dx or [bp+var_16], ax shl [bp+var_16], 1 rcl [bp+var_14], 1 test byte ptr [bp+var_2+1], 2 jz loc_1038_27EC mov al, byte ptr [bp+var_2] and al, 0FEh mov cx, ax mov al, 8 mov ah, cl mov dx, 3C4h out dx, ax ; EGA: sequencer address reg ; sequencer reset. ; Bits of data 0-1 indicate asynchronous/synchronous reset. mov al, byte ptr [bp+var_2+1] and al, 0FDh mov cx, ax mov al, 9 mov ah, cl out dx, ax ; EGA: sequencer address reg ; sequencer reset. ; Bits of data 0-1 indicate asynchronous/synchronous reset. mov al, 8 mov ah, byte ptr [bp+var_2] out dx, ax ; EGA: sequencer address reg ; sequencer reset. ; Bits of data 0-1 indicate asynchronous/synchronous reset. loc_1038_27EC: ; CODE XREF: _ReconfigureOneOverlay+76Bj push [bp+var_7A] push [bp+var_7C] push [bp+var_A4] push [bp+var_A6] call __aFlmul add ax, [bp+var_A2] adc dx, [bp+var_A0] add ax, [bp+var_16] adc dx, [bp+var_14] mov [bp+var_50], ax mov [bp+var_4E], dx jmp short loc_1038_2869 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2816: ; CODE XREF: _ReconfigureOneOverlay+6E8j ; _ReconfigureOneOverlay+6F3j les bx, dword_1947_A2AA cmp word ptr es:[bx+372h], 0 jz loc_1038_285E cmp word ptr es:[bx+376h], 0 jnz loc_1038_285E test byte ptr [bp+var_2+1], 2 jnz loc_1038_285E mov al, byte ptr [bp+var_2] and al, 0FEh mov cx, ax mov al, 8 mov ah, cl mov dx, 3C4h out dx, ax ; EGA: sequencer address reg ; sequencer reset. ; Bits of data 0-1 indicate asynchronous/synchronous reset. mov al, byte ptr [bp+var_2+1] or al, 2 mov cx, ax mov al, 9 mov ah, cl out dx, ax ; EGA: sequencer address reg ; sequencer reset. ; Bits of data 0-1 indicate asynchronous/synchronous reset. mov al, byte ptr [bp+var_2] or al, 1 mov cx, ax mov al, 8 mov ah, cl out dx, ax ; EGA: sequencer address reg ; sequencer reset. ; Bits of data 0-1 indicate asynchronous/synchronous reset. mov word ptr es:[bx+370h], 1 loc_1038_285E: ; CODE XREF: _ReconfigureOneOverlay+7C2j ; _ReconfigureOneOverlay+7CAj ; _ReconfigureOneOverlay+7D0j les bx, dword_1947_A2AA mov word ptr es:[bx+374h], 0 loc_1038_2869: ; CODE XREF: _ReconfigureOneOverlay+70Aj ; _ReconfigureOneOverlay+7B5j les bx, dword_1947_A2AA cmp word ptr es:[bx+36Ch], 0 jnz loc_1038_2878 jmp loc_1038_2913 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2878: ; CODE XREF: _ReconfigureOneOverlay+815j cmp byte ptr [bp+var_18+1], 0 jz loc_1038_28E6 mov ax, [bp+var_22] or ax, [bp+var_24] jz loc_1038_28E6 test byte ptr [bp+var_2+1], 2 jz loc_1038_28AD mov al, byte ptr [bp+var_2] and al, 0FEh mov cx, ax mov al, 8 mov ah, cl mov dx, 3C4h out dx, ax ; EGA: sequencer address reg ; sequencer reset. ; Bits of data 0-1 indicate asynchronous/synchronous reset. mov al, byte ptr [bp+var_2+1] and al, 0FDh mov cx, ax mov al, 9 mov ah, cl out dx, ax ; EGA: sequencer address reg ; sequencer reset. ; Bits of data 0-1 indicate asynchronous/synchronous reset. mov al, 8 mov ah, byte ptr [bp+var_2] out dx, ax ; EGA: sequencer address reg ; sequencer reset. ; Bits of data 0-1 indicate asynchronous/synchronous reset. loc_1038_28AD: ; CODE XREF: _ReconfigureOneOverlay+82Cj push [bp+var_7A] push [bp+var_7C] push [bp+var_A4] push [bp+var_A6] call __aFlmul add ax, [bp+var_A2] adc dx, [bp+var_A0] les bx, dword_1947_A2AA sub ax, es:[bx+10h] sbb dx, es:[bx+12h] add ax, es:[bx+368h] adc dx, es:[bx+36Ah] mov [bp+var_50], ax mov [bp+var_4E], dx jmp short loc_1038_2913 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_28E6: ; CODE XREF: _ReconfigureOneOverlay+81Ej ; _ReconfigureOneOverlay+826j test byte ptr [bp+var_2+1], 2 jnz loc_1038_2913 mov al, byte ptr [bp+var_2] and al, 0FEh mov cx, ax mov al, 8 mov ah, cl mov dx, 3C4h out dx, ax ; EGA: sequencer address reg ; sequencer reset. ; Bits of data 0-1 indicate asynchronous/synchronous reset. mov al, byte ptr [bp+var_2+1] or al, 2 mov cx, ax mov al, 9 mov ah, cl out dx, ax ; EGA: sequencer address reg ; sequencer reset. ; Bits of data 0-1 indicate asynchronous/synchronous reset. mov al, byte ptr [bp+var_2] or al, 1 mov cx, ax mov al, 8 mov ah, cl out dx, ax ; EGA: sequencer address reg ; sequencer reset. ; Bits of data 0-1 indicate asynchronous/synchronous reset. loc_1038_2913: ; CODE XREF: _ReconfigureOneOverlay+817j ; _ReconfigureOneOverlay+886j ; _ReconfigureOneOverlay+88Cj push [bp+var_6] call _RestoreZV add sp, 2 loc_1038_291E: ; CODE XREF: _ReconfigureOneOverlay+53Fj ; _ReconfigureOneOverlay+6BCj mov ax, [bp+var_74] mov dx, [bp+var_72] sub ax, [bp+var_7C] sbb dx, [bp+var_7A] mov [bp+var_28], ax mov [bp+var_26], dx mov ax, [bp+var_70] mov dx, [bp+var_6E] sub ax, [bp+var_78] sbb dx, [bp+var_76] mov [bp+var_4], ax mov [bp+var_2], dx mov ax, [bp+var_64] mov dx, [bp+var_62] sub ax, [bp+var_6C] sbb dx, [bp+var_6A] mov [bp+var_2C], ax mov [bp+var_2A], dx mov ax, [bp+var_60] mov dx, [bp+var_5E] sub ax, [bp+var_68] sbb dx, [bp+var_66] mov [bp+var_8], ax mov [bp+var_6], dx xor al, al mov byte ptr [bp+var_18], al mov [bp+var_19], al mov cx, 3CEh mov dx, selVGA mov word ptr [bp+var_5C], cx mov word ptr [bp+var_5C+2], dx mov bx, cx mov es, dx mov byte ptr es:[bx], 20h ; ' ' inc word ptr [bp+var_5C] les bx, [bp+var_5C] mov cl, es:[bx] mov byte ptr [bp+var_E+1], cl dec word ptr [bp+var_5C] mov cl, byte ptr [bp+var_E+1] and cl, 2 cmp cl, al jz loc_1038_29C2 mov bx, word ptr [bp+var_5C] mov byte ptr es:[bx], 25h ; '%' inc word ptr [bp+var_5C] les bx, [bp+var_5C] mov al, es:[bx] mov byte ptr [bp+var_10+1], al dec word ptr [bp+var_5C] mov al, byte ptr [bp+var_10+1] and al, 80h mov byte ptr [bp+var_18], al mov al, byte ptr [bp+var_10+1] and al, 4 mov [bp+var_19], al loc_1038_29C2: ; CODE XREF: _ReconfigureOneOverlay+93Cj mov al, byte ptr [bp+var_E+1] and ax, 18h cmp ax, 18h jz loc_1038_29F6 ja loc_1038_29FB or al, al jz loc_1038_29DE sub al, 8 jz loc_1038_29E6 sub al, 8 jz loc_1038_29EE jmp short loc_1038_29FB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_29DE: ; CODE XREF: _ReconfigureOneOverlay+973j mov [bp+var_48], 1E0h jmp short loc_1038_29FB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_29E6: ; CODE XREF: _ReconfigureOneOverlay+977j mov [bp+var_48], 258h jmp short loc_1038_29FB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_29EE: ; CODE XREF: _ReconfigureOneOverlay+97Bj mov [bp+var_48], 300h jmp short loc_1038_29FB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_29F6: ; CODE XREF: _ReconfigureOneOverlay+96Dj mov [bp+var_48], 400h loc_1038_29FB: ; CODE XREF: _ReconfigureOneOverlay+96Fj ; _ReconfigureOneOverlay+97Dj ; _ReconfigureOneOverlay+985j ; _ReconfigureOneOverlay+98Dj ; _ReconfigureOneOverlay+995j mov bx, [bp+var_90] mov es, word ptr dword_1947_A2AA+2 add bx, word ptr dword_1947_A2AA test byte ptr es:[bx+48Eh], 20h jz loc_1038_2A6F mov ax, [bp+var_28] mov dx, [bp+var_26] add ax, ax adc dx, dx add [bp+var_50], ax adc [bp+var_4E], dx mov ax, [bp+var_7A] or ax, [bp+var_7C] jz loc_1038_2A37 mov ax, [bp+var_7C] mov dx, [bp+var_7A] add ax, ax adc dx, dx sub [bp+var_50], ax sbb [bp+var_4E], dx loc_1038_2A37: ; CODE XREF: _ReconfigureOneOverlay+9C7j mov bx, [bp+var_8E] add bx, word ptr dword_1947_A2AA sub dx, dx mov ax, es:[bx+43Ch] cmp dx, [bp+var_72] jl loc_1038_2A6F jg loc_1038_2A52 cmp ax, [bp+var_74] jbe loc_1038_2A6F loc_1038_2A52: ; CODE XREF: _ReconfigureOneOverlay+9EDj mov bx, [bp+var_8E] add bx, word ptr dword_1947_A2AA mov ax, es:[bx+43Ch] sub ax, [bp+var_28] sbb dx, [bp+var_26] add ax, ax adc dx, dx add [bp+var_50], ax adc [bp+var_4E], dx loc_1038_2A6F: ; CODE XREF: _ReconfigureOneOverlay+9AFj ; _ReconfigureOneOverlay+9EBj ; _ReconfigureOneOverlay+9F2j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA test byte ptr es:[bx+48Eh], 40h jnz loc_1038_2A82 jmp loc_1038_2B0B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2A82: ; CODE XREF: _ReconfigureOneOverlay+A1Fj push [bp+var_9C] push [bp+var_9E] mov ax, [bp+var_4] mov dx, [bp+var_2] sub ax, 1 sbb dx, 0 push dx push ax call __aFlmul add [bp+var_50], ax adc [bp+var_4E], dx mov ax, [bp+var_76] or ax, [bp+var_78] jz loc_1038_2AC4 push [bp+var_76] push [bp+var_78] push [bp+var_9C] push [bp+var_9E] call __aFlmul sub [bp+var_50], ax sbb [bp+var_4E], dx loc_1038_2AC4: ; CODE XREF: _ReconfigureOneOverlay+A4Bj mov bx, [bp+var_8E] add bx, word ptr dword_1947_A2AA mov es, word ptr dword_1947_A2AA+2 mov ax, es:[bx+440h] sub dx, dx cmp dx, [bp+var_6E] jl loc_1038_2B0B jg loc_1038_2AE3 cmp ax, [bp+var_70] jbe loc_1038_2B0B loc_1038_2AE3: ; CODE XREF: _ReconfigureOneOverlay+A7Ej push [bp+var_9C] push [bp+var_9E] mov bx, [bp+var_8E] add bx, word ptr dword_1947_A2AA mov ax, es:[bx+440h] sub ax, [bp+var_4] sbb dx, [bp+var_2] push dx push ax call __aFlmul add [bp+var_50], ax adc [bp+var_4E], dx loc_1038_2B0B: ; CODE XREF: _ReconfigureOneOverlay+A21j ; _ReconfigureOneOverlay+A7Cj ; _ReconfigureOneOverlay+A83j cmp [bp+var_2C], 1 jnz loc_1038_2B24 cmp [bp+var_2A], 0 jnz loc_1038_2B24 mov [bp+var_34], 1000h mov [bp+var_32], 0 jmp short loc_1038_2B61 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2B24: ; CODE XREF: _ReconfigureOneOverlay+AB1j ; _ReconfigureOneOverlay+AB7j mov ax, [bp+var_2C] mov dx, [bp+var_2A] sub ax, 1 sbb dx, 0 push dx push ax mov ax, [bp+var_28] mov dx, [bp+var_26] sub ax, 1 sbb dx, 0 shr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 xchg ax, dx and ax, 0F000h push dx push ax call __aFldiv mov [bp+var_34], ax mov [bp+var_32], dx loc_1038_2B61: ; CODE XREF: _ReconfigureOneOverlay+AC3j cmp byte ptr [bp+var_10], 0 jz loc_1038_2B74 mov BY_INTERP, 0 and byte ptr word_1947_CDB0+1, 7Fh jmp short loc_1038_2B7E ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2B74: ; CODE XREF: _ReconfigureOneOverlay+B07j mov BY_INTERP, 1 or byte ptr word_1947_CDB0+1, 80h loc_1038_2B7E: ; CODE XREF: _ReconfigureOneOverlay+B13j cmp BY_INTERP, 0 jnz loc_1038_2B88 jmp loc_1038_2CE0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2B88: ; CODE XREF: _ReconfigureOneOverlay+B25j cmp [bp+var_8], 1 jnz loc_1038_2BA2 cmp [bp+var_6], 0 jnz loc_1038_2BA2 mov [bp+var_4C], 1000h mov [bp+var_4A], 0 jmp loc_1038_2C5D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2BA2: ; CODE XREF: _ReconfigureOneOverlay+B2Ej ; _ReconfigureOneOverlay+B34j mov bx, [bp+var_90] mov es, word ptr dword_1947_A2AA+2 add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_2BC0 cmp word ptr es:[bx+498h], 434Dh jz loc_1038_2C28 loc_1038_2BC0: ; CODE XREF: _ReconfigureOneOverlay+B57j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D48h jnz loc_1038_2BDA cmp word ptr es:[bx+498h], 4E43h jz loc_1038_2C28 loc_1038_2BDA: ; CODE XREF: _ReconfigureOneOverlay+B71j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D44h jnz loc_1038_2BF4 cmp word ptr es:[bx+498h], 4E43h jz loc_1038_2C28 loc_1038_2BF4: ; CODE XREF: _ReconfigureOneOverlay+B8Bj mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_2C0E cmp word ptr es:[bx+498h], 4147h jz loc_1038_2C28 loc_1038_2C0E: ; CODE XREF: _ReconfigureOneOverlay+BA5j mov ax, [bp+var_8] mov dx, [bp+var_6] add ax, 1 adc dx, 0 push dx push ax mov ax, [bp+var_4] mov dx, [bp+var_2] sub ax, 1 jmp short loc_1038_2C37 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2C28: ; CODE XREF: _ReconfigureOneOverlay+B60j ; _ReconfigureOneOverlay+B7Aj ; _ReconfigureOneOverlay+B94j ; _ReconfigureOneOverlay+BAEj ; _ReconfigureOneOverlay+CC8j ; _ReconfigureOneOverlay+CE5j ; _ReconfigureOneOverlay+D02j ; _ReconfigureOneOverlay+D1Fj push [bp+var_6] push [bp+var_8] mov ax, [bp+var_4] mov dx, [bp+var_2] sub ax, 2 loc_1038_2C37: ; CODE XREF: _ReconfigureOneOverlay+BC7j sbb dx, 0 loc_1038_2C3A: ; CODE XREF: _ReconfigureOneOverlay+D36j shr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 xchg ax, dx and ax, 0F000h push dx push ax call __aFldiv mov [bp+var_4C], ax mov [bp+var_4A], dx loc_1038_2C5D: ; CODE XREF: _ReconfigureOneOverlay+B40j mov bx, [bp+var_8E] mov es, word ptr dword_1947_A2AA+2 add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+49Eh], 0 jnz loc_1038_2C74 jmp loc_1038_2E12 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2C74: ; CODE XREF: _ReconfigureOneOverlay+C11j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA test byte ptr es:[bx+48Eh], 8 jnz loc_1038_2C87 jmp loc_1038_2DA8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2C87: ; CODE XREF: _ReconfigureOneOverlay+C24j mov bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+376h], 0 jnz loc_1038_2C96 jmp loc_1038_2D98 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2C96: ; CODE XREF: _ReconfigureOneOverlay+C33j push [bp+var_A] push [bp+var_C] push [bp+var_9C] push [bp+var_9E] call __aFlmul mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA mov es, word ptr dword_1947_A2AA+2 add ax, es:[bx+444h] adc dx, es:[bx+446h] push [bp+var_7A] push [bp+var_7C] push 0 push [bp+var_58] mov si, ax mov di, dx call __aFlmul add si, ax adc di, dx mov [bp+var_12], si mov [bp+var_10], di jmp loc_1038_2DB4 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2CE0: ; CODE XREF: _ReconfigureOneOverlay+B27j les bx, dword_1947_A2AA mov ax, es:[bx+1D0h] mov dx, es:[bx+1D2h] sub ax, 46h ; 'F' sbb dx, 0 cmp dx, [bp+var_6] jg loc_1038_2D0C jl loc_1038_2D00 cmp ax, [bp+var_8] ja loc_1038_2D0C loc_1038_2D00: ; CODE XREF: _ReconfigureOneOverlay+C9Bj mov ax, [bp+var_8] mov dx, [bp+var_6] add ax, 3 jmp short loc_1038_2D89 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2D0C: ; CODE XREF: _ReconfigureOneOverlay+C99j ; _ReconfigureOneOverlay+CA0j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_2D29 cmp word ptr es:[bx+498h], 434Dh jnz loc_1038_2D29 jmp loc_1038_2C28 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2D29: ; CODE XREF: _ReconfigureOneOverlay+CBDj ; _ReconfigureOneOverlay+CC6j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D48h jnz loc_1038_2D46 cmp word ptr es:[bx+498h], 4E43h jnz loc_1038_2D46 jmp loc_1038_2C28 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2D46: ; CODE XREF: _ReconfigureOneOverlay+CDAj ; _ReconfigureOneOverlay+CE3j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D44h jnz loc_1038_2D63 cmp word ptr es:[bx+498h], 4E43h jnz loc_1038_2D63 jmp loc_1038_2C28 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2D63: ; CODE XREF: _ReconfigureOneOverlay+CF7j ; _ReconfigureOneOverlay+D00j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_2D80 cmp word ptr es:[bx+498h], 4147h jnz loc_1038_2D80 jmp loc_1038_2C28 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2D80: ; CODE XREF: _ReconfigureOneOverlay+D14j ; _ReconfigureOneOverlay+D1Dj mov ax, [bp+var_8] mov dx, [bp+var_6] add ax, 1 loc_1038_2D89: ; CODE XREF: _ReconfigureOneOverlay+CABj adc dx, 0 push dx push ax mov ax, [bp+var_4] mov dx, [bp+var_2] jmp loc_1038_2C3A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2D98: ; CODE XREF: _ReconfigureOneOverlay+C35j cmp word ptr es:[bx+374h], 0 jz loc_1038_2DA8 mov ax, [bp+var_16] mov dx, [bp+var_14] jmp short loc_1038_2DAE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2DA8: ; CODE XREF: _ReconfigureOneOverlay+C26j ; _ReconfigureOneOverlay+D40j mov ax, [bp+var_50] mov dx, [bp+var_4E] loc_1038_2DAE: ; CODE XREF: _ReconfigureOneOverlay+D48j mov [bp+var_12], ax mov [bp+var_10], dx loc_1038_2DB4: ; CODE XREF: _ReconfigureOneOverlay+C7Fj push ds lea di, [bp+var_8C] lea si, [bp+var_6C] mov ax, ss mov es, ax mov ax, ss mov ds, ax mov cx, 8 repe movsw pop ds mov ax, [bp+var_28] mov dx, [bp+var_26] mov [bp+var_16], ax mov [bp+var_14], dx mov ax, [bp+var_4] mov dx, [bp+var_2] mov [bp+var_30], ax mov [bp+var_2E], dx mov ax, [bp+var_2C] mov dx, [bp+var_2A] mov [bp+var_42], ax mov [bp+var_40], dx mov ax, [bp+var_8] mov dx, [bp+var_6] mov [bp+var_46], ax mov [bp+var_44], dx mov ax, [bp+var_34] mov dx, [bp+var_32] mov [bp+var_38], ax mov [bp+var_36], dx mov ax, [bp+var_4C] mov dx, [bp+var_4A] mov [bp+var_C], ax mov [bp+var_A], dx loc_1038_2E12: ; CODE XREF: _ReconfigureOneOverlay+C13j cmp byte ptr [bp+var_18], 0 jnz loc_1038_2E21 cmp [bp+var_19], 0 jnz loc_1038_2E21 jmp loc_1038_304C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2E21: ; CODE XREF: _ReconfigureOneOverlay+DB8j ; _ReconfigureOneOverlay+DBEj mov al, byte ptr [bp+var_E+1] and al, 78h shr al, 3 mov byte ptr [bp+var_E+1], al cmp byte ptr [bp+var_18], 0 jnz loc_1038_2E35 jmp loc_1038_2EFD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2E35: ; CODE XREF: _ReconfigureOneOverlay+DD2j cmp byte ptr [bp+var_E], 0 jz loc_1038_2E3E jmp loc_1038_2EFD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2E3E: ; CODE XREF: _ReconfigureOneOverlay+DDBj mov bl, al sub bh, bh add bx, bx mov [bp+var_AC], bx push 0 push word ptr [bx-7B44h] mov ax, [bp+var_2C] mov dx, [bp+var_2A] add ax, 1 adc dx, 0 push dx push ax mov ax, [bp+var_28] mov dx, [bp+var_26] sub ax, 1 sbb dx, 0 shr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 xchg ax, dx and ax, 0F000h push dx push ax call __aFldiv push dx push ax call __aFlmul mov al, ah mov ah, dl mov dl, dh add dh, dh sbb dh, dh sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 mov [bp+var_34], ax mov [bp+var_32], dx mov ax, [bp+var_6A] or ax, [bp+var_6C] jz loc_1038_2EC4 mov bx, [bp+var_AC] sub dx, dx mov ax, [bx-7B1Eh] add [bp+var_6C], ax adc [bp+var_6A], dx loc_1038_2EC4: ; CODE XREF: _ReconfigureOneOverlay+E54j mov ax, cxScreenPixels mov bx, [bp+var_AC] sub dx, dx mov cx, [bx-7B1Eh] sub bx, bx add cx, 1 adc bx, dx add [bp+var_64], cx adc [bp+var_62], bx cmp [bp+var_62], dx jl loc_1038_2EFD jg loc_1038_2EEA cmp [bp+var_64], ax jbe loc_1038_2EFD loc_1038_2EEA: ; CODE XREF: _ReconfigureOneOverlay+E85j mov bx, [bp+var_AC] mov ax, [bx-7B1Eh] add ax, cxScreenPixels inc ax mov [bp+var_64], ax mov [bp+var_62], dx loc_1038_2EFD: ; CODE XREF: _ReconfigureOneOverlay+DD4j ; _ReconfigureOneOverlay+DDDj ; _ReconfigureOneOverlay+E83j ; _ReconfigureOneOverlay+E8Aj cmp [bp+var_19], 0 jnz loc_1038_2F06 jmp loc_1038_304C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2F06: ; CODE XREF: _ReconfigureOneOverlay+EA3j cmp BY_INTERP, 0 jz loc_1038_2F5A cmp byte ptr [bp+var_E], 0 jz loc_1038_2F16 jmp loc_1038_2FA3 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2F16: ; CODE XREF: _ReconfigureOneOverlay+EB3j les bx, dword_1947_A2AA cmp word ptr es:[bx+216h], 5 jnz loc_1038_2F3E mov ax, [bp+var_8] mov dx, [bp+var_6] add ax, 1 adc dx, 0 push dx push ax mov ax, [bp+var_4] mov dx, [bp+var_2] sub ax, 1 sbb dx, 0 jmp short loc_1038_2F80 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2F3E: ; CODE XREF: _ReconfigureOneOverlay+EC2j cmp word ptr es:[bx+1D0h], 1E0h jnz loc_1038_2F6C cmp word ptr es:[bx+1D2h], 0 jnz loc_1038_2F6C mov ax, [bp+var_8] mov dx, [bp+var_6] add ax, 1 jmp short loc_1038_2F75 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2F5A: ; CODE XREF: _ReconfigureOneOverlay+EADj cmp byte ptr [bp+var_E], 0 jnz loc_1038_2FA3 les bx, dword_1947_A2AA cmp word ptr es:[bx+216h], 5 jnz loc_1038_2FC8 loc_1038_2F6C: ; CODE XREF: _ReconfigureOneOverlay+EE7j ; _ReconfigureOneOverlay+EEFj ; _ReconfigureOneOverlay+F71j ; _ReconfigureOneOverlay+F79j mov ax, [bp+var_8] mov dx, [bp+var_6] add ax, 2 loc_1038_2F75: ; CODE XREF: _ReconfigureOneOverlay+EFAj adc dx, 0 push dx push ax loc_1038_2F7A: ; CODE XREF: _ReconfigureOneOverlay+F81j mov ax, [bp+var_4] mov dx, [bp+var_2] loc_1038_2F80: ; CODE XREF: _ReconfigureOneOverlay+EDEj shr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 xchg ax, dx and ax, 0F000h push dx push ax call __aFldiv mov [bp+var_4C], ax mov [bp+var_4A], dx loc_1038_2FA3: ; CODE XREF: _ReconfigureOneOverlay+EB5j ; _ReconfigureOneOverlay+F00j cmp cyScreenPixels, 190h jnz loc_1038_2FAF or byte ptr [bp+var_E+1], 10h loc_1038_2FAF: ; CODE XREF: _ReconfigureOneOverlay+F4Bj cmp byte ptr [bp+var_E+1], 2 jnz loc_1038_2FE2 cmp byte ptr [bp+var_E], 0 jnz loc_1038_3020 push 0 push 0A28h push [bp+var_4A] push [bp+var_4C] jmp short loc_1038_2FFB ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2FC8: ; CODE XREF: _ReconfigureOneOverlay+F0Cj cmp word ptr es:[bx+1D0h], 1E0h jnz loc_1038_2F6C cmp word ptr es:[bx+1D2h], 0 jnz loc_1038_2F6C push [bp+var_6] push [bp+var_8] jmp short loc_1038_2F7A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_2FE2: ; CODE XREF: _ReconfigureOneOverlay+F55j cmp byte ptr [bp+var_E], 0 jnz loc_1038_3020 push [bp+var_4A] push [bp+var_4C] mov bl, byte ptr [bp+var_E+1] sub bh, bh add bx, bx push 0 push word ptr [bx-7B44h] loc_1038_2FFB: ; CODE XREF: _ReconfigureOneOverlay+F68j call __aFlmul mov al, ah mov ah, dl mov dl, dh add dh, dh sbb dh, dh sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 mov [bp+var_4C], ax mov [bp+var_4A], dx loc_1038_3020: ; CODE XREF: _ReconfigureOneOverlay+F5Bj ; _ReconfigureOneOverlay+F88j cmp byte ptr [bp+var_E], 0 jnz loc_1038_3030 add [bp+var_60], 1 adc [bp+var_5E], 0 jmp short loc_1038_304C ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3030: ; CODE XREF: _ReconfigureOneOverlay+FC6j mov bx, [bp+var_8E] mov es, word ptr dword_1947_A2AA+2 add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+49Eh], 0 jz loc_1038_304C add [bp+var_80], 1 adc [bp+var_7E], 0 loc_1038_304C: ; CODE XREF: _ReconfigureOneOverlay+DC0j ; _ReconfigureOneOverlay+EA5j ; _ReconfigureOneOverlay+FD0j ; _ReconfigureOneOverlay+FE4j mov bx, [bp+var_90] mov es, word ptr dword_1947_A2AA+2 add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_306A cmp word ptr es:[bx+498h], 434Dh jz loc_1038_30B8 loc_1038_306A: ; CODE XREF: _ReconfigureOneOverlay+1001j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D48h jnz loc_1038_3084 cmp word ptr es:[bx+498h], 4E43h jz loc_1038_30B8 loc_1038_3084: ; CODE XREF: _ReconfigureOneOverlay+101Bj mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D44h jnz loc_1038_309E cmp word ptr es:[bx+498h], 4E43h jz loc_1038_30B8 loc_1038_309E: ; CODE XREF: _ReconfigureOneOverlay+1035j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_30D0 cmp word ptr es:[bx+498h], 4147h jnz loc_1038_30D0 loc_1038_30B8: ; CODE XREF: _ReconfigureOneOverlay+100Aj ; _ReconfigureOneOverlay+1024j ; _ReconfigureOneOverlay+103Ej mov bx, word ptr dword_1947_A2AA mov ax, [bp+var_4C] mov es:[bx+515h], ax mov ax, [bp+var_C] les bx, dword_1947_A2AA mov es:[bx+634h], ax loc_1038_30D0: ; CODE XREF: _ReconfigureOneOverlay+104Fj ; _ReconfigureOneOverlay+1058j cmp byte ptr [bp+var_E], 0 jnz loc_1038_3112 mov ax, word_1947_CB1A mov dx, word_1947_CB1C mov [bp+var_8], ax mov [bp+var_6], dx mov si, word_1947_CB1E mov di, [bp+var_E] mov bx, [bp+var_8E] mov es, word ptr dword_1947_A2AA+2 add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+49Eh], 0 jz loc_1038_314D push 1 call _GetStartAddr16 add sp, 2 mov [bp+var_2C], ax mov [bp+var_2A], dx mov di, word_1947_CB36 jmp short loc_1038_314D ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3112: ; CODE XREF: _ReconfigureOneOverlay+1076j mov ax, word_1947_CB40 mov [bp+var_8], ax mov [bp+var_6], 0 mov si, word_1947_CB36 mov di, [bp+var_E] mov bx, [bp+var_8E] mov es, word ptr dword_1947_A2AA+2 add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+49Eh], 0 jz loc_1038_314D push 0 call _GetStartAddr16 add sp, 2 and ax, 0FFF8h mov [bp+var_2C], ax mov [bp+var_2A], dx mov di, word_1947_CB1E loc_1038_314D: ; CODE XREF: _ReconfigureOneOverlay+109Ej ; _ReconfigureOneOverlay+10B2j ; _ReconfigureOneOverlay+10D8j cmp byte ptr [bp+var_18+1], 0 jnz loc_1038_3156 jmp loc_1038_33F0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3156: ; CODE XREF: _ReconfigureOneOverlay+10F3j push [bp+var_6] push [bp+var_8] push [bp+var_22] push [bp+var_24] call __aFuldiv mov [bp-1Ah], ax mov [bp+var_18], dx push [bp+var_6] push [bp+var_8] push [bp+var_22] push [bp+var_24] call __aFulrem mov [bp+var_4], ax mov [bp+var_2], dx cmp si, 10h jnz loc_1038_3192 sar [bp+var_2], 1 rcr [bp+var_4], 1 jmp short loc_1038_31A5 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3192: ; CODE XREF: _ReconfigureOneOverlay+1129j cmp si, 18h jnz loc_1038_31A5 push 0 push 3 lea ax, [bp+var_4] push ss push ax call __aFFaldiv loc_1038_31A5: ; CODE XREF: _ReconfigureOneOverlay+1131j ; _ReconfigureOneOverlay+1137j mov ax, [bp-1Ah] mov dx, [bp+var_18] sub [bp+var_68], ax sbb [bp+var_66], dx mov cx, [bp+var_4] mov bx, [bp+var_2] sub [bp+var_64], cx sbb [bp+var_62], bx sub [bp+var_60], ax sbb [bp+var_5E], dx sub [bp+var_6C], cx sbb [bp+var_6A], bx cmp [bp+var_6A], 0 jge loc_1038_3231 mov ax, [bp+var_6C] mov dx, [bp+var_6A] neg ax adc dx, 0 neg dx mov [bp+var_4], ax mov [bp+var_2], dx sub ax, ax mov [bp+var_6A], ax mov [bp+var_6C], ax push [bp+var_32] push [bp+var_34] push dx push [bp+var_4] call __aFlmul mov al, ah mov ah, dl mov dl, dh add dh, dh sbb dh, dh sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 mov [bp+var_4], ax mov [bp+var_2], dx sub [bp+var_28], ax sbb [bp+var_26], dx push 0 push [bp+var_58] push dx push ax call __aFlmul add [bp+var_50], ax adc [bp+var_4E], dx loc_1038_3231: ; CODE XREF: _ReconfigureOneOverlay+116Fj cmp [bp+var_66], 0 jl loc_1038_323A jmp loc_1038_333A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_323A: ; CODE XREF: _ReconfigureOneOverlay+11D7j mov ax, [bp+var_68] mov dx, [bp+var_66] neg ax adc dx, 0 neg dx mov [bp+var_4], ax mov [bp+var_2], dx sub ax, ax mov [bp+var_66], ax mov [bp+var_68], ax push [bp+var_4A] push [bp+var_4C] push dx push [bp+var_4] call __aFlmul mov al, ah mov ah, dl mov dl, dh add dh, dh sbb dh, dh sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 mov [bp+var_4], ax mov [bp+var_2], dx mov bx, [bp+var_90] mov es, word ptr dword_1947_A2AA+2 add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_32A2 cmp word ptr es:[bx+498h], 434Dh jz loc_1038_32F0 loc_1038_32A2: ; CODE XREF: _ReconfigureOneOverlay+1239j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D48h jnz loc_1038_32BC cmp word ptr es:[bx+498h], 4E43h jz loc_1038_32F0 loc_1038_32BC: ; CODE XREF: _ReconfigureOneOverlay+1253j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D44h jnz loc_1038_32D6 cmp word ptr es:[bx+498h], 4E43h jz loc_1038_32F0 loc_1038_32D6: ; CODE XREF: _ReconfigureOneOverlay+126Dj mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_3304 cmp word ptr es:[bx+498h], 4147h jnz loc_1038_3304 loc_1038_32F0: ; CODE XREF: _ReconfigureOneOverlay+1242j ; _ReconfigureOneOverlay+125Cj ; _ReconfigureOneOverlay+1276j mov ax, [bp+var_4] mov dx, [bp+var_2] sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 mov [bp+var_4], ax mov [bp+var_2], dx loc_1038_3304: ; CODE XREF: _ReconfigureOneOverlay+1287j ; _ReconfigureOneOverlay+1290j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA test byte ptr es:[bx+48Eh], 40h jz loc_1038_3328 push dx push ax push 0 push [bp+var_54] call __aFlmul sub [bp+var_50], ax sbb [bp+var_4E], dx jmp short loc_1038_333A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3328: ; CODE XREF: _ReconfigureOneOverlay+12B4j push dx push ax push 0 push [bp+var_54] call __aFlmul add [bp+var_50], ax adc [bp+var_4E], dx loc_1038_333A: ; CODE XREF: _ReconfigureOneOverlay+11D9j ; _ReconfigureOneOverlay+12C8j mov ax, selVGA mov word ptr [bp+var_5C], 3CEh mov word ptr [bp+var_5C+2], ax mov ax, [bp+arg_6] or ax, [bp+arg_4] jnz loc_1038_3356 les bx, [bp+var_5C] mov byte ptr es:[bx], 0B0h ; '' jmp short loc_1038_3361 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3356: ; CODE XREF: _ReconfigureOneOverlay+12EDj add word ptr [bp+var_5C], 6 les bx, [bp+var_5C] mov byte ptr es:[bx], 0A8h ; '' loc_1038_3361: ; CODE XREF: _ReconfigureOneOverlay+12F6j inc word ptr [bp+var_5C] les bx, [bp+var_5C] mov al, es:[bx] mov byte ptr [bp+var_2+1], al cmp [bp+var_62], 0 jl loc_1038_33B6 jg loc_1038_337B cmp [bp+var_64], 0 jz loc_1038_33B6 loc_1038_337B: ; CODE XREF: _ReconfigureOneOverlay+1315j cmp [bp+var_5E], 0 jl loc_1038_33B6 jg loc_1038_3389 cmp [bp+var_60], 0 jz loc_1038_33B6 loc_1038_3389: ; CODE XREF: _ReconfigureOneOverlay+1323j mov ax, [bp+var_48] sub dx, dx cmp dx, [bp+var_66] jl loc_1038_33B6 jg loc_1038_339A cmp ax, [bp+var_68] jbe loc_1038_33B6 loc_1038_339A: ; CODE XREF: _ReconfigureOneOverlay+1335j test byte ptr [bp+var_2+1], 1 jnz loc_1038_33CD cmp byte ptr TOFULLDOS, 0 jnz loc_1038_33CD or byte ptr [bp+var_2+1], 1 mov al, byte ptr [bp+var_2+1] or al, 1 mov es:[bx], al jmp short loc_1038_33CD ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_33B6: ; CODE XREF: _ReconfigureOneOverlay+1313j ; _ReconfigureOneOverlay+131Bj ; _ReconfigureOneOverlay+1321j ; _ReconfigureOneOverlay+1329j ; _ReconfigureOneOverlay+1333j ; _ReconfigureOneOverlay+133Aj test byte ptr [bp+var_2+1], 1 jz loc_1038_33C9 and byte ptr [bp+var_2+1], 0FEh mov al, byte ptr [bp+var_2+1] les bx, [bp+var_5C] mov es:[bx], al loc_1038_33C9: ; CODE XREF: _ReconfigureOneOverlay+135Cj mov [bp+var_3A], 1 loc_1038_33CD: ; CODE XREF: _ReconfigureOneOverlay+1340j ; _ReconfigureOneOverlay+1347j ; _ReconfigureOneOverlay+1355j mov ax, [bp+arg_6] or ax, [bp+arg_4] jz loc_1038_33E4 mov al, byte ptr [bp+var_2+1] les bx, dword_1947_A2AA mov es:[bx+46Ch], al jmp short loc_1038_33F0 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_33E4: ; CODE XREF: _ReconfigureOneOverlay+1375j mov al, byte ptr [bp+var_2+1] les bx, dword_1947_A2AA mov es:[bx+450h], al loc_1038_33F0: ; CODE XREF: _ReconfigureOneOverlay+10F5j ; _ReconfigureOneOverlay+1383j les bx, dword_1947_A2AA mov si, [bp+var_8E] cmp word ptr es:[bx+si+49Eh], 0 jnz loc_1038_3403 jmp loc_1038_37BE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3403: ; CODE XREF: _ReconfigureOneOverlay+13A0j test G2PANNING_FLAG, 2 jnz loc_1038_340D jmp loc_1038_37BE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_340D: ; CODE XREF: _ReconfigureOneOverlay+13AAj push [bp+var_6] push [bp+var_8] push [bp+var_2A] push [bp+var_2C] call __aFuldiv mov [bp-1Ah], ax mov [bp+var_18], dx push [bp+var_6] push [bp+var_8] push [bp+var_2A] push [bp+var_2C] call __aFulrem mov [bp+var_4], ax mov [bp+var_2], dx cmp di, 10h jnz loc_1038_3448 sar [bp+var_2], 1 rcr [bp+var_4], 1 jmp short loc_1038_345B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3448: ; CODE XREF: _ReconfigureOneOverlay+13E0j cmp di, 18h jnz loc_1038_345B push 0 push 3 lea ax, [bp+var_4] push ss push ax call __aFFaldiv loc_1038_345B: ; CODE XREF: _ReconfigureOneOverlay+13E8j ; _ReconfigureOneOverlay+13EDj mov ax, [bp+var_4] mov dx, [bp+var_2] sub [bp+var_8C], ax sbb [bp+var_8A], dx mov cx, [bp-1Ah] mov bx, [bp+var_18] sub [bp+var_88], cx sbb [bp+var_86], bx sub [bp+var_84], ax sbb [bp+var_82], dx sub [bp+var_80], cx sbb [bp+var_7E], bx cmp [bp+var_1B], 0 jz loc_1038_34D2 mov ax, [bp+var_64] mov dx, [bp+var_62] sub ax, [bp+var_6C] sbb dx, [bp+var_6A] add ax, ax adc dx, dx sub ax, 1 sbb dx, 0 push dx push ax mov ax, [bp+var_16] mov dx, [bp+var_14] sub ax, 1 sbb dx, 0 shr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 xchg ax, dx and ax, 0F000h push dx push ax call __aFldiv mov [bp+var_38], ax mov [bp+var_36], dx loc_1038_34D2: ; CODE XREF: _ReconfigureOneOverlay+142Bj cmp [bp+var_1C], 0 jz loc_1038_3513 mov ax, [bp+var_60] mov dx, [bp+var_5E] sub ax, [bp+var_68] sbb dx, [bp+var_66] add ax, ax adc dx, dx push dx push ax mov ax, [bp+var_30] mov dx, [bp+var_2E] shr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 rcr ax, 1 rcr dx, 1 xchg ax, dx and ax, 0F000h push dx push ax call __aFldiv mov [bp+var_C], ax mov [bp+var_A], dx loc_1038_3513: ; CODE XREF: _ReconfigureOneOverlay+1478j cmp [bp+var_8A], 0 jl loc_1038_351D jmp loc_1038_35D8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_351D: ; CODE XREF: _ReconfigureOneOverlay+14BAj mov ax, [bp+var_8C] mov dx, [bp+var_8A] neg ax adc dx, 0 neg dx mov [bp+var_4], ax mov [bp+var_2], dx sub ax, ax mov [bp+var_8A], ax mov [bp+var_8C], ax push [bp+var_36] push [bp+var_38] push dx push [bp+var_4] call __aFlmul mov al, ah mov ah, dl mov dl, dh add dh, dh sbb dh, dh sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 mov [bp+var_4], ax mov [bp+var_2], dx sub [bp+var_16], ax sbb [bp+var_14], dx les bx, dword_1947_A2AA mov si, [bp+var_90] test byte ptr es:[bx+si+48Eh], 20h jnz loc_1038_35AE cmp [bp+var_1B], 0 jz loc_1038_35A0 push dx push ax push 0 push [bp+var_58] call __aFlmul add ax, ax adc dx, dx loc_1038_3597: ; CODE XREF: _ReconfigureOneOverlay+154Ej add [bp+var_12], ax adc [bp+var_10], dx jmp short loc_1038_35D8 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_35A0: ; CODE XREF: _ReconfigureOneOverlay+1527j push dx push ax push 0 push [bp+var_58] call __aFlmul jmp short loc_1038_3597 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_35AE: ; CODE XREF: _ReconfigureOneOverlay+1521j cmp [bp+var_1B], 0 jz loc_1038_35C6 push dx push ax push 0 push [bp+var_58] call __aFlmul add ax, ax adc dx, dx jmp short loc_1038_35D2 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_35C6: ; CODE XREF: _ReconfigureOneOverlay+1554j push dx push ax push 0 push [bp+var_58] call __aFlmul loc_1038_35D2: ; CODE XREF: _ReconfigureOneOverlay+1566j sub [bp+var_12], ax sbb [bp+var_10], dx loc_1038_35D8: ; CODE XREF: _ReconfigureOneOverlay+14BCj ; _ReconfigureOneOverlay+153Fj cmp [bp+var_86], 0 jl loc_1038_35E2 jmp loc_1038_3716 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_35E2: ; CODE XREF: _ReconfigureOneOverlay+157Fj mov ax, [bp+var_88] mov dx, [bp+var_86] neg ax adc dx, 0 neg dx mov [bp+var_4], ax mov [bp+var_2], dx sub ax, ax mov [bp+var_86], ax mov [bp+var_88], ax push [bp+var_A] push [bp+var_C] push dx push [bp+var_4] call __aFlmul mov al, ah mov ah, dl mov dl, dh add dh, dh sbb dh, dh sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 mov [bp+var_4], ax mov [bp+var_2], dx mov bx, [bp+var_90] mov es, word ptr dword_1947_A2AA+2 add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_364E cmp word ptr es:[bx+498h], 434Dh jz loc_1038_369C loc_1038_364E: ; CODE XREF: _ReconfigureOneOverlay+15E5j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D48h jnz loc_1038_3668 cmp word ptr es:[bx+498h], 4E43h jz loc_1038_369C loc_1038_3668: ; CODE XREF: _ReconfigureOneOverlay+15FFj mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D44h jnz loc_1038_3682 cmp word ptr es:[bx+498h], 4E43h jz loc_1038_369C loc_1038_3682: ; CODE XREF: _ReconfigureOneOverlay+1619j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_36B0 cmp word ptr es:[bx+498h], 4147h jnz loc_1038_36B0 loc_1038_369C: ; CODE XREF: _ReconfigureOneOverlay+15EEj ; _ReconfigureOneOverlay+1608j ; _ReconfigureOneOverlay+1622j mov ax, [bp+var_4] mov dx, [bp+var_2] sar dx, 1 rcr ax, 1 sar dx, 1 rcr ax, 1 mov [bp+var_4], ax mov [bp+var_2], dx loc_1038_36B0: ; CODE XREF: _ReconfigureOneOverlay+1633j ; _ReconfigureOneOverlay+163Cj mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA test byte ptr es:[bx+48Eh], 40h jnz loc_1038_36EC cmp [bp+var_1C], 0 jz loc_1038_36DE push dx push ax push 0 push [bp+var_54] call __aFlmul add ax, ax adc dx, dx loc_1038_36D6: ; CODE XREF: _ReconfigureOneOverlay+168Cj add [bp+var_12], ax adc [bp+var_10], dx jmp short loc_1038_3716 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_36DE: ; CODE XREF: _ReconfigureOneOverlay+1666j push dx push ax push 0 push [bp+var_54] call __aFlmul jmp short loc_1038_36D6 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_36EC: ; CODE XREF: _ReconfigureOneOverlay+1660j cmp [bp+var_1C], 0 jz loc_1038_3704 push dx push ax push 0 push [bp+var_54] call __aFlmul add ax, ax adc dx, dx jmp short loc_1038_3710 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3704: ; CODE XREF: _ReconfigureOneOverlay+1692j push dx push ax push 0 push [bp+var_54] call __aFlmul loc_1038_3710: ; CODE XREF: _ReconfigureOneOverlay+16A4j sub [bp+var_12], ax sbb [bp+var_10], dx loc_1038_3716: ; CODE XREF: _ReconfigureOneOverlay+1581j ; _ReconfigureOneOverlay+167Ej mov ax, selVGA mov word ptr [bp+var_5C], 3CEh mov word ptr [bp+var_5C+2], ax les bx, _lpMEMIO_GRIDX mov word ptr es:[bx], 2609h mov ax, [bp+var_1E] or ax, [bp+var_20] jnz loc_1038_373C les bx, [bp+var_5C] mov byte ptr es:[bx], 0B0h ; '' jmp short loc_1038_3747 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_373C: ; CODE XREF: _ReconfigureOneOverlay+16D2j add word ptr [bp+var_5C], 6 les bx, [bp+var_5C] mov byte ptr es:[bx], 0A8h ; '' loc_1038_3747: ; CODE XREF: _ReconfigureOneOverlay+16DBj inc word ptr [bp+var_5C] les bx, [bp+var_5C] mov al, es:[bx] mov byte ptr [bp+var_2+1], al cmp [bp+var_82], 0 jl loc_1038_3784 jg loc_1038_3763 cmp [bp+var_84], 0 jz loc_1038_3784 loc_1038_3763: ; CODE XREF: _ReconfigureOneOverlay+16FCj cmp [bp+var_7E], 0 jl loc_1038_3784 jg loc_1038_3771 cmp [bp+var_80], 0 jz loc_1038_3784 loc_1038_3771: ; CODE XREF: _ReconfigureOneOverlay+170Bj test byte ptr [bp+var_2+1], 1 jnz loc_1038_379B or byte ptr [bp+var_2+1], 1 mov al, byte ptr [bp+var_2+1] mov es:[bx], al jmp short loc_1038_379B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3784: ; CODE XREF: _ReconfigureOneOverlay+16FAj ; _ReconfigureOneOverlay+1703j ; _ReconfigureOneOverlay+1709j ; _ReconfigureOneOverlay+1711j test byte ptr [bp+var_2+1], 1 jz loc_1038_3797 and byte ptr [bp+var_2+1], 0FEh mov al, byte ptr [bp+var_2+1] les bx, [bp+var_5C] mov es:[bx], al loc_1038_3797: ; CODE XREF: _ReconfigureOneOverlay+172Aj mov [bp+var_39], 1 loc_1038_379B: ; CODE XREF: _ReconfigureOneOverlay+1717j ; _ReconfigureOneOverlay+1723j mov ax, [bp+arg_6] or ax, [bp+arg_4] jz loc_1038_37B2 mov al, byte ptr [bp+var_2+1] les bx, dword_1947_A2AA mov es:[bx+450h], al jmp short loc_1038_37BE ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_37B2: ; CODE XREF: _ReconfigureOneOverlay+1743j mov al, byte ptr [bp+var_2+1] les bx, dword_1947_A2AA mov es:[bx+46Ch], al loc_1038_37BE: ; CODE XREF: _ReconfigureOneOverlay+13A2j ; _ReconfigureOneOverlay+13ACj ; _ReconfigureOneOverlay+1751j mov bx, [bp+var_90] mov es, word ptr dword_1947_A2AA+2 add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 5559h jnz loc_1038_37DC cmp word ptr es:[bx+498h], 3259h jz loc_1038_3800 loc_1038_37DC: ; CODE XREF: _ReconfigureOneOverlay+1773j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4649h jnz loc_1038_37F6 cmp word ptr es:[bx+498h], 3930h jz loc_1038_3800 loc_1038_37F6: ; CODE XREF: _ReconfigureOneOverlay+178Dj and byte ptr [bp+var_50], 0FEh and byte ptr [bp+var_12], 0FEh jmp short loc_1038_3828 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3800: ; CODE XREF: _ReconfigureOneOverlay+177Cj ; _ReconfigureOneOverlay+1796j and byte ptr [bp+var_50], 0FCh and byte ptr [bp+var_12], 0FCh mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA test byte ptr es:[bx+48Eh], 20h jz loc_1038_3828 sub [bp+var_50], 2 sbb [bp+var_4E], 0 sub [bp+var_12], 2 sbb [bp+var_10], 0 loc_1038_3828: ; CODE XREF: _ReconfigureOneOverlay+17A0j ; _ReconfigureOneOverlay+17B8j cmp [bp+var_3A], 0 jz loc_1038_3831 jmp loc_1038_393A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3831: ; CODE XREF: _ReconfigureOneOverlay+17CEj cmp [bp+var_56], 0 jz loc_1038_3862 mov ax, [bp+arg_6] or ax, [bp+arg_4] jz loc_1038_3862 cmp bWinOSType, 2 jz loc_1038_3862 mov ax, [bp+var_68] mov dx, [bp+var_66] sar dx, 1 rcr ax, 1 mov [bp+var_4], ax mov [bp+var_2], dx sub [bp+var_68], ax sbb [bp+var_66], dx sub [bp+var_60], ax sbb [bp+var_5E], dx loc_1038_3862: ; CODE XREF: _ReconfigureOneOverlay+17D7j ; _ReconfigureOneOverlay+17DFj ; _ReconfigureOneOverlay+17E6j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_387C cmp word ptr es:[bx+498h], 434Dh jz loc_1038_38CD loc_1038_387C: ; CODE XREF: _ReconfigureOneOverlay+1813j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D48h jnz loc_1038_3896 cmp word ptr es:[bx+498h], 4E43h jz loc_1038_38CD loc_1038_3896: ; CODE XREF: _ReconfigureOneOverlay+182Dj mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D44h jnz loc_1038_38B0 cmp word ptr es:[bx+498h], 4E43h jz loc_1038_38CD loc_1038_38B0: ; CODE XREF: _ReconfigureOneOverlay+1847j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jz loc_1038_38C4 jmp loc_1038_394B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_38C4: ; CODE XREF: _ReconfigureOneOverlay+1861j cmp word ptr es:[bx+498h], 4147h jnz loc_1038_394B loc_1038_38CD: ; CODE XREF: _ReconfigureOneOverlay+181Cj ; _ReconfigureOneOverlay+1836j ; _ReconfigureOneOverlay+1850j mov ax, [bp+var_50] mov dx, [bp+var_4E] mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA sub ax, es:[bx+444h] sbb dx, es:[bx+446h] mov bx, word ptr dword_1947_A2AA mov es:[bx+529h], ax mov es:[bx+52Bh], dx mov ax, [bp+var_12] mov dx, [bp+var_10] les bx, dword_1947_A2AA mov si, [bp+var_90] sub ax, es:[bx+si+444h] sbb dx, es:[bx+si+446h] mov es:[bx+5E0h], ax mov es:[bx+5E2h], dx les bx, dword_1947_A2AA cmp word ptr es:[bx+513h], 2 jnz loc_1038_393E mov ax, es:[bx+515h] shr ax, 1 mov [bp+var_4C], ax mov [bp+var_4A], 0 sar [bp+var_A], 1 rcr [bp+var_C], 1 jmp short loc_1038_394B ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_393A: ; CODE XREF: _ReconfigureOneOverlay+17D0j jmp loc_1038_3A5A ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_393E: ; CODE XREF: _ReconfigureOneOverlay+18C1j mov ax, es:[bx+515h] mov [bp+var_4C], ax mov [bp+var_4A], 0 loc_1038_394B: ; CODE XREF: _ReconfigureOneOverlay+1863j ; _ReconfigureOneOverlay+186Dj ; _ReconfigureOneOverlay+18D8j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_3965 cmp word ptr es:[bx+498h], 434Dh jz loc_1038_39B6 loc_1038_3965: ; CODE XREF: _ReconfigureOneOverlay+18FCj mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D48h jnz loc_1038_397F cmp word ptr es:[bx+498h], 4E43h jz loc_1038_39B6 loc_1038_397F: ; CODE XREF: _ReconfigureOneOverlay+1916j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D44h jnz loc_1038_3999 cmp word ptr es:[bx+498h], 4E43h jz loc_1038_39B6 loc_1038_3999: ; CODE XREF: _ReconfigureOneOverlay+1930j mov si, [bp+var_52] mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_39BF cmp word ptr es:[bx+498h], 4147h jnz loc_1038_39BF loc_1038_39B6: ; CODE XREF: _ReconfigureOneOverlay+1905j ; _ReconfigureOneOverlay+191Fj ; _ReconfigureOneOverlay+1939j mov bx, word ptr dword_1947_A2AA mov si, es:[bx+591h] loc_1038_39BF: ; CODE XREF: _ReconfigureOneOverlay+194Dj ; _ReconfigureOneOverlay+1956j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA test byte ptr es:[bx+48Eh], 2 jz loc_1038_39D7 add [bp+var_28], 3 adc [bp+var_26], 0 loc_1038_39D7: ; CODE XREF: _ReconfigureOneOverlay+196Fj push 0 push [bp+var_7C] push [bp+var_3C] push [bp+var_3E] push [bp+var_26] push [bp+var_28] mov bx, word ptr dword_1947_A2AA mov di, [bp+var_8E] push 0 push word ptr es:[bx+di+434h] sub ax, ax mov [bp+var_9E], si mov [bp+var_9C], ax push ax push si push [bp+var_4E] push [bp+var_50] add bx, [bp+var_90] push word ptr es:[bx+498h] push word ptr es:[bx+496h] push [bp+arg_6] push [bp+arg_4] push es push word ptr dword_1947_A2AA call _SetSourceRect_MMIO16 add sp, 24h push 0 push [bp+var_60] push 0 push [bp+var_64] push 0 push [bp+var_68] push 0 push [bp+var_6C] push [bp+arg_6] push [bp+arg_4] call _SetDestRect_MMIO16 add sp, 14h push [bp+var_4C] push [bp+var_34] push [bp+arg_6] push [bp+arg_4] call _SetScaleFactors_MMIO16 add sp, 8 loc_1038_3A5A: ; CODE XREF: _ReconfigureOneOverlay+18DCj mov bx, [bp+var_8E] mov es, word ptr dword_1947_A2AA+2 add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+49Eh], 0 jnz loc_1038_3A71 jmp loc_1038_3BFF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3A71: ; CODE XREF: _ReconfigureOneOverlay+1A0Ej cmp [bp+var_39], 0 jz loc_1038_3A7A jmp loc_1038_3BFF ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3A7A: ; CODE XREF: _ReconfigureOneOverlay+1A17j cmp [bp+var_56], 0 jz loc_1038_3AAF mov ax, [bp+var_1E] or ax, [bp+var_20] jz loc_1038_3AAF cmp bWinOSType, 2 jz loc_1038_3AAF mov ax, [bp+var_88] mov dx, [bp+var_86] sar dx, 1 rcr ax, 1 mov [bp+var_4], ax mov [bp+var_2], dx sub [bp+var_88], ax sbb [bp+var_86], dx sub [bp+var_80], ax sbb [bp+var_7E], dx loc_1038_3AAF: ; CODE XREF: _ReconfigureOneOverlay+1A20j ; _ReconfigureOneOverlay+1A28j ; _ReconfigureOneOverlay+1A2Fj cmp [bp+var_1B], 0 jz loc_1038_3ABD shl [bp+var_8C], 1 shl [bp+var_84], 1 loc_1038_3ABD: ; CODE XREF: _ReconfigureOneOverlay+1A55j cmp [bp+var_1C], 0 jz loc_1038_3ACA shl [bp+var_88], 1 shl [bp+var_80], 1 loc_1038_3ACA: ; CODE XREF: _ReconfigureOneOverlay+1A63j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_3AE4 cmp word ptr es:[bx+498h], 434Dh jz loc_1038_3B32 loc_1038_3AE4: ; CODE XREF: _ReconfigureOneOverlay+1A7Bj mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D48h jnz loc_1038_3AFE cmp word ptr es:[bx+498h], 4E43h jz loc_1038_3B32 loc_1038_3AFE: ; CODE XREF: _ReconfigureOneOverlay+1A95j mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D44h jnz loc_1038_3B18 cmp word ptr es:[bx+498h], 4E43h jz loc_1038_3B32 loc_1038_3B18: ; CODE XREF: _ReconfigureOneOverlay+1AAFj mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA cmp word ptr es:[bx+496h], 4D4Eh jnz loc_1038_3B75 cmp word ptr es:[bx+498h], 4147h jnz loc_1038_3B75 loc_1038_3B32: ; CODE XREF: _ReconfigureOneOverlay+1A84j ; _ReconfigureOneOverlay+1A9Ej ; _ReconfigureOneOverlay+1AB8j mov bx, word ptr dword_1947_A2AA cmp byte ptr es:[bx+59Dh], 0 jz loc_1038_3B75 push 0 push 190h push 0 push 1E0h push [bp+var_A] push [bp+var_C] call __aFlmul push dx push ax call __aFldiv mov [bp+var_C], ax mov [bp+var_A], dx or dx, dx jl loc_1038_3B75 jg loc_1038_3B6B cmp ax, 1000h jbe loc_1038_3B75 loc_1038_3B6B: ; CODE XREF: _ReconfigureOneOverlay+1B06j mov [bp+var_C], 1000h mov [bp+var_A], 0 loc_1038_3B75: ; CODE XREF: _ReconfigureOneOverlay+1AC9j ; _ReconfigureOneOverlay+1AD2j ; _ReconfigureOneOverlay+1ADEj ; _ReconfigureOneOverlay+1B04j ; _ReconfigureOneOverlay+1B0Bj push 0 push [bp+var_7C] push [bp+var_3C] push [bp+var_3E] push [bp+var_14] push [bp+var_16] mov bx, [bp+var_8E] mov es, word ptr dword_1947_A2AA+2 add bx, word ptr dword_1947_A2AA push 0 push word ptr es:[bx+434h] push [bp+var_9C] push [bp+var_9E] push [bp+var_10] push [bp+var_12] mov bx, [bp+var_90] add bx, word ptr dword_1947_A2AA push word ptr es:[bx+498h] push word ptr es:[bx+496h] push [bp+var_1E] push [bp+var_20] push es push word ptr dword_1947_A2AA call _SetSourceRect_MMIO16 add sp, 24h push 0 push [bp+var_80] push 0 push [bp+var_84] push 0 push [bp+var_88] push 0 push [bp+var_8C] push [bp+var_1E] push [bp+var_20] call _SetDestRect_MMIO16 add sp, 14h push [bp+var_C] push [bp+var_38] push [bp+var_1E] push [bp+var_20] call _SetScaleFactors_MMIO16 add sp, 8 loc_1038_3BFF: ; CODE XREF: _ReconfigureOneOverlay+340j ; _ReconfigureOneOverlay+34Bj ; _ReconfigureOneOverlay+1A10j ; _ReconfigureOneOverlay+1A19j pop si pop di leave retn _ReconfigureOneOverlay endp ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 align 2 ; 栩栩栩栩栩栩栩 S U B R O U T I N E 栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩栩 ; Attributes: bp-based frame _ReconfigureOverlay proc far ; CODE XREF: _CheckOverlay+AFP ; _CheckOverlay+155P _SetupG2+BDP ; _SetupG2+170P var_6 = word ptr -6 var_4 = word ptr -4 var_2 = byte ptr -2 arg_0 = dword ptr 6 arg_4 = word ptr 0Ah arg_6 = word ptr 0Ch mov ax, ds nop inc bp push bp mov bp, sp push ds mov ds, ax sub sp, 4 les bx, [bp+arg_0] mov ax, es:[bx+3B6h] mov dx, es:[bx+3B8h] mov [bp+var_6], ax mov [bp+var_4], dx mov ax, [bp+var_6] mov dx, [bp+var_4] add ax, 1 adc dx, 0 mov es:[bx+3B6h], ax mov es:[bx+3B8h], dx mov ax, [bp+var_4] or ax, [bp+var_6] jz loc_1038_3C54 les bx, [bp+arg_0] sub word ptr es:[bx+3B6h], 1 sbb word ptr es:[bx+3B8h], 0 jmp short loc_1038_3C72 ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 loc_1038_3C54: ; CODE XREF: _ReconfigureOverlay+3Cj push [bp+arg_6] push [bp+arg_4] push word ptr [bp+arg_0+2] push word ptr [bp+arg_0] call _ReconfigureOneOverlay les bx, [bp+arg_0] sub word ptr es:[bx+3B6h], 1 sbb word ptr es:[bx+3B8h], 0 loc_1038_3C72: ; CODE XREF: _ReconfigureOverlay+4Dj lea sp, [bp+var_2] pop ds pop bp dec bp retf _ReconfigureOverlay endp ; sp = -0Ch ; 陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳陳 db 90h ; cseg03 ends