Function at 0x66410d20
Capabilities:
Check os version
Get disk information
Get process heap flags
Set current directory
Write file on windows

Disassembly:
lea ecx, [esp + 4]
and esp, 0xfffffff0
push dword [ecx - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
push ecx
sub esp, 0x4d8
mov ebx, dword [ecx]
test byte [0x664447b0], 8
jne 0x66410d98
mov esi, dword [ebx + 0xb0]
mov edx, esi
mov dword [ebp - 0x48c], esi
shr edx, 8
cmp dl, 0x2e
jbe case.default.0x66410d8d
cmp dl, 0x59
je case.default.0x66410d8d
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0
mov esi, dword [ebx + 0xb0]
mov edx, esi
mov dword [ebp - 0x48c], esi
shr edx, 8
mov eax, dword [ebx + 0xc0]
movzx edx, dl
and eax, 0xfffffffe
mov dword [ebx + 0xc0], eax
jmp dword [edx*4 + 0x66449a84]
mov eax, dword [ebx + 0xc0]
mov dword [esp + 0x30], eax
movzx eax, word [ebx + 0x94]
mov dword [esp + 0x2c], eax
movzx eax, word [ebx + 0x98]
mov dword [esp + 0x28], eax
movzx eax, word [ebx + 0x9c]
mov dword [esp + 0x24], eax
movzx eax, word [ebx + 0xa0]
mov dword [esp + 0x20], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x1c], eax
movzx eax, word [ebx + 0xac]
mov dword [esp + 0x18], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0x14], eax
movzx eax, word [ebx + 0xb0]
mov dword [esp + 0xc], str.AX_04x_BX_04x_CX_04x_DX_04x_SI_04x_DI_04x_DS_04x_ES_04x_EFL_08lx_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.6640d110
jmp 0x66410d42
movzx edx, byte [0x664447b0]
test dl, 2
jne 0x6641656b
lea esi, [esi]
nop
and edx, 8
test dl, dl
je 0x66410ed1
mov eax, dword [ebx + 0xc0]
mov dword [esp + 0x30], eax
movzx eax, word [ebx + 0x94]
mov dword [esp + 0x2c], eax
movzx eax, word [ebx + 0x98]
mov dword [esp + 0x28], eax
movzx eax, word [ebx + 0x9c]
mov dword [esp + 0x24], eax
movzx eax, word [ebx + 0xa0]
mov dword [esp + 0x20], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x1c], eax
movzx eax, word [ebx + 0xac]
mov dword [esp + 0x18], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0x14], eax
movzx eax, word [ebx + 0xb0]
mov dword [esp + 0xc], str.returning:_AX_04x_BX_04x_CX_04x_DX_04x_SI_04x_DI_04x_DS_04x_ES_04x_EFL_08lx_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.6640d110
lea esp, [ebp - 0x10]
pop ecx
pop ebx
pop esi
pop edi
pop ebp
lea esp, [ecx - 4]
ret 4
movzx edx, byte [0x664447b0]
and esi, 0xffffff00
mov dword [ebx + 0xb0], esi
and edx, 8
jmp 0x66410e43
movzx edx, byte [0x664447b0]
test dl, 2
je 0x66410e40
movzx eax, word [ebx + 0x94]
movzx esi, si
mov dword [esp + 0x34], eax
movzx eax, word [ebx + 0x98]
mov dword [esp + 0x30], eax
movzx eax, word [ebx + 0x9c]
mov dword [esp + 0x2c], eax
movzx eax, word [ebx + 0xa0]
mov dword [esp + 0x28], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x24], eax
movzx eax, word [ebx + 0xac]
mov dword [esp + 0x20], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0x21
mov dword [esp + 0x10], 0x21
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], 0x66447e88
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 1
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
lea esi, [esi]
nop
test eax, eax
je 0x66410e43
lea esi, [esi]
nop
test dl, dl
je 0x66410ed1
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x34]
mov dword [esp + 0xc], str.failed__error__ld_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6640d110
movzx edx, byte [0x664447b0]
jmp 0x66410e40
mov eax, ebx
call fcn.6640d5b0
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
movzx edx, byte [0x664447b0]
test dl, 2
je 0x66410e40
movzx eax, word [ebx + 0x94]
movzx esi, si
mov dword [esp + 0x34], eax
movzx eax, word [ebx + 0x98]
mov dword [esp + 0x30], eax
movzx eax, word [ebx + 0x9c]
mov dword [esp + 0x2c], eax
movzx eax, word [ebx + 0xa0]
mov dword [esp + 0x28], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x24], eax
movzx eax, word [ebx + 0xac]
mov dword [esp + 0x20], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0x21
mov dword [esp + 0x10], 0x21
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], 0x66447e88
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 1
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
movzx edx, byte [0x664447b0]
test dl, 2
je 0x66410e40
movzx eax, word [ebx + 0x94]
movzx esi, si
mov dword [esp + 0x34], eax
movzx eax, word [ebx + 0x98]
mov dword [esp + 0x30], eax
movzx eax, word [ebx + 0x9c]
mov dword [esp + 0x2c], eax
movzx eax, word [ebx + 0xa0]
mov dword [esp + 0x28], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x24], eax
movzx eax, word [ebx + 0xac]
mov dword [esp + 0x20], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0x21
mov dword [esp + 0x10], 0x21
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], 0x66447e88
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 1
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
lea eax, [esi + 1]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x10], eax
lea eax, [ebp - 0x470]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0xb
mov dword [esp + 0xc], 0xc
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
sub edi, dword [ebp - 0x48c]
sub esp, 0x20
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
lea edx, [edi + 8]
mov dword [esp + 8], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov ecx, dword [ebp - 0x48c]
sub esp, 0xc
mov dword [esi + 0x11], eax
mov dword [esp + 8], edi
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.ucrtbase.dll_memcpy
mov eax, dword [esi + 0x11]
mov dword [eax + edi], 0x2e002a
mov dword [eax + edi + 4], 0x2a
mov eax, dword [esi + 0x11]
movzx eax, word [eax]
lea edx, [eax - 0x41]
cmp dx, 0x19
jbe 0x66416a8d
lea edx, [eax - 0x61]
sub eax, 0x61
cmp dx, 0x1a
mov edx, 0x1a
cmovae eax, edx
xor edi, edi
mov byte [esi], al
mov word [esi + 0xd], di
mov eax, dword [ebx + 0xac]
mov byte [esi + 0xc], al
test byte [0x664447b0], 8
jne 0x66415137
call sym.krnl386.exe16_GetCurrentTask
movzx eax, ax
mov dword [esp], eax
call sym.krnl386.exe16_GlobalLock16
mov eax, dword [eax + 0x62]
sub esp, 4
movzx edx, ax
shr eax, 0x10
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6642fb90
mov esi, eax
movzx eax, byte [eax + 0xc]
mov edi, dword [esi + 0x11]
test edi, edi
je 0x6641132f
movzx edx, byte [esi]
lea ecx, [esi + 1]
or eax, 0x61
movzx eax, al
mov dword [ebp - 0x48c], ecx
movzx ecx, word [esi + 0xd]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x48c]
mov dword [ebp - 0x490], edx
lea edx, [ebp - 0x268]
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x490]
mov dword [esp], eax
mov eax, edi
call fcn.6640efc0
mov edi, eax
test eax, eax
jne 0x66415253
mov edx, dword [esi + 0x11]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esi + 0x11], 0
mov dword [0x66451d48], 0
sub esp, 0xc
movzx edx, byte [0x664447b0]
mov ecx, 0x12
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 0x12
or dword [ebx + 0xc0], 1
mov word [ebx + 0xb0], cx
and edx, 8
jmp 0x66410fc0
test byte [0x664447b0], 8
jne 0x66415cde
mov eax, dword [ebx + 0xa8]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x98]
mov dword [esp], eax
call fcn.6642fb90
mov dword [ebp - 0x470], 0x3a0020
movzx edx, byte [eax]
mov esi, eax
cmp dl, 0xff
jne 0x6641139f
movzx edx, byte [eax + 7]
add esi, 7
test dl, dl
je 0x66415092
movzx eax, dl
mov byte [ebp - 0x48c], dl
mov dword [ebp - 0x266], 0x3a
add eax, 0x40
mov word [ebp - 0x268], ax
lea eax, [ebp - 0x268]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetDriveTypeW]
movzx edx, byte [ebp - 0x48c]
mov ecx, eax
sub esp, 4
lea eax, [edx - 1]
cmp ecx, 1
jbe 0x66415070
cmp al, 0x1a
je 0x66415070
movzx eax, al
mov dword [esp + 8], 0x208
add eax, 0x41
mov dword [esp + 4], 0
mov word [ebp - 0x470], ax
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
sub esp, 0xc
mov dword [esi + 0x10], eax
test eax, eax
je 0x66415070
lea edi, [ebp - 0x470]
mov dword [esp + 8], 0x104
mov dword [esp + 4], eax
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_GetLongPathNameW]
mov dword [esi + 0xc], 0
mov eax, dword [ebx + 0xb0]
sub esp, 0xc
mov dword [ebp - 0x48c], eax
mov eax, dword [ebx + 0xa8]
mov ecx, dword [ebp - 0x48c]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x98]
xor cl, cl
mov dword [ebp - 0x490], ecx
mov dword [esp], eax
call fcn.6642fb90
mov edi, eax
call sym.krnl386.exe16_GetCurrentTask
mov esi, edi
movzx eax, ax
mov dword [esp], eax
call sym.krnl386.exe16_GlobalLock16
mov eax, dword [eax + 0x62]
sub esp, 4
movzx edx, ax
shr eax, 0x10
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6642fb90
mov dword [ebp - 0x494], eax
xor eax, eax
cmp byte [edi], 0xff
jne 0x664114cb
movzx eax, byte [edi + 6]
lea esi, [edi + 7]
mov edx, dword [esi + 0x10]
test edx, edx
je 0x66415160
mov ecx, dword [esi + 0xc]
mov dword [ebp - 0x498], eax
lea eax, [esi + 1]
movzx edx, byte [esi]
mov dword [ebp - 0x49c], eax
mov dword [ebp - 0x4a4], ecx
test dl, dl
je 0x66414de0
movzx eax, dl
mov byte [ebp - 0x4a0], dl
mov dword [ebp - 0x266], 0x3a
add eax, 0x40
mov word [ebp - 0x268], ax
lea eax, [ebp - 0x268]
mov dword [ebp - 0x48c], eax
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetDriveTypeW]
movzx edx, byte [ebp - 0x4a0]
sub esp, 4
mov ecx, dword [ebp - 0x4a4]
sub edx, 1
cmp eax, 1
mov eax, 0x1a
movzx edx, dl
cmova eax, edx
mov dword [ebp - 0x4a0], eax
mov edx, dword [ebp - 0x48c]
mov eax, dword [esi + 0x10]
mov dword [esp + 8], edx
mov edx, dword [ebp - 0x498]
mov dword [esp + 4], edx
mov edx, dword [ebp - 0x49c]
mov dword [esp], edx
mov edx, dword [ebp - 0x4a0]
call fcn.6640efc0
test eax, eax
je 0x66416876
add dword [esi + 0xc], eax
cmp byte [edi], 0xff
jne 0x664115a8
mov edi, dword [ebp - 0x494]
mov byte [edi], 0xff
mov eax, dword [ebp - 0x268]
mov byte [edi + 6], al
lea eax, [edi + 7]
mov dword [ebp - 0x494], eax
movzx esi, byte [esi]
mov eax, esi
test al, al
je 0x66415238
lea edi, [ebp - 0x470]
movzx eax, al
mov dword [ebp - 0x46e], 0x3a
add eax, 0x40
mov dword [esp], edi
mov word [ebp - 0x470], ax
call dword [sym.imp.kernel32.dll_GetDriveTypeW]
mov edx, eax
sub esp, 4
lea eax, [esi - 1]
cmp edx, 1
mov edx, 0x1a
cmovbe eax, edx
mov ecx, dword [ebp - 0x494]
xor esi, esi
mov byte [ecx], al
mov eax, dword [ebp - 0x268]
mov word [ecx + 0x1b], si
mov byte [ecx + 0xc], al
mov eax, dword [ebp - 0x248]
mov dword [ecx + 0xd], 0
mov dword [ecx + 0x11], 0
mov dword [ecx + 0x1d], eax
xor eax, eax
mov word [ecx + 0x15], ax
lea eax, [ecx + 0x17]
mov dword [esp + 8], eax
lea eax, [ecx + 0x19]
mov dword [esp + 4], eax
lea eax, [ebp - 0x254]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FileTimeToDosDateTime]
mov edx, edi
sub esp, 0xc
cmp word [ebp - 0x34], 0
je 0x66415228
lea eax, [ebp - 0x34]
call fcn.6640c980
mov eax, dword [ebp - 0x494]
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0xb
mov dword [esp + 0xc], 0xb
add eax, 1
mov dword [esp + 8], edi
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
sub esp, 0x20
mov eax, dword [ebp - 0x490]
movzx edx, byte [0x664447b0]
mov dword [ebx + 0xb0], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x66410fb0
test byte [0x664447b0], 8
je 0x66410ed1
mov dword [esp + 0xc], str.SET_VERIFY_FLAG_ignored_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
mov eax, dword fs:[0x18]
movzx ecx, word [eax + 0x34]
cmp ecx, 0x91
ja case.default.0x66411723
jmp dword [ecx*4 + 0x66449e84]
movzx edx, byte [0x664447b0]
test dl, 2
je 0x66410e40
movzx eax, word [ebx + 0x94]
movzx esi, si
mov dword [esp + 0x34], eax
movzx eax, word [ebx + 0x98]
mov dword [esp + 0x30], eax
movzx eax, word [ebx + 0x9c]
mov dword [esp + 0x2c], eax
movzx eax, word [ebx + 0xa0]
mov dword [esp + 0x28], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x24], eax
movzx eax, word [ebx + 0xac]
mov dword [esp + 0x20], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0x21
mov dword [esp + 0x10], 0x21
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], 0x66447e88
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 1
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
test byte [0x664447b0], 8
jne 0x664164af
mov edx, dword [ebx + 0x98]
movzx eax, word [ebx + 0xa8]
movzx ecx, byte [ebp - 0x48c]
shl edx, 0x10
or eax, edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.6641d6e0
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
mov eax, ebx
call fcn.6640fc10
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
mov eax, ebx
call fcn.6640e3b0
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
mov eax, ebx
call fcn.6640fe90
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
call fcn.6640e720
mov esi, eax
test byte [0x664447b0], 8
jne 0x6641584a
mov eax, esi
movzx eax, al
call fcn.6640cd90
test eax, eax
jne 0x66415802
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
or dword [ebx + 0xb0], 0xff
and eax, 1
and edx, 8
jmp 0x66410fb0
movzx edx, byte [ebx + 0xa8]
mov eax, ebx
call fcn.6640eb60
test eax, eax
je 0x66414f84
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
xor edx, edx
mov eax, ebx
call fcn.6640eb60
test eax, eax
je 0x66415026
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
movzx edx, byte [0x664447b0]
xor eax, eax
and edx, 8
jne 0x6641652f
and dword [ebx + 0xa4], 0xffff0000
mov dword [ebx + 0x94], 0
jmp 0x66410fb0
test byte [0x664447b0], 8
je 0x66410ed1
mov dword [esp + 0xc], str.Write_Character_to_Standard_Output_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
mov eax, dword [ebx + 0xb0]
movzx edx, byte [0x664447b0]
and edx, 8
mov ecx, dword fs:[0x18]
movzx ecx, word [ecx + 0x34]
xor ax, ax
or dword [ebx + 0xc0], 1
or eax, ecx
mov dword [ebx + 0xb0], eax
jmp 0x66410fc0
mov dword [esp], 2
xor ecx, ecx
mov eax, ebx
call fcn.6640d1a0
test eax, eax
je 0x66411ca0
movzx edx, byte [0x664447b0]
and dword [ebx + 0xc0], 0xfffffffe
and edx, 8
jmp 0x66410e43
test byte [0x664447b0], 8
jne 0x66415a3c
mov dword [ebp - 0x268], 0x3a0041
mov esi, dword [ebx + 0xa8]
mov dword [ebp - 0x264], 0x5c
mov eax, esi
test al, al
je 0x66414e05
lea edi, [ebp - 0x470]
movzx eax, al
mov dword [ebp - 0x46e], 0x3a
add eax, 0x40
mov dword [esp], edi
mov word [ebp - 0x470], ax
call dword [sym.imp.kernel32.dll_GetDriveTypeW]
mov edx, eax
sub esp, 4
lea eax, [esi - 1]
cmp edx, 1
mov edx, 0x1a
movzx eax, al
cmovbe eax, edx
add word [ebp - 0x268], ax
mov dword [esp + 0x10], edi
lea eax, [ebp - 0x474]
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x478]
mov dword [esp + 8], eax
lea eax, [ebp - 0x47c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x268]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetDiskFreeSpaceW]
sub esp, 0x14
test eax, eax
je 0x66414f62
mov eax, dword [ebp - 0x478]
mov ecx, dword [ebp - 0x474]
mov esi, dword [ebp - 0x470]
mov dword [ebp - 0x48c], eax
cmp eax, 0x200
jbe 0x664120d5
nop
shr eax, 1
add ecx, ecx
add esi, esi
cmp eax, 0x200
ja 0x664120b0
mov dword [ebp - 0x48c], eax
mov dword [ebp - 0x478], eax
mov dword [ebp - 0x474], ecx
mov dword [ebp - 0x470], esi
mov edi, dword [ebp - 0x47c]
cmp edi, 0x3f
ja 0x66414dc6
lea esi, [esi]
shr ecx, 1
add edi, edi
shr esi, 1
cmp edi, 0x3f
jbe 0x664120e8
mov dword [ebp - 0x47c], edi
mov dword [ebp - 0x470], esi
cmp esi, 0xf60c
jbe 0x66412116
mov dword [ebp - 0x470], 0xf60c
mov esi, 0xf60c
mov eax, 0xf60c
cmp ecx, eax
cmova ecx, eax
cmp edi, 0x7f
je 0x66416789
imul ecx, edi
mov eax, 0x2040811
imul esi, edi
mul ecx
mov eax, 0x2040811
sub ecx, edx
shr ecx, 1
add ecx, edx
mul esi
mov eax, 0x7f
shr ecx, 6
sub esi, edx
shr esi, 1
add edx, esi
mov esi, edx
shr esi, 6
mov word [ebx + 0xb0], ax
mov eax, dword [ebx + 0xa4]
mov edx, 0x3d83
xor ax, ax
cmp ecx, edx
cmova ecx, edx
or eax, ecx
mov dword [ebx + 0xa4], eax
mov eax, dword [ebx + 0xac]
xor ax, ax
or eax, dword [ebp - 0x48c]
mov dword [ebx + 0xac], eax
mov eax, dword [ebx + 0xa8]
xor ax, ax
cmp esi, edx
cmovbe edx, esi
or eax, edx
movzx edx, byte [0x664447b0]
mov dword [ebx + 0xa8], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x66410fb0
mov esi, dword [ebx + 0xa8]
mov eax, esi
test al, al
je 0x66414ff2
mov dword [ebp - 0x266], 0x3a
movzx eax, al
add eax, 0x40
mov word [ebp - 0x268], ax
lea eax, [ebp - 0x268]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetDriveTypeW]
sub esp, 4
cmp eax, 1
jbe 0x66416867
sub esi, 1
mov eax, esi
movzx edi, al
test byte [0x664447b0], 8
jne 0x66415ee0
mov eax, edi
call fcn.6640cd90
test eax, eax
jne 0x66415e98
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
or dword [ebx + 0xb0], 0xff
and eax, 1
and edx, 8
jmp 0x66410fb0
test byte [0x664447b0], 8
jne 0x66415f14
call fcn.6640cc30
movzx edx, byte [0x664447b0]
mov ecx, 0x2b2
movzx eax, word [eax + 0x2b3]
mov word [ebx + 0xa4], cx
and edx, 8
mov dword [ebx + 0x94], eax
mov eax, dword [ebx + 0xc0]
and eax, 1
jmp 0x66410fb0
mov eax, esi
mov ecx, esi
movzx edi, byte [0x664447b0]
movzx eax, al
cmp cl, 6
ja case.0x6641229d.3
jmp dword [eax*4 + 0x6644a288]
test byte [0x664447b0], 8
jne 0x66415b12
movzx ecx, byte [ebp - 0x48c]
mov dword [esp], ecx
call fcn.6641d1a0
mov edx, eax
mov word [ebx + 0xa4], ax
mov eax, dword [ebx + 0xc0]
shr edx, 0x10
mov dword [ebx + 0x94], edx
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
test byte [0x664447b0], 8
je 0x66412338
mov eax, esi
mov edx, 0x664486bc
mov dword [esp + 0xc], str.GET_DOS_VERSION____s_requested_n
test al, al
mov eax, str.version_flag
mov dword [esp + 8], str.DOSVM_Int21Handler
cmove eax, edx
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0x48c], eax
mov eax, dword [ebx + 0xa4]
mov edi, dword [ebp - 0x48c]
mov edx, eax
xor ah, ah
mov ecx, edi
or dh, 0xff
or ah, 8
test cl, cl
cmove eax, edx
and edi, 0xffffff00
mov dword [ebx + 0xa4], eax
call fcn.6641e900
shr eax, 0x18
mov esi, eax
or esi, edi
mov edi, 0x3456
mov dword [ebx + 0xb0], esi
and esi, 0xffff00ff
call fcn.6641e900
movzx edx, byte [0x664447b0]
mov byte [ebx + 0xa4], 0x12
shr eax, 8
mov word [ebx + 0xac], di
and eax, 0xff00
or eax, esi
mov dword [ebx + 0xb0], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x66410fb0
movzx edx, byte [0x664447b0]
test dl, 1
je 0x66410e40
mov dword [esp + 0xc], str.TERMINATE_AND_STAY_RESIDENT_stub_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 0
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
test byte [0x664447b0], 8
jne 0x66415873
call sym.krnl386.exe16_GetCurrentTask
movzx eax, ax
mov dword [esp], eax
call sym.krnl386.exe16_GlobalLock16
movzx edx, word [eax + 0x64]
sub esp, 4
mov dword [ebx + 0x94], edx
movzx eax, word [eax + 0x62]
movzx edx, byte [0x664447b0]
mov word [ebx + 0xa4], ax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x66410fb0
test byte [0x664447b0], 8
jne 0x66415ad4
mov eax, dword [ebx + 0xa8]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x98]
mov dword [esp], eax
call fcn.6642fb90
cmp byte [eax], 0x24
mov edi, eax
je 0x66416eec
lea esi, [esi]
nop
add eax, 1
cmp byte [eax], 0x24
jne 0x66412488
sub eax, edi
mov esi, eax
mov dword [esp], 1
call sym.krnl386.exe16_DosFileHandleToWin32Handle
lea edx, [ebp - 0x268]
sub esp, 4
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_WriteFile]
mov eax, dword [ebx + 0xc0]
mov byte [ebx + 0xb0], 0x24
movzx edx, byte [0x664447b0]
sub esp, 0x14
and eax, 1
and edx, 8
jmp 0x66410fb0
movzx edx, byte [0x664447b0]
xor eax, eax
and edx, 8
jne 0x664159f4
mov ecx, dword [ebp - 0x48c]
xor cl, cl
mov dword [ebx + 0xb0], ecx
jmp 0x66410fb0
xor edx, edx
mov eax, ebx
call fcn.6640f3b0
test eax, eax
jne 0x66411d71
jmp 0x66411ca0
mov eax, dword [ebx + 0xa8]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x98]
mov dword [esp], eax
call fcn.6642fb90
mov esi, eax
test byte [0x664447b0], 8
jne 0x66415c20
and dword [ebx + 0xc0], 0xfffffffe
mov dword [esp + 4], 1
mov dword [esp], esi
call sym.krnl386.exe16_WinExec16
sub esp, 8
cmp ax, 0x1f
jbe 0x66414fa6
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
movzx edx, byte [0x664447b0]
test dl, 8
jne 0x664163d0
test dl, 1
jne 0x664163a0
or dword [ebx + 0xc0], 1
and edx, 8
jmp 0x66410fc0
test byte [0x664447b0], 8
jne 0x66415a95
mov eax, dword [ebx + 0xac]
mov dword [ebp - 0x494], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp], eax
call sym.krnl386.exe16_DosFileHandleToWin32Handle
sub esp, 4
mov dword [ebp - 0x48c], eax
cmp eax, 0xffffffff
je 0x66411ca0
mov eax, dword [ebp - 0x494]
mov esi, 0x100
mov word [ebp - 0x490], ax
movzx eax, ax
mov dword [esp], eax
call sym.krnl386.exe16__lclose16
lea edx, [ebp - 0x268]
mov ecx, 8
xor eax, eax
mov edi, edx
mov dword [ebp - 0x498], ebx
sub esp, 4
mov ebx, dword [ebp - 0x48c]
rep stosd dword es:[edi], eax
lea edi, [ebp - 0x470]
jmp 0x6641267f
mov eax, dword [ebp - 0x470]
mov dword [esp], eax
call sym.krnl386.exe16_Win32HandleToDosFileHandle
sub esp, 4
mov ecx, eax
mov word [ebp - 0x48c], ax
cmp ax, 0xffff
je 0x66415248
cmp word [ebp - 0x490], ax
je 0x66415248
shr ax, 5
mov edx, 1
movzx eax, ax
shl edx, cl
or dword [ebp + eax*4 - 0x268], edx
sub esi, 1
je 0x66415248
mov dword [esp + 0x18], 2
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], ebx
mov dword [esp], 0xffffffff
call dword [sym.imp.kernel32.dll_DuplicateHandle]
sub esp, 0x1c
test eax, eax
jne 0x66412630
mov ebx, dword [ebp - 0x498]
mov eax, 0xffffffff
mov word [ebp - 0x48c], ax
xor esi, esi
mov edi, 1
jmp 0x664126ef
add esi, 1
cmp esi, 0x100
je 0x66414d49
mov edx, esi
mov eax, edi
mov ecx, esi
sar edx, 5
shl eax, cl
and eax, dword [ebp + edx*4 - 0x268]
je 0x664126e0
mov dword [esp], esi
call sym.krnl386.exe16__lclose16
sub esp, 4
jmp 0x664126e0
test byte [0x664447b0], 8
jne 0x66415922
movzx eax, word [ebx + 0xa4]
mov dword [esp], eax
call sym.krnl386.exe16_DosFileHandleToWin32Handle
lea edx, [ebp - 0x268]
sub esp, 4
mov dword [esp + 0x18], 2
mov dword [esp + 0x14], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], eax
mov dword [esp], 0xffffffff
call dword [sym.imp.kernel32.dll_DuplicateHandle]
sub esp, 0x1c
test eax, eax
je 0x66411ca0
mov eax, dword [ebp - 0x268]
mov dword [esp], eax
call sym.krnl386.exe16_Win32HandleToDosFileHandle
sub esp, 4
cmp eax, 0xffffffff
je 0x66411ca0
nop
movzx edx, byte [0x664447b0]
mov word [ebx + 0xb0], ax
and dword [ebx + 0xc0], 0xfffffffe
and edx, 8
jmp 0x66410e43
test byte [0x664447b0], 8
je 0x66410ed1
mov dword [esp + 0xc], str.DIRECT_CHARACTER_INPUT_WITH_ECHO___not_supported_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
movzx edx, byte [0x664447b0]
xor eax, eax
and edx, 8
jne 0x66415e27
mov ecx, dword [ebp - 0x48c]
xor cl, cl
mov dword [ebx + 0xb0], ecx
jmp 0x66410fb0
mov esi, dword [ebx + 0xac]
movzx edi, byte [0x664447b0]
mov eax, esi
shr eax, 8
mov ecx, eax
cmp al, 0x17
ja 0x66414d28
mov eax, esi
cmp al, 0x3b
ja 0x66414d28
mov eax, dword [ebx + 0xa8]
mov edx, eax
shr edx, 8
cmp dl, 0x3b
ja 0x66414d28
cmp al, 0x63
ja 0x66414d28
test edi, 1
jne 0x6641796d
mov eax, dword [ebx + 0xc0]
mov edx, edi
and dword [ebx + 0xb0], 0xffffff00
and edx, 8
and eax, 1
jmp 0x66410fb0
test byte [0x664447b0], 8
jne 0x66415e6f
lea eax, [ebp - 0x268]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetLocalTime]
mov eax, dword [ebx + 0xac]
movzx edx, byte [ebp - 0x260]
sub esp, 4
xor ax, ax
shl edx, 8
or eax, edx
movzx edx, byte [ebp - 0x25e]
or eax, edx
movzx edx, byte [ebp - 0x25c]
mov dword [ebx + 0xac], eax
mov eax, dword [ebx + 0xa8]
shl edx, 8
xor ax, ax
or eax, edx
movzx edx, word [ebp - 0x25a]
imul edx, edx, 0xcccd
shr edx, 0x13
movzx edx, dl
or eax, edx
movzx edx, byte [0x664447b0]
mov dword [ebx + 0xa8], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x66410fb0
movzx edi, byte [0x664447b0]
test edi, 8
jne 0x66414e18
mov eax, dword [ebx + 0xa8]
mov edx, dword [ebx + 0xac]
mov ecx, eax
lea esi, [edx - 0x7bc]
shr ecx, 8
mov dword [ebp - 0x48c], ecx
cmp si, 0x77
jbe 0x66414e66
or dword [ebx + 0xb0], 0xff
mov eax, dword [ebx + 0xc0]
and eax, 1
test eax, eax
je 0x66410ed1
mov edx, edi
and edx, 8
jmp 0x66410fc0
mov eax, ebx
call fcn.66410a30
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
mov eax, dword [ebx + 0xa8]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x98]
mov dword [esp], eax
call fcn.6642fb90
mov esi, eax
cmp byte [esi], 0xff
lea eax, [eax + 7]
cmove esi, eax
movzx eax, byte [esi + 0x18]
mov dword [esp], eax
call sym.krnl386.exe16__lclose16
sub esp, 4
test ax, ax
je 0x66414f15
movzx edx, byte [0x664447b0]
mov edi, 0xff
and edx, 8
jne 0x66416a10
mov eax, edi
mov byte [ebx + 0xb0], al
mov eax, dword [ebx + 0xc0]
and eax, 1
jmp 0x66410fb0
test byte [0x664447b0], 8
jne 0x66415db6
lea eax, [ebp - 0x268]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_GetLocalTime]
movzx eax, word [ebp - 0x268]
movzx edx, byte [ebp - 0x266]
sub esp, 4
mov word [ebx + 0xac], ax
mov eax, dword [ebx + 0xa8]
shl edx, 8
xor ax, ax
or eax, edx
movzx edx, byte [ebp - 0x262]
or eax, edx
movzx edx, byte [0x664447b0]
mov dword [ebx + 0xa8], eax
movzx eax, byte [ebp - 0x264]
and edx, 8
mov byte [ebx + 0xb0], al
mov eax, dword [ebx + 0xc0]
and eax, 1
jmp 0x66410fb0
mov eax, dword [ebx + 0xa0]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x98]
mov dword [esp], eax
call fcn.6642fb90
mov dword [ebp - 0x48c], eax
mov eax, dword [ebx + 0x9c]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x94]
mov dword [esp], eax
call fcn.6642fb90
or dword [ebx + 0xb0], 0xff
mov dword [ebp - 0x490], eax
test byte [0x664447b0], 8
jne 0x6641660b
mov esi, dword [ebp - 0x48c]
movzx eax, byte [esi]
cmp al, 0xa
setne cl
cmp al, 0xd
setne dl
test cl, dl
je 0x66416b7c
test al, 0xdf
jne 0x66412af4
jmp 0x66416b7c
test al, 0xdf
je 0x66412b09
movzx eax, byte [esi + 1]
add esi, 1
cmp al, 0xd
setne cl
cmp al, 0xa
setne dl
test cl, dl
jne 0x66412af0
mov eax, dword [ebp - 0x48c]
mov dword [esp + 0x14], 0
mov edx, dword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov dword [esp + 0x10], 0
mov dword [esp + 4], 0
mov dword [esp], 1
mov edi, eax
mov dword [esp + 8], eax
sub edi, esi
mov dword [ebp - 0x4a0], edx
mov dword [ebp - 0x494], edi
mov dword [esp + 0xc], edi
call edx
sub esp, 0x18
mov dword [ebp - 0x498], eax
lea eax, [eax + eax + 2]
mov dword [esp + 4], 0
mov ecx, dword fs:[0x18]
mov dword [esp + 8], eax
mov eax, dword [ecx + 0x30]
mov dword [ebp - 0x49c], ecx
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapAlloc]
mov ecx, dword [ebp - 0x494]
sub esp, 0xc
mov edi, eax
mov edx, dword [ebp - 0x498]
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x48c]
mov dword [esp + 4], 0
mov dword [esp + 0xc], ecx
mov dword [esp + 0x14], edx
mov edx, dword [ebp - 0x4a0]
mov dword [esp + 8], eax
mov dword [esp], 1
call edx
xor edx, edx
sub esp, 0x18
mov word [edi + eax*2], dx
mov eax, edi
lea edx, [ebp - 0x268]
call fcn.6640c980
mov ecx, dword [ebp - 0x49c]
mov dword [esp + 8], edi
mov dword [esp + 4], 0
mov eax, dword [ecx + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov eax, dword [ebp - 0x490]
lea edx, [ebp - 0x268]
sub esp, 0xc
mov dword [esp + 8], edx
mov dword [esp + 0x1c], 0
lea edi, [eax + 1]
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0xc
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], 0xc
mov dword [esp + 4], 0
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
mov eax, dword [ebp - 0x490]
sub esp, 0x20
mov byte [eax], 0
movzx edx, byte [0x664447b0]
and edx, 8
jne 0x66415d24
mov eax, dword [ebx + 0xb0]
mov byte [ebp - 0x494], dl
mov edi, dword [sym.imp.ucrtbase.dll_strchr]
mov dword [esp + 4], 0x2a
xor al, al
mov dword [ebp - 0x490], eax
mov eax, dword [ebp - 0x48c]
mov dword [esp], eax
call edi
movzx edx, byte [ebp - 0x494]
mov ecx, eax
mov eax, 1
test ecx, ecx
je 0x66416762
mov ecx, dword [ebx + 0xa0]
or eax, dword [ebp - 0x490]
mov dword [ebx + 0xb0], eax
mov eax, ecx
sub ax, word [ebp - 0x48c]
xor cx, cx
add eax, esi
movzx eax, ax
or eax, ecx
mov dword [ebx + 0xa0], eax
mov eax, dword [ebx + 0xc0]
and eax, 1
jmp 0x66410fb0
test byte [0x664447b0], 8
je 0x66410ed1
mov dword [esp + 0xc], str.DISK_BUFFER_FLUSH_ignored_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
movzx edx, byte [0x664447b0]
xor eax, eax
and edx, 8
jne 0x66415ddf
mov ecx, dword [ebp - 0x48c]
xor cl, cl
mov dword [ebx + 0xb0], ecx
jmp 0x66410fb0
test byte [0x664447b0], 8
je 0x66410ed1
mov dword [esp + 0xc], str.BUFFERED_INPUT___not_supported_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
mov eax, dword [ebx + 0xa8]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x98]
mov dword [esp], eax
call fcn.6642fb90
mov esi, eax
cmp byte [esi], 0xff
lea eax, [eax + 7]
cmove esi, eax
mov eax, dword [esi + 0x21]
mov dword [ebp - 0x48c], eax
movzx eax, byte [esi + 0x18]
mov dword [esp], eax
call sym.krnl386.exe16_DosFileHandleToWin32Handle
sub esp, 4
mov edi, eax
cmp eax, 0xffffffff
je 0x6641516f
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
movzx eax, word [esi + 0xe]
imul eax, dword [ebp - 0x48c]
mov dword [esp], edi
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_SetFilePointer]
mov edx, eax
mov dword [ebp - 0x490], eax
movzx eax, word [esi + 0xe]
sub esp, 0x10
imul eax, dword [ebp - 0x48c]
cmp edx, eax
je 0x66416c17
movzx edx, byte [0x664447b0]
xor ecx, ecx
mov edi, 1
and edx, 8
jne 0x66416b27
mov eax, dword [ebp - 0x48c]
mov dword [esi + 0x21], eax
shr eax, 7
mov word [esi + 0xc], ax
movzx eax, byte [ebp - 0x48c]
and eax, 0x7f
mov byte [esi + 0x20], al
mov eax, edi
mov byte [ebx + 0xb0], al
mov eax, dword [ebx + 0xc0]
mov word [ebx + 0xac], cx
and eax, 1
jmp 0x66410fb0
movzx edx, byte [0x664447b0]
test dl, 2
je 0x66410e40
movzx eax, word [ebx + 0x94]
movzx esi, si
mov dword [esp + 0x34], eax
movzx eax, word [ebx + 0x98]
mov dword [esp + 0x30], eax
movzx eax, word [ebx + 0x9c]
mov dword [esp + 0x2c], eax
movzx eax, word [ebx + 0xa0]
mov dword [esp + 0x28], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x24], eax
movzx eax, word [ebx + 0xac]
mov dword [esp + 0x20], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0x21
mov dword [esp + 0x10], 0x21
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], 0x66447e88
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 1
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
mov eax, ebx
call fcn.6640ec50
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
test byte [0x664447b0], 8
jne 0x66415956
movzx eax, byte [ebx + 0xa8]
mov dword [ebp - 0x266], 0x3a
add eax, 0x41
mov word [ebp - 0x268], ax
lea eax, [ebp - 0x268]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_SetCurrentDirectoryW]
movzx edx, byte [0x664447b0]
sub esp, 4
test eax, eax
jne 0x66414da6
and edx, 8
jne 0x66414d7b
mov eax, dword [ebx + 0xc0]
mov byte [ebx + 0xb0], 0x1a
and eax, 1
jmp 0x66410fb0
mov edi, esi
test byte [0x664447b0], 8
jne 0x6641598d
mov eax, edi
cmp al, 0xa
ja 0x66414dae
mov eax, 0xfffffa3d
bt eax, esi
jb 0x66414dae
mov eax, esi
mov byte [ebx + 0xb1], al
mov dword [esp], ebx
call fcn.66410d20
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
sub esp, 4
and eax, 1
and edx, 8
jmp 0x66410fb0
mov eax, ebx
call fcn.6640f9d0
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
movzx edx, byte [0x664447b0]
xor eax, eax
and edx, 8
jne 0x66415ba4
mov ecx, dword [ebp - 0x48c]
xor cx, cx
mov dword [ebx + 0xb0], ecx
jmp 0x66410fb0
test byte [0x664447b0], 8
jne 0x6641589c
movzx ecx, byte [ebp - 0x48c]
mov dword [esp], ecx
call fcn.6641d150
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
test byte [0x664447b0], 8
jne 0x6641663e
call sym.krnl386.exe16_GetCurrentTask
lea edi, [ebp - 0x268]
movzx eax, ax
mov dword [esp], eax
call sym.krnl386.exe16_GlobalLock16
mov eax, dword [eax + 0x62]
sub esp, 4
movzx edx, ax
shr eax, 0x10
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6642fb90
mov esi, eax
mov eax, dword [ebx + 0xa8]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x98]
mov dword [esp], eax
call fcn.6642fb90
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], 0x104
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
mov edx, dword [sym.imp.ucrtbase.dll_wcsrchr]
mov dword [ebp - 0x48c], edi
sub esp, 0x18
mov dword [esp], edi
mov dword [esp + 4], 0x5c
mov dword [ebp - 0x490], edx
call edx
mov edx, dword [ebp - 0x490]
mov dword [esp + 4], 0x2f
mov edi, eax
mov eax, dword [ebp - 0x48c]
mov dword [esp], eax
call edx
cmp edi, eax
cmovae eax, edi
lea edi, [eax + 2]
test eax, eax
je 0x6641668f
lea edx, [ebp - 0x470]
mov eax, edi
call fcn.6640c980
test eax, eax
jne 0x66411190
movzx edx, byte [0x664447b0]
mov eax, dword fs:[0x18]
mov dword [eax + 0x34], 2
mov eax, 2
or dword [ebx + 0xc0], 1
mov word [ebx + 0xb0], ax
and edx, 8
jmp 0x66410fc0
test byte [0x664447b0], 8
jne 0x6641627c
movzx eax, word [ebx + 0x94]
mov dword [esp], eax
call fcn.66409750
sub esp, 4
test ax, ax
jne 0x66415048
mov dword [ebx + 0x94], 0
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
test byte [0x664447b0], 8
jne 0x66415bec
movzx eax, word [ebx + 0xa4]
mov dword [esp], eax
call sym.krnl386.exe16__lclose16
sub esp, 4
cmp ax, 0xffff
jne 0x66411d71
jmp 0x66411ca0
mov eax, esi
mov edx, dword [ebx + 0xa8]
mov dword [esp + 4], 1
movzx esi, al
mov dword [esp], esi
jmp 0x66411d60
movzx edx, byte [0x664447b0]
xor eax, eax
and edx, 8
jne 0x664158da
mov ecx, dword [ebp - 0x48c]
xor cl, cl
mov dword [ebx + 0xb0], ecx
jmp 0x66410fb0
mov esi, dword [ebx + 0xa8]
movzx edx, byte [0x664447b0]
mov ecx, esi
and edx, 8
cmp cl, 0xff
je 0x664154e3
xor eax, eax
test dl, dl
jne 0x66416819
mov edi, dword [ebp - 0x48c]
mov ecx, esi
movzx esi, cl
and edi, 0xffffff00
or edi, esi
mov dword [ebx + 0xb0], edi
jmp 0x66410fb0
test byte [0x664447b0], 8
jne 0x66415cb5
mov dword [esp], 0
call fcn.6641d150
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
test byte [0x664447b0], 8
jne 0x6641633f
mov eax, dword [ebx + 0xa4]
shl eax, 4
and eax, 0xffff0
mov dword [esp], eax
call fcn.664096c0
sub esp, 4
test ax, ax
jne 0x66412790
or dword [ebx + 0xc0], 1
mov eax, 8
mov esi, dword [ebx + 0xa4]
mov word [ebx + 0xb0], ax
call fcn.66404fb0
movzx edx, byte [0x664447b0]
shr eax, 4
xor si, si
movzx eax, ax
or eax, esi
mov dword [ebx + 0xa4], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x66410fb0
test byte [0x664447b0], 8
je 0x6641343d
mov ecx, esi
mov eax, str.start_of_file
test cl, cl
je 0x664133f4
cmp cl, 1
mov eax, str.current_file_position
mov edx, str.end_of_file
cmovne eax, edx
mov dword [esp + 0x18], eax
mov edx, dword [ebx + 0xac]
movzx eax, word [ebx + 0xa8]
shl edx, 0x10
or eax, edx
mov dword [esp + 0x14], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0xc], str.LSEEK_handle__d_offset__ld_from__s_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.6640d110
movzx eax, word [ebx + 0xa4]
mov dword [esp], eax
call sym.krnl386.exe16_DosFileHandleToWin32Handle
mov ecx, eax
movzx eax, byte [ebx + 0xb0]
sub esp, 4
mov dword [esp + 8], 0
mov dword [esp + 0xc], eax
mov edx, dword [ebx + 0xac]
movzx eax, word [ebx + 0xa8]
mov dword [esp], ecx
shl edx, 0x10
or eax, edx
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_SetFilePointer]
sub esp, 0x10
cmp eax, 0xffffffff
je 0x66411ca0
movzx edx, byte [0x664447b0]
mov word [ebx + 0xb0], ax
shr eax, 0x10
and dword [ebx + 0xc0], 0xfffffffe
mov word [ebx + 0xa8], ax
and edx, 8
jmp 0x66410e43
call fcn.6640e720
movzx edi, byte [0x664447b0]
and esi, 0xffffff00
movzx eax, al
or eax, esi
mov dword [ebx + 0xb0], eax
test edi, 8
je 0x6641295f
movzx eax, al
mov dword [esp + 0xc], str.GET_CURRENT_DRIVE_____c:_n
add eax, 0x41
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
mov eax, esi
movzx edx, byte [0x664447b0]
movzx eax, al
cmp eax, 2
je 0x664168bd
ja 0x66414c00
test eax, eax
je 0x66416984
cmp eax, 1
jne 0x664168db
and edx, 8
je 0x66410ed1
movzx eax, byte [ebx + 0xa4]
mov dword [esp + 0xc], str.SET_MEMORY_ALLOCATION_STRATEGY_to__d___ignored_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
movzx eax, word [ebx + 0xa4]
mov dword [esp], eax
call sym.krnl386.exe16_DosFileHandleToWin32Handle
mov esi, eax
mov eax, dword [ebx + 0xb0]
sub esp, 4
movzx edx, al
cmp al, 7
ja case.0x664135cd.2
jmp dword [edx*4 + 0x6644a2a4]
mov eax, ebx
call fcn.6640d620
test eax, eax
jne 0x66411d71
jmp 0x66411ca0
mov eax, dword [ebx + 0xa8]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x98]
mov dword [esp], eax
call fcn.6642fb90
mov esi, eax
test byte [0x664447b0], 8
jne 0x66416373
mov dword [esp + 0x14], 0x104
lea edi, [ebp - 0x268]
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], edi
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
sub esp, 0x18
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_RemoveDirectoryW]
sub esp, 4
test eax, eax
je 0x66411ca0
jmp 0x66411d71
mov eax, ebx
call fcn.6640d740
test eax, eax
je 0x66411ca0
jmp 0x66411d71
mov eax, esi
movzx ecx, al
cmp al, 0x12
ja 0x66414cc4
cmp ecx, 0xb
ja 0x66414c60
mov eax, 1
shl eax, cl
test eax, 0x4cf
je 0x664151cd
mov eax, ebx
call fcn.6640e960
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
movzx edx, byte [0x664447b0]
xor eax, eax
and edx, 8
jne 0x664162af
mov ecx, dword [ebx + 0xa4]
mov word [0x66451002], cx
jmp 0x66410fb0
mov edx, dword [ebx + 0xa8]
mov dword [esp + 4], 0x12
jmp 0x66411d59
test byte [0x664447b0], 8
jne 0x66415797
call sym.krnl386.exe16_GetCurrentTask
movzx eax, ax
mov dword [esp], eax
call sym.krnl386.exe16_GlobalLock16
movzx ecx, word [ebx + 0xa8]
mov edx, eax
mov eax, dword [ebx + 0x98]
sub esp, 4
shl eax, 0x10
or eax, ecx
mov dword [edx + 0x62], eax
movzx edx, byte [0x664447b0]
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x66410fb0
test byte [0x664447b0], 8
jne 0x664162eb
mov eax, dword [ebx + 0xa8]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x98]
mov dword [esp], eax
call fcn.6642fb90
mov esi, eax
movzx eax, word [ebx + 0xa4]
mov dword [esp], eax
call sym.krnl386.exe16_DosFileHandleToWin32Handle
movzx edx, word [ebx + 0xac]
sub esp, 4
mov dword [esp + 4], esi
mov dword [esp], eax
mov dword [esp + 8], edx
call dword [sym.imp.kernel32.dll__hwrite]
sub esp, 0xc
cmp eax, 0xffffffff
jne 0x66412790
jmp 0x66411ca0
test byte [0x664447b0], 8
jne 0x664159bf
mov edi, dword [ebp - 0x48c]
mov eax, edi
test al, al
je 0x66413a43
movzx esi, al
cmp al, 0xff
jne 0x66413a08
movzx esi, word [ebx + 0xa4]
call dword [sym.imp.kernel32.dll_GetSystemDefaultLangID]
cmp si, ax
je 0x664169ac
test byte [0x664447b0], 1
jne 0x66416d71
mov ecx, dword [ebx + 0xb0]
or dword [ebx + 0xc0], 1
xor cx, cx
or ecx, 2
mov dword [ebp - 0x48c], ecx
mov dword [ebx + 0xb0], ecx
cmp word [ebp - 0x48c], 2
jne 0x6641509c
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
mov eax, esi
xor ecx, ecx
movzx edx, al
mov eax, ebx
call fcn.6640d850
test eax, eax
jne 0x66411d71
jmp 0x66411ca0
mov eax, ebx
call fcn.6640e7d0
test eax, eax
jne 0x66411d71
jmp 0x66411ca0
mov eax, esi
movzx edx, byte [0x664447b0]
and eax, 0xff
je 0x66415774
cmp eax, 1
je 0x6641564d
test dl, 2
je 0x66410e40
movzx eax, word [ebx + 0x94]
movzx esi, si
mov dword [esp + 0x34], eax
movzx eax, word [ebx + 0x98]
mov dword [esp + 0x30], eax
movzx eax, word [ebx + 0x9c]
mov dword [esp + 0x2c], eax
movzx eax, word [ebx + 0xa0]
mov dword [esp + 0x28], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x24], eax
movzx eax, word [ebx + 0xac]
mov dword [esp + 0x20], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0x21
mov dword [esp + 0x10], 0x21
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], 0x66447e88
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 1
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
mov eax, dword [ebx + 0xa8]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x98]
mov dword [esp], eax
call fcn.6642fb90
mov esi, eax
test byte [0x664447b0], 8
jne 0x664157d5
mov dword [esp + 0x14], 0x104
lea edi, [ebp - 0x268]
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 0x10], edi
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_MultiByteToWideChar]
sub esp, 0x18
mov dword [esp], edi
call dword [sym.imp.kernel32.dll_DeleteFileW]
sub esp, 4
test eax, eax
je 0x66411ca0
jmp 0x66411d71
test byte [0x664447b0], 8
jne 0x66415b50
mov eax, dword [ebx + 0xa8]
mov edi, dword [ebx + 0xac]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x98]
mov dword [esp], eax
call fcn.6642fb90
mov esi, eax
movzx eax, word [ebx + 0x98]
mov dword [esp], eax
call sym.krnl386.exe16_GetSelectorLimit16
movzx edx, word [ebx + 0xa8]
sub esp, 4
sub eax, edx
lea edx, [eax + 1]
movzx eax, di
cmp edx, eax
cmovbe eax, edx
and dword [ebx + 0xc0], 0xfffffffe
mov edi, eax
movzx eax, word [ebx + 0xa4]
mov dword [esp], eax
call sym.krnl386.exe16_DosFileHandleToWin32Handle
lea edx, [ebp - 0x268]
sub esp, 4
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], edx
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_ReadFile]
sub esp, 0x14
test eax, eax
je 0x66411ca0
movzx eax, word [ebp - 0x268]
movzx edx, byte [0x664447b0]
mov word [ebx + 0xb0], ax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x66410fb0
cmp ecx, 0xb7
je case.0x66411723.80
movzx edi, byte [0x664447b0]
mov esi, edi
and esi, 1
jne 0x66417aa7
mov esi, 1
mov byte [ebp - 0x48c], 4
mov edx, 6
lea esi, [esi]
nop
mov eax, esi
movzx esi, dl
mov edx, edi
movzx eax, al
and edx, 8
mov dword [ebp - 0x490], eax
movzx eax, byte [ebp - 0x48c]
mov dword [ebp - 0x48c], eax
jne 0x66415d5b
mov eax, dword [ebx + 0xa4]
shl esi, 8
mov word [ebx + 0xb0], cx
xor ax, ax
or eax, esi
or eax, dword [ebp - 0x48c]
mov dword [ebx + 0xa4], eax
movzx eax, byte [ebp - 0x490]
mov byte [ebx + 0xad], al
mov eax, dword [ebx + 0xc0]
and eax, 1
jmp 0x66410fb0
and edi, 8
jne 0x664174cb
mov edi, dword [ebx + 0xa4]
call fcn.6641e900
shr eax, 0x18
mov esi, eax
and edi, 0xffffff00
or esi, edi
mov dword [ebx + 0xa4], esi
and esi, 0xffff00ff
call fcn.6641e900
movzx edx, byte [0x664447b0]
shr eax, 8
and eax, 0xff00
or eax, esi
mov esi, 0x800
mov dword [ebx + 0xa4], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
mov word [ebx + 0xa8], si
and eax, 1
jmp 0x66410fb0
mov edx, edi
xor eax, eax
and edx, 8
jne 0x66417310
mov byte [ebx + 0xa8], 3
jmp 0x66410fb0
test edi, 8
jne 0x664172e0
mov edx, dword [ebx + 0xa8]
movzx eax, byte [0x66451d50]
mov ecx, edx
xor cl, cl
or eax, ecx
mov dword [ebx + 0xa8], eax
test dl, dl
je 0x66417025
mov eax, dword [ebx + 0xc0]
mov edx, edi
mov dword [0x66451d50], 1
and edx, 8
and eax, 1
jmp 0x66410fb0
mov edx, edi
and edx, 8
jne 0x664173ec
movzx ecx, byte [0x66451d50]
mov byte [ebx + 0xa8], cl
jmp 0x66410fb0
test edi, 2
jne 0x6641734c
mov edx, edi
and edx, 8
jmp 0x66410e43
mov edx, edi
xor eax, eax
and edx, 8
jne 0x66417428
xor ecx, ecx
cmp byte [ebx + 0xa8], 0
setne cl
mov dword [0x66451d50], ecx
jmp 0x66410fb0
test byte [0x664447b0], 8
jne 0x6641756d
lea edi, [ebp - 0x268]
mov dword [esp + 8], edi
movzx eax, word [ebx + 0xac]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_DosDateTimeToFileTime]
sub esp, 0xc
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], edi
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_SetFileTime]
sub esp, 0x10
test eax, eax
je 0x66411ca0
movzx edi, byte [0x664447b0]
and dword [ebx + 0xc0], 0xfffffffe
jmp 0x66413e62
test byte [0x664447b0], 8
jne 0x66417609
mov dword [esp + 8], 0
lea edi, [ebp - 0x268]
mov dword [esp + 0xc], edi
mov dword [esp + 4], 0
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_GetFileTime]
sub esp, 0x10
test eax, eax
je 0x66411ca0
lea eax, [ebp - 0x470]
mov dword [esp], edi
mov dword [esp + 8], eax
lea eax, [ebp - 0x474]
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_FileTimeToDosDateTime]
movzx eax, word [ebp - 0x474]
movzx edi, byte [0x664447b0]
sub esp, 0xc
mov word [ebx + 0xa8], ax
movzx eax, word [ebp - 0x470]
mov word [ebx + 0xac], ax
jmp 0x66413ef4
test byte [0x664447b0], 8
jne 0x664175a1
mov dword [esp + 0xc], 0
lea edi, [ebp - 0x268]
mov dword [esp + 8], 0
mov dword [esp + 4], edi
mov dword [esp], esi
call dword [sym.imp.kernel32.dll_GetFileTime]
sub esp, 0x10
test eax, eax
je 0x66411ca0
lea eax, [ebp - 0x470]
mov dword [esp], edi
mov dword [esp + 8], eax
lea eax, [ebp - 0x474]
mov dword [esp + 4], eax
call dword [sym.imp.kernel32.dll_FileTimeToDosDateTime]
movzx eax, word [ebp - 0x474]
and dword [ebx + 0xa0], 0xffff0000
sub esp, 0xc
mov word [ebx + 0xa8], ax
movzx eax, word [ebp - 0x470]
mov word [ebx + 0xac], ax
jmp 0x66413eed
movzx edi, byte [0x664447b0]
test edi, 2
je 0x66413ef4
movzx edx, word [ebx + 0x94]
movzx eax, ax
mov dword [esp + 0x34], edx
movzx edx, word [ebx + 0x98]
mov dword [esp + 0x30], edx
movzx edx, word [ebx + 0x9c]
mov dword [esp + 0x2c], edx
movzx edx, word [ebx + 0xa0]
mov dword [esp + 0x28], edx
movzx edx, word [ebx + 0xa8]
mov dword [esp + 0x24], edx
movzx edx, word [ebx + 0xac]
mov dword [esp + 0x20], edx
movzx edx, word [ebx + 0xa4]
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], 0x21
mov dword [esp + 0x10], 0x21
mov dword [esp + 0x1c], edx
mov dword [esp + 0xc], 0x66447e88
mov dword [esp + 8], str.INT21_FileDateTime
mov dword [esp + 4], 0x664447b0
mov dword [esp], 1
call fcn.6640d110
jmp 0x66413eed
test byte [0x664447b0], 8
jne 0x664175d5
mov dword [esp + 0xc], 0
lea edi, [ebp - 0x268]
mov dword [esp + 8], edi
jmp 0x66413f1f
test byte [0x664447b0], 8
jne 0x6641763d
lea edi, [ebp - 0x268]
mov dword [esp + 8], edi
movzx eax, word [ebx + 0xac]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_DosDateTimeToFileTime]
sub esp, 0xc
mov dword [esp + 0xc], edi
mov dword [esp + 8], 0
mov dword [esp + 4], 0
jmp 0x66413ed9
test byte [0x664447b0], 8
jne 0x66417671
lea edi, [ebp - 0x268]
mov dword [esp + 8], edi
movzx eax, word [ebx + 0xac]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_DosDateTimeToFileTime]
sub esp, 0xc
mov dword [esp + 0xc], 0
mov dword [esp + 8], edi
jmp 0x6641410e
movzx edi, byte [0x664447b0]
mov esi, 2
mov edx, 0xb
mov byte [ebp - 0x48c], 4
jmp 0x66413cd0
movzx edi, byte [0x664447b0]
mov esi, 2
mov edx, 8
mov byte [ebp - 0x48c], 4
jmp 0x66413cd0
movzx edi, byte [0x664447b0]
mov esi, 2
mov edx, 0xc
mov byte [ebp - 0x48c], 4
jmp 0x66413cd0
movzx edi, byte [0x664447b0]
mov esi, 2
mov edx, 3
mov byte [ebp - 0x48c], 4
jmp 0x66413cd0
movzx edi, byte [0x664447b0]
mov esi, 2
mov edx, 7
mov byte [ebp - 0x48c], 4
jmp 0x66413cd0
movzx edi, byte [0x664447b0]
mov esi, 1
mov edx, 3
mov byte [ebp - 0x48c], 4
jmp 0x66413cd0
movzx edi, byte [0x664447b0]
mov esi, 5
mov edx, 1
mov byte [ebp - 0x48c], 4
jmp 0x66413cd0
movzx edi, byte [0x664447b0]
mov esi, 3
mov edx, 8
mov byte [ebp - 0x48c], 4
jmp 0x66413cd0
movzx edi, byte [0x664447b0]
mov esi, 2
mov edx, 2
mov byte [ebp - 0x48c], 1
jmp 0x66413cd0
movzx edi, byte [0x664447b0]
mov esi, 1
mov edx, 6
mov byte [ebp - 0x48c], 4
jmp 0x66413cd0
movzx edi, byte [0x664447b0]
mov esi, 2
mov edx, 8
mov byte [ebp - 0x48c], 6
jmp 0x66413cd0
movzx edi, byte [0x664447b0]
xor esi, esi
mov byte [ebp - 0x48c], 0
xor edx, edx
jmp 0x66413cd0
movzx edi, byte [0x664447b0]
mov esi, 2
mov edx, 0xc
mov byte [ebp - 0x48c], 6
jmp 0x66413cd0
cmp eax, 3
jne 0x664168db
and edx, 8
je 0x66410ed1
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0xc], str.SET_UMB_LINK_STATE_to__d___ignored_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
sub ecx, 0xd
cmp ecx, 5
ja case.0x66414c6c.16
jmp dword [ecx*4 + 0x6644a354]
mov eax, ebx
call fcn.66410110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
movzx edi, byte [0x664447b0]
test edi, 8
jne 0x66417960
or dword [ebx + 0xc0], 1
mov eax, esi
mov edx, edi
xor ax, ax
and edx, 8
or eax, 1
mov dword [ebx + 0xb0], eax
jmp 0x66410fc0
cmp ecx, 0x52
je 0x66417104
cmp ecx, 0xe0
jne 0x66417054
test byte [0x664447b0], 8
je 0x66410ed1
mov dword [esp + 0xc], str.Sun_PC_NFS_API_n
mov dword [esp + 8], str.INT21_Ioctl
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
mov edx, edi
xor eax, eax
and edx, 8
jne 0x664166f6
mov ecx, dword [ebp - 0x48c]
or cl, 0xff
mov dword [ebx + 0xb0], ecx
jmp 0x66410fb0
mov eax, dword [ebx + 0xc0]
movzx edi, word [ebp - 0x48c]
cmp word [ebp - 0x494], di
jne 0x66411ca0
movzx edx, byte [0x664447b0]
and eax, 0xfffffffe
mov dword [ebx + 0xc0], eax
and edx, 8
jmp 0x66410e43
mov dword [esp + 0xc], str.Failed_to_set_current_drive._n
mov dword [esp + 8], str.INT21_SetCurrentDrive
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
movzx edx, byte [0x664447b0]
and edx, 8
jmp 0x66412f95
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
cmp edi, 0x7f
jbe 0x664120ff
nop
shr edi, 1
add ecx, ecx
add esi, esi
cmp edi, 0x7f
ja 0x66414dd0
jmp 0x664120f3
call fcn.6640e720
mov ecx, dword [ebp - 0x4a4]
movzx eax, al
mov dword [ebp - 0x4a0], eax
lea eax, [ebp - 0x268]
mov dword [ebp - 0x48c], eax
jmp 0x66411552
call fcn.6640e720
lea edi, [ebp - 0x470]
movzx eax, al
jmp 0x6641204d
mov dword [esp + 0xc], str.SET_SYSTEM_DATE_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xa8]
mov edx, dword [ebx + 0xac]
movzx edi, byte [0x664447b0]
mov ecx, eax
lea esi, [edx - 0x7bc]
shr ecx, 8
mov dword [ebp - 0x48c], ecx
cmp si, 0x77
ja 0x66414eaa
movzx ecx, byte [ebp - 0x48c]
lea esi, [ecx - 1]
mov ecx, esi
cmp cl, 0xb
ja 0x66414eaa
lea esi, [eax - 1]
mov ecx, esi
cmp cl, 0x1e
ja 0x66414eaa
test edi, 1
jne 0x66417524
mov eax, dword [ebx + 0xc0]
mov edx, edi
and dword [ebx + 0xb0], 0xffffff00
and edx, 8
and eax, 1
jmp 0x66410fb0
or dword [ebx + 0xb0], 0xff
test edi, 8
je 0x6641295f
movzx ecx, byte [ebp - 0x48c]
movzx edx, dx
movzx eax, al
mov dword [esp + 0xc], str.SetSystemDate__02d__02d__04d_:_invalid_date_n
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
movzx edx, byte [0x664447b0]
xor edi, edi
and edx, 8
je 0x664129ea
movzx eax, byte [esi + 0x18]
mov dword [esp + 0xc], str.successful_closed_file__d_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.INT21_CloseFileUsingFCB
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
movzx edx, byte [0x664447b0]
and edx, 8
jmp 0x664129ea
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
or dword [ebx + 0xb0], 0xffff
and eax, 1
and edx, 8
jmp 0x66410fb0
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
or dword [ebx + 0xb0], 0xffff
and eax, 1
and edx, 8
jmp 0x66410fb0
movzx edx, byte [0x664447b0]
mov word [ebx + 0xb0], ax
or dword [ebx + 0xc0], 1
and edx, 8
jmp 0x66410fc0
call fcn.6640e720
mov esi, eax
movzx edi, al
jmp 0x66412205
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
or dword [ebx + 0xb0], 0xffff
and eax, 1
and edx, 8
jmp 0x66410fb0
movzx edx, byte [0x664447b0]
and edx, 8
jne 0x66416a31
or dword [ebx + 0xc0], 1
mov eax, 9
mov word [ebx + 0xb0], ax
jmp 0x66410fc0
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
or dword [ebx + 0xb0], 0xff
and eax, 1
and edx, 8
jmp 0x66410fb0
call fcn.6640e720
jmp 0x664113eb
mov eax, dword [ebx + 0xa8]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x98]
mov dword [esp], eax
call fcn.6642fb90
xor edx, edx
mov edi, dword [sym.imp.kernel32.dll_GetSystemDefaultLangID]
mov word [eax + 0x20], dx
mov dword [eax], 0x240000
mov dword [eax + 7], 0x2e0000
mov dword [eax + 0xb], 0x3a002f
mov dword [eax + 0xf], 0x10000
mov dword [eax + 0x13], 0x2c000000
mov byte [eax + 0x17], 0
mov dword [eax + 0x18], 0
mov dword [eax + 0x1c], 0
mov esi, dword [ebx + 0xb0]
call edi
movzx eax, ax
xor si, si
or eax, esi
mov esi, dword [ebx + 0xa4]
mov dword [ebx + 0xb0], eax
call edi
movzx edx, byte [0x664447b0]
and dword [ebx + 0xc0], 0xfffffffe
movzx eax, ax
xor si, si
or eax, esi
mov dword [ebx + 0xa4], eax
and edx, 8
jmp 0x66410e43
mov dword [esp + 0xc], str.FINDNEXT_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
jmp 0x66411274
or dword [ebp - 0x490], 0xff
jmp 0x664116a0
movzx edx, byte [0x664447b0]
xor ecx, ecx
mov edi, 1
and edx, 8
je 0x66412e3a
movzx eax, byte [esi + 0x18]
mov dword [esp + 0xc], 0x66448028
mov dword [esp + 8], str.INT21_RandomBlockWriteToFCB
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
mov dword [ebp - 0x490], ecx
call fcn.6640d110
movzx edx, byte [0x664447b0]
mov ecx, dword [ebp - 0x490]
and edx, 8
jmp 0x66412e3a
test eax, 0x330
jne case.0x66414c6c.13
cmp ecx, 0xb
jne 0x66417054
movzx edi, byte [0x664447b0]
test edi, 8
jne 0x6641791a
cmp word [ebx + 0xac], 0
mov eax, dword [ebx + 0xc0]
jne 0x664178da
mov word [ebx + 0xb0], 1
or eax, 1
mov edx, edi
mov dword [ebx + 0xc0], eax
and edx, 8
jmp 0x66410fc0
lea eax, [ebp - 0x23c]
call fcn.6640c980
jmp 0x66411657
call fcn.6640e720
lea edi, [ebp - 0x470]
jmp 0x664115ee
mov ebx, dword [ebp - 0x498]
jmp 0x664126d1
mov eax, dword [ebp - 0x268]
mov byte [esi + 0x15], al
mov eax, dword [ebp - 0x248]
mov dword [esi + 0x1a], eax
lea eax, [esi + 0x16]
mov dword [esp + 8], eax
lea eax, [esi + 0x18]
mov dword [esp + 4], eax
lea eax, [ebp - 0x254]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_FileTimeToDosDateTime]
lea eax, [esi + 0x1e]
sub esp, 0xc
cmp word [ebp - 0x34], 0
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0xd
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0xffffffff
je 0x664169a1
lea eax, [ebp - 0x34]
mov dword [esp + 8], eax
mov dword [esp + 4], 0
mov dword [esp], 1
call dword [sym.imp.kernel32.dll_WideCharToMultiByte]
mov eax, dword [ebp - 0x48c]
sub esp, 0x20
mov dword [esp + 8], 0xb
mov dword [esp + 4], 0x3f
mov dword [esp], eax
call dword [sym.imp.ucrtbase.dll_memchr]
test eax, eax
je 0x6641714d
mov word [esi + 0xd], di
movzx edx, byte [0x664447b0]
mov eax, dword [ebx + 0xc0]
and dword [ebx + 0xb0], 0xffff0000
and edx, 8
and eax, 1
jmp 0x66410fb0
test dl, dl
jne 0x66416da1
mov ecx, dword [ebp - 0x48c]
xor cl, cl
mov dword [ebx + 0xb0], ecx
mov ecx, eax
and eax, 1
or ecx, 0x40
mov dword [ebx + 0xc0], ecx
jmp 0x66410fb0
xor eax, eax
test dl, 1
jne 0x66416de6
mov ecx, dword [ebp - 0x48c]
and edx, 8
xor cl, cl
mov dword [ebx + 0xb0], ecx
jmp 0x66410fb0
and edx, 8
jne 0x66416bcf
mov ecx, dword [ebp - 0x48c]
mov byte [ebx + 0xa8], 0x2f
xor cl, cl
mov dword [ebx + 0xb0], ecx
jmp 0x66410fb0
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x98]
mov dword [esp + 0xc], str.SET_DISK_TRANSFER_AREA_ADDRESS__04lX:_04X_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.6640d110
jmp 0x6641393c
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.UNLINK__s_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
jmp 0x66413b86
and dword [ebx + 0xb0], 0xffffff00
mov edx, 0x3d
mov eax, esi
mul dl
add ax, 0x2b5
mov word [ebx + 0xa4], ax
call fcn.6640cc30
movzx edx, byte [0x664447b0]
movzx eax, word [eax + 0x2b3]
and edx, 8
mov dword [ebx + 0x98], eax
mov eax, dword [ebx + 0xc0]
and eax, 1
jmp 0x66410fb0
mov dword [esp + 0xc], str.GET_DPB_FOR_DEFAULT_DRIVE_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
jmp 0x66411895
mov dword [esp + 0xc], str.GET_DISK_TRANSFER_AREA_ADDRESS_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
jmp 0x66412412
mov eax, esi
mov dword [esp + 0xc], str.EXIT_with_return_code__d_n
movzx esi, al
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 0x10], esi
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0x48c], eax
jmp 0x664130aa
mov dword [esp + 0xc], str.DIRECT_CHARACTER_INPUT_WITHOUT_ECHO___not_supported_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
movzx edx, byte [0x664447b0]
mov dword [ebp - 0x48c], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x6641328a
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0xc], str.DUPLICATE_FILE_HANDLE__d_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6640d110
jmp 0x6641271d
movzx eax, byte [ebx + 0xa8]
mov dword [esp + 0xc], str.SELECT_DEFAULT_DRIVE____c:_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
add eax, 0x41
mov dword [esp + 0x10], eax
call fcn.6640d110
jmp 0x66412f50
mov eax, esi
mov dword [esp + 0xc], str.FLUSH_BUFFER_AND_READ_STANDARD_INPUT___0x_02x_n
movzx eax, al
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 0x10], eax
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
jmp 0x66412fb9
mov dword [esp + 0xc], str.GET_COUNTRY_SPECIFIC_INFORMATION_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0x48c], eax
jmp 0x664139ee
mov dword [esp + 0xc], str.CHARACTER_INPUT_WITHOUT_ECHO___not_supported_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
movzx edx, byte [0x664447b0]
mov dword [ebp - 0x48c], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x664124fa
movzx edx, byte [ebx + 0xa8]
mov eax, str.default
test edx, edx
je 0x66415a68
cmp edx, 0x1a
ja 0x66416f7c
add edx, 0x40
mov dword [esp], 0x66448581
mov dword [esp + 4], edx
call fcn.6640e6c0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.GET_FREE_DISK_SPACE_FOR_DRIVE__s__limited_to_about_1GB__n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
jmp 0x66411fed
movzx eax, word [ebx + 0xac]
mov dword [esp + 0x14], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0xc], str.FORCEDUP___FORCE_DUPLICATE_FILE_HANDLE__d_to__d_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.6640d110
jmp 0x664125bc
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x98]
mov dword [esp + 0xc], str.WRITE___terminated_string_from__04lX:_04X_to_stdout_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.6640d110
jmp 0x6641245f
mov eax, esi
mov dword [esp + 0xc], str.GET_INTERRUPT_VECTOR_0x_02x_n
movzx esi, al
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 0x10], esi
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0x48c], eax
jmp 0x664122b1
movzx eax, word [ebx + 0xac]
mov dword [esp + 0x1c], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0x98]
mov dword [esp + 0x14], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0xc], str.READ_from__d_to__04lX:_04X_for__d_bytes_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.6640d110
jmp 0x66413be2
mov dword [esp + 0xc], str.GET_RETURN_CODE__ERRORLEVEL__n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
movzx edx, byte [0x664447b0]
mov dword [ebp - 0x48c], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x66413089
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0xc], str.CLOSE_handle__d_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6640d110
jmp 0x6641323c
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.EXEC__s_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
jmp 0x6641254b
mov dword [esp + 0xc], str.TERMINATE_PROGRAM_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
jmp 0x664132ed
mov eax, dword [ebx + 0xa8]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x98]
mov dword [esp], eax
call fcn.6642fb90
mov dword [esp + 0xc], str.FIND_FIRST_MATCHING_FILE_USING_FCB__p_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
jmp 0x6641136b
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], str.FCB:__s_n
mov dword [esp + 8], str.INT21_ParseFileNameIntoFCB
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
movzx edx, byte [0x664447b0]
and edx, 8
jmp 0x66412c63
mov eax, dword [ebp - 0x490]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], str.GET_EXTENDED_ERROR_code_0x_02x_class_0x_02x_action_0x_02x_locus__02x_n
mov dword [esp + 8], str.INT21_GetExtendedError
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x48c]
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [ebp - 0x494], ecx
mov dword [esp + 0x18], eax
call fcn.6640d110
movzx edx, byte [0x664447b0]
mov ecx, dword [ebp - 0x494]
and edx, 8
jmp 0x66413cf6
mov dword [esp + 0xc], str.GET_SYSTEM_DATE_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
jmp 0x66412a0d
mov dword [esp + 0xc], str.GET_STDIN_STATUS___not_supported_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
movzx edx, byte [0x664447b0]
mov dword [ebp - 0x48c], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x66412d3a
mov dword [esp + 0xc], str.Get_Verify_Flag___Not_Supported_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
movzx edx, byte [0x664447b0]
mov dword [ebp - 0x48c], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x66412808
mov dword [esp + 0xc], str.GET_SYSTEM_TIME_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
jmp 0x6641289d
and dword [ebx + 0xb0], 0xffffff00
mov edx, 0x3d
mov eax, esi
mul dl
add ax, 0x2b5
mov word [ebx + 0xa4], ax
call fcn.6640cc30
movzx edx, byte [0x664447b0]
movzx eax, word [eax + 0x2b3]
and edx, 8
mov dword [ebx + 0x98], eax
mov eax, dword [ebx + 0xc0]
and eax, 1
jmp 0x66410fb0
movzx eax, byte [ebx + 0xa8]
mov dword [esp + 0xc], str.GET_DPB_FOR_SPECIFIC_DRIVE__d_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6640d110
jmp 0x66412212
mov dword [esp + 0xc], str.GET_ADDRESS_OF_INDOS_FLAG_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
jmp 0x66412250
mov eax, dword [ebx + 0x94]
mov dword [esp + 0xc], str.FREE_MEMORY_segment__04lX_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6640d110
jmp 0x664131f2
mov dword [esp + 0xc], str.SET_CURRENT_PROCESS_ID__SET_PSP_ADDRESS__n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x6641388f
movzx eax, word [ebx + 0xac]
mov dword [esp + 0x1c], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0x18], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x98]
mov dword [esp + 0xc], str.WRITE_from__04lX:_04X_to_handle__d_for__d_byte_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.6640d110
jmp 0x6641398b
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0xc], str.ALLOCATE_MEMORY_for__d_paragraphs_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6640d110
jmp 0x66413367
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], str.REMOVE_DIRECTORY__s_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
jmp 0x66413610
mov dword [esp + 0xc], str.Resize_memory_block___unsupported_under_Win16_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 0
call fcn.6640d110
movzx edx, byte [0x664447b0]
jmp 0x664125a0
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0x14], eax
mov eax, dword [ebx + 0x94]
mov dword [esp + 0xc], str.RESIZE_MEMORY_segment__04lX_to__d_paragraphs_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.6640d110
movzx edx, byte [0x664447b0]
jmp 0x66412597
mov eax, esi
mov dword [esp + 0xc], str.SET_INTERRUPT_VECTOR_0x_02x_n
movzx esi, al
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 0x10], esi
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0x48c], eax
jmp 0x664117e7
mov dword [esp + 0xc], str.Get_List_of_Lists___not_supported_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66411baa
movzx eax, word [ebx + 0x94]
movzx esi, si
mov dword [esp + 0x34], eax
movzx eax, word [ebx + 0x98]
mov dword [esp + 0x30], eax
movzx eax, word [ebx + 0x9c]
mov dword [esp + 0x2c], eax
movzx eax, word [ebx + 0xa0]
mov dword [esp + 0x28], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x24], eax
movzx eax, word [ebx + 0xac]
mov dword [esp + 0x20], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0x21
mov dword [esp + 0x10], 0x21
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], 0x66447e88
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 1
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
mov eax, dword [ebp - 0x48c]
mov dword [esp + 0xc], str.filename:__s_n
mov dword [esp + 8], str.INT21_ParseFileNameIntoFCB
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6640d110
jmp 0x66412acb
mov eax, dword [ebx + 0xa8]
mov dword [esp + 4], eax
movzx eax, word [ebx + 0x98]
mov dword [esp], eax
call fcn.6642fb90
mov dword [esp + 0x14], eax
movzx eax, word [ebx + 0xac]
mov dword [esp + 0xc], str.FINDFIRST_mask_0x_04x_spec__s_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.6640d110
jmp 0x664130de
cmp word [ebp - 0x268], 0
mov edi, dword [ebp - 0x48c]
je 0x664131a1
cmp word [ebp - 0x266], 0x3a
jne 0x664131a1
lea edi, [ebp - 0x264]
jmp 0x664131a1
mov eax, dword [ebx + 0xa8]
mov dword [esp + 0xc], str.SetSystemTime__02d:_02d:_02d._02d_:_wrong_time_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
movzx edx, al
movzx eax, ah
mov dword [esp + 0x18], eax
mov eax, esi
movzx esi, al
movzx eax, cl
mov dword [esp + 0x1c], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
movzx edx, byte [0x664447b0]
mov dword [ebp - 0x48c], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x66414d35
mov eax, dword [ebp - 0x48c]
mov dword [esp + 4], 0x24
mov dword [esp], eax
call edi
movzx edx, byte [ebp - 0x494]
test eax, eax
setne al
movzx eax, al
jmp 0x66412ca6
movzx eax, word [ebp - 0x47c]
jmp 0x66412156
mov dword [esp + 0xc], str.Direct_Console_Output_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
movzx edx, byte [0x664447b0]
mov esi, dword [ebx + 0xa8]
mov dword [ebp - 0x48c], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x664132c2
mov edi, 0x1a
mov esi, 0x1a
jmp 0x66412205
mov edx, dword [esi + 0x10]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esi + 0x10], 0
or dword [ebp - 0x490], 0xff
sub esp, 0xc
mov dword [0x66451d48], 0
jmp 0x664116a0
xor eax, eax
and edx, 8
jne 0x664171d2
mov ecx, dword [ebp - 0x48c]
xor cl, cl
mov dword [ebx + 0xb0], ecx
jmp 0x66410fb0
test dl, 2
je 0x66410e40
movzx eax, word [ebx + 0x94]
movzx esi, si
mov dword [esp + 0x34], eax
movzx eax, word [ebx + 0x98]
mov dword [esp + 0x30], eax
movzx eax, word [ebx + 0x9c]
mov dword [esp + 0x2c], eax
movzx eax, word [ebx + 0xa0]
mov dword [esp + 0x28], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x24], eax
movzx eax, word [ebx + 0xac]
mov dword [esp + 0x20], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0x21
mov dword [esp + 0x10], 0x21
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], 0x66447e88
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 1
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
and edx, 8
jne 0x6641718a
mov ecx, dword [ebp - 0x48c]
xor cx, cx
mov dword [ebx + 0xb0], ecx
jmp 0x66410fb0
lea eax, [ebp - 0x23c]
jmp 0x664152ba
mov eax, dword [ebx + 0xb0]
mov dword [ebp - 0x48c], eax
jmp 0x66413a43
movzx eax, byte [esi + 0x18]
mov dword [esp + 0xc], str._lclose16__d__failed_n
mov dword [esp + 0x10], eax
jmp 0x66414f37
mov dword [esp + 0xc], str.FREE_MEMORY_failed_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
movzx edx, byte [0x664447b0]
and edx, 8
jmp 0x66415058
sub eax, 0x41
jmp 0x66411256
mov dword [ebp - 0x494], ecx
mov ecx, dword [ebp - 0x490]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
movzx eax, byte [esi + 0x18]
mov dword [esp + 0xc], str.seek__d___ld__0__failed_with__lu_n
mov dword [esp + 8], str.INT21_RandomBlockWriteToFCB
mov dword [esp + 4], 0x664447b0
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.6640d110
movzx edx, byte [0x664447b0]
mov ecx, dword [ebp - 0x494]
and edx, 8
jmp 0x66412e3a
mov esi, dword [ebp - 0x48c]
jmp 0x66412b09
mov dword [esp + 0xc], str.SWITCHAR___GET_SWITCH_CHARACTER_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
movzx edx, byte [0x664447b0]
mov dword [ebp - 0x48c], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x6641577d
call sym.krnl386.exe16_GetCurrentTask
movzx eax, ax
mov dword [esp], eax
call sym.krnl386.exe16_GlobalLock16
push ecx
mov eax, dword [eax + 0x62]
movzx edx, ax
shr eax, 0x10
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.6642fb90
movzx ecx, word [ebx + 0xac]
mov edx, eax
mov dword [ebp - 0x498], eax
movzx eax, word [esi + 0xe]
mov dword [esp + 4], edx
mov dword [esp], edi
mov dword [ebp - 0x49c], ecx
imul eax, ecx
mov dword [ebp - 0x494], eax
mov dword [esp + 8], eax
call dword [sym.imp.kernel32.dll__lwrite]
mov ecx, dword [ebp - 0x49c]
sub esp, 0xc
cmp dword [ebp - 0x494], eax
mov edx, eax
je 0x66417783
movzx edi, byte [0x664447b0]
test edi, 8
jne 0x66417bbb
movzx ecx, word [esi + 0xe]
mov eax, edx
xor edx, edx
div ecx
mov edx, edi
mov edi, 1
and edx, 8
add dword [ebp - 0x48c], eax
movzx ecx, ax
jmp 0x66412e3a
movzx eax, si
mov dword [esp + 0xc], str.Requested_info_on_non_default_country__04x_n
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 0
call fcn.6640d110
jmp 0x66413a24
mov dword [esp + 0xc], str.Direct_Console_Input_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
movzx edx, byte [0x664447b0]
mov dword [ebp - 0x48c], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
jmp 0x664154eb
movzx eax, byte [ebx + 0xa8]
mov dword [esp + 0xc], str.SWITCHAR___SET_SWITCH_CHARACTER:__c_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 0
mov dword [esp + 0x10], eax
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
movzx edx, byte [0x664447b0]
mov dword [ebp - 0x48c], eax
mov eax, dword [ebx + 0xc0]
and eax, 1
jmp 0x66415658
xor esi, esi
jmp 0x66412494
mov dword [esp + 4], edx
mov dword [esp], str._Bad_drive:__d_
call fcn.6640e6c0
jmp 0x66415a68
mov eax, dword [ebx + 0xc0]
mov edx, edi
mov dword [0x66451d50], 0
and edx, 8
and eax, 1
jmp 0x66410fb0
movzx edx, byte [0x664447b0]
test dl, 2
je 0x66410e40
movzx eax, word [ebx + 0x94]
movzx esi, si
mov dword [esp + 0x34], eax
movzx eax, word [ebx + 0x98]
mov dword [esp + 0x30], eax
movzx eax, word [ebx + 0x9c]
mov dword [esp + 0x2c], eax
movzx eax, word [ebx + 0xa0]
mov dword [esp + 0x28], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x24], eax
movzx eax, word [ebx + 0xac]
mov dword [esp + 0x20], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0x21
mov dword [esp + 0x10], 0x21
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], 0x66447e88
mov dword [esp + 8], str.INT21_Ioctl
mov dword [esp + 4], 0x664447b0
mov dword [esp], 1
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
movzx edi, byte [0x664447b0]
test edi, 8
je 0x66414ca5
mov dword [esp + 0xc], str.DR_DOS___DETERMINE_DOS_TYPE_n
mov dword [esp + 8], str.INT21_Ioctl
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
movzx edi, byte [0x664447b0]
mov esi, dword [ebx + 0xb0]
jmp 0x66414ca5
mov edx, dword [esi + 0x11]
mov dword [esp + 4], 0
mov eax, dword fs:[0x18]
mov dword [esp + 8], edx
mov eax, dword [eax + 0x30]
mov eax, dword [eax + 0x18]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_HeapFree]
mov dword [esi + 0x11], 0
mov dword [0x66451d48], 0
sub esp, 0xc
jmp 0x664152fd
mov dword [esp + 0xc], str.GET_MEMORY_ALLOCATION_STRATEGY_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
movzx edx, byte [0x664447b0]
mov dword [ebp - 0x48c], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x6641698d
mov dword [esp + 0xc], str.GET_UMB_LINK_STATE_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xb0]
movzx edx, byte [0x664447b0]
mov dword [ebp - 0x48c], eax
mov eax, dword [ebx + 0xc0]
and edx, 8
and eax, 1
jmp 0x664168c8
mov dword [esp + 0xc], str.GET_AND_SET_EXTENDED_CONTROL_BREAK_CHECKING_STATE_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
movzx edi, byte [0x664447b0]
jmp 0x66413dfb
mov dword [esp + 0xc], str.GET_BOOT_DRIVE_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66413de3
movzx eax, word [ebx + 0x94]
movzx esi, si
mov dword [esp + 0x34], eax
movzx eax, word [ebx + 0x98]
mov dword [esp + 0x30], eax
movzx eax, word [ebx + 0x9c]
mov dword [esp + 0x2c], eax
movzx eax, word [ebx + 0xa0]
mov dword [esp + 0x28], eax
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x24], eax
movzx eax, word [ebx + 0xac]
mov dword [esp + 0x20], eax
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0x18], esi
mov dword [esp + 0x14], 0x21
mov dword [esp + 0x10], 0x21
mov dword [esp + 0x1c], eax
mov dword [esp + 0xc], 0x66447e88
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 1
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66410fb0
mov dword [esp + 0xc], str.GET_CURRENT_EXTENDED_BREAK_STATE_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66413e44
mov dword [esp + 0xc], str.SET_CURRENT_EXTENDED_BREAK_STATE_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
mov eax, dword [ebx + 0xc0]
movzx edx, byte [0x664447b0]
and eax, 1
and edx, 8
jmp 0x66413e79
mov dword [esp + 0xc], str.GET_TRUE_VERSION_NUMBER_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
call fcn.6640d110
jmp 0x66413d79
movzx ecx, byte [ebp - 0x48c]
movzx edx, dx
movzx eax, al
mov dword [esp + 0xc], str.SetSystemDate__02d__02d__04d_:_not_allowed_n
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], eax
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 0x14], ecx
mov dword [esp + 4], 0x664447b0
mov dword [esp], 0
call fcn.6640d110
movzx edi, byte [0x664447b0]
jmp 0x66414e8d
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0xc], str.SET_FILE_CREATION_DATE_AND_TIME__handle__d_n
mov dword [esp + 8], str.INT21_FileDateTime
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6640d110
jmp 0x66413e9d
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0xc], str.GET_FILE_CREATION_DATE_AND_TIME__handle__d_n
mov dword [esp + 8], str.INT21_FileDateTime
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6640d110
jmp 0x66413f90
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0xc], str.GET_FILE_LAST_ACCESS_DATE_AND_TIME__handle__d_n
mov dword [esp + 8], str.INT21_FileDateTime
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6640d110
jmp 0x664140b6
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0xc], str.GET_FILE_LAST_WRITTEN_DATE_AND_TIME__handle__d_n
mov dword [esp + 8], str.INT21_FileDateTime
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6640d110
jmp 0x66413f0d
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0xc], str.SET_FILE_LAST_WRITTEN_DATE_AND_TIME__handle__d_n
mov dword [esp + 8], str.INT21_FileDateTime
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6640d110
jmp 0x664140da
movzx eax, word [ebx + 0xa4]
mov dword [esp + 0xc], str.SET_FILE_LAST_ACCESS_DATE_AND_TIME__handle__d_n
mov dword [esp + 8], str.INT21_FileDateTime
mov dword [esp + 4], 0x664447b0
mov dword [esp], 3
mov dword [esp + 0x10], eax
call fcn.6640d110
jmp 0x66414128
mov eax, dword [ebp - 0x48c]
movzx edx, byte [0x664447b0]
add eax, ecx
and dl, 8
mov dword [ebp - 0x498], eax
jne 0x66418039
mov eax, dword [ebp - 0x498]
xor edi, edi
mov dword [ebp - 0x48c], eax
jmp 0x66412e3a
and eax, 0xfffffffe
mov edx, edi
mov dword [ebx + 0xc0], eax
and edx, 8
jmp 0x66410e43
movzx eax, word [ebx + 0xa8]
mov dword [esp + 0x14], eax
movzx eax, word [ebx + 0xac]
mov dword [esp + 0xc], str.SET_SHARING_RETRY_COUNT:_Pause__d__retries__d._n
mov dword [esp + 8], str.INT21_Ioctl
mov dword [esp + 4], 0x664447b0
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.6640d110
movzx edi, byte [0x664447b0]
jmp 0x664151f4
mov dword [esp + 0xc], str.DR_DOS___DETERMINE_DOS_TYPE__OBSOLETE_FUNCTION__n
jmp 0x6641711f
movzx eax, al
movzx edi, cl
movzx edx, dl
mov dword [esp], 0
mov dword [esp + 0x1c], eax
mov eax, esi
movzx esi, al
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], esi
mov dword [esp + 0xc], str.SetSystemTime__02d:_02d:_02d._02d_:_not_allowed_n
mov dword [esp + 8], str.DOSVM_Int21Handler
mov dword [esp + 4], 0x664447b0
call fcn.6640d110
movzx edi, byte [0x664447b0]
jmp 0x66412869
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], str.Unknown_error__d_n
mov dword [esp + 8], str.INT21_GetExtendedError
mov dword [esp + 4], 0x664447b0
mov dword [esp], 0
mov dword [ebp - 0x490], ecx
call fcn.6640d110
mov ecx, dword [ebp - 0x490]
mov edx, 6
mov byte [ebp - 0x48c], 4
movzx edi, byte [0x664447b0]
jmp 0x66413cd0
mov dword [esp + 0x1c], eax
mov dword [ebp - 0x490], eax
mov eax, dword [ebp - 0x494]
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x498]
mov dword [esp + 0x14], eax
movzx eax, byte [esi + 0x18]
mov dword [esp + 0xc], str._lwrite__d___p___d__failed_with__d_n
mov dword [esp + 8], str.INT21_RandomBlockWriteToFCB
mov dword [esp + 4], 0x664447b0
mov dword [esp + 0x10], eax
mov dword [esp], 3
call fcn.6640d110
movzx edi, byte [0x664447b0]
mov edx, dword [ebp - 0x490]
jmp 0x66416c9a
mov dword [esp + 0x20], edi
movzx eax, byte [esi + 0x18]
xor edi, edi
mov dword [esp + 0xc], str.successful_write__d_bytes_from_record__ld__position__lu__of_file__d__handle__p__n
mov dword [esp + 8], str.INT21_RandomBlockWriteToFCB
mov dword [esp + 4], 0x664447b0
mov dword [esp + 0x1c], eax
mov eax, dword [ebp - 0x490]
mov dword [esp], 3
mov dword [ebp - 0x49c], ecx
mov dword [esp + 0x18], eax
mov eax, dword [ebp - 0x48c]
mov dword [esp + 0x14], eax
mov eax, dword [ebp - 0x494]
mov dword [esp + 0x10], eax
call fcn.6640d110
movzx edx, byte [0x664447b0]
mov eax, dword [ebp - 0x498]
mov ecx, dword [ebp - 0x49c]
and edx, 8
mov dword [ebp - 0x48c], eax
jmp 0x66412e3a