Function at 0x403250
Capabilities:
Create thread
Delete file
Get common file path
Read file on windows
Set file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xd1c
mov eax, dword [0x4b2a8c]
xor eax, esp
mov dword [esp + 0xd18], eax
mov eax, dword [ebp + 0x10]
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
push 1
push 5
mov dword [esp + 0x1c], edi
mov dword [esp + 0x4d4], eax
call fcn.004028b0
push 2
push 5
mov dword [0x4b8004], eax
call fcn.004028b0
xor esi, esi
push esi
push 6
mov dword [0x25f221c], eax
call fcn.004028b0
push esi
push 0xa
mov dword [0x4b806c], eax
call fcn.004028b0
add esp, 0x20
mov dword [0x24c21f8], eax
call dword [sym.imp.KERNEL32.dll_GetConsoleCP]
mov dword [0x4b80cc], eax
call dword [sym.imp.KERNEL32.dll_GetConsoleOutputCP]
mov dword [0x25f2564], eax
call fcn.004848fd
mov ecx, dword [str.msdos.exe]
mov edx, dword [0x4a7030]
mov dword [0x4b801c], eax
mov ax, word [0x4a7034]
push 0x3f4
mov word [esp + 0x500], ax
mov dword [esp + 0x4f8], ecx
mov dword [esp + 0x4fc], edx
lea eax, [esp + 0x80]
lea ecx, [esp + 0x4f8]
lea edx, [esp + 0x504]
push esi
push eax
mov dword [esp + 0x18], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x28], esi
mov byte [esp + 0x1f], 0
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], esi
call fcn.0048f0e0
add esp, 0xc
push 0x104
lea ecx, [esp + 0x714]
push ecx
push esi
mov byte [esp + 0x1e], 0
mov dword [esp + 0x40], esi
mov dword [esp + 0x24], esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x81c]
push eax
push 0x104
lea ecx, [esp + 0x71c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov eax, dword [esp + 0x18]
cmp eax, esi
je 0x403783
push str.msdos.exe
push eax
call fcn.00482e4e
add esp, 8
test eax, eax
je 0x403783
lea edx, [esp + 0x818]
push 0x4a7038
push edx
call fcn.00485737
mov ebx, eax
push str..msdos
mov ecx, ebx
call fcn.004025f0
add esp, 0xc
cmp eax, esi
je 0x40377a
push esi
push eax
push ebx
call fcn.0048899b
add esp, 0xc
push ebx
push 1
lea eax, [esp + 0x4e4]
push 0x11
push eax
call fcn.00485b88
mov al, byte [esp + 0x4ec]
mov cl, al
and cl, 1
mov byte [0x26112df], cl
movzx ecx, al
shr ecx, 2
mov dl, al
shr dl, 1
and dl, 1
and ecx, 1
mov byte [0x26112de], dl
mov dword [esp + 0x48], ecx
mov cl, al
mov dl, al
shr cl, 3
shr dl, 4
and cl, 1
and dl, 1
add esp, 0x10
mov byte [0x26112d6], cl
mov byte [0x26112d7], dl
test al, 0x20
je 0x403452
call fcn.004030b0
mov al, byte [esp + 0x4dc]
test al, 0x40
je 0x403467
mov dword [0x4b34b4], 0xd0000
mov byte [0x26112f0], 1
test al, al
jns 0x403472
mov byte [0x26112f1], 1
mov al, byte [esp + 0x4dd]
mov dl, byte [esp + 0x4de]
mov cl, al
shr al, 1
and cl, 1
and al, 1
mov byte [0x4b5f0d], cl
mov byte [0x26112f2], al
test dl, dl
jne 0x4034a1
cmp byte [esp + 0x4df], dl
je 0x4034da
mov al, byte [esp + 0x4e0]
mov cl, byte [esp + 0x4e1]
test al, al
jne 0x4034b7
test cl, cl
je 0x4034da
movzx esi, byte [esp + 0x4df]
movzx edx, dl
shl esi, 8
or esi, edx
movzx ecx, cl
movzx edx, al
shl ecx, 8
or ecx, edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x1c], ecx
mov al, byte [esp + 0x4e2]
test al, al
je 0x4034f6
mov byte [0x4b34b1], al
mov al, byte [esp + 0x4e3]
mov byte [0x4b34b2], al
mov al, byte [esp + 0x4e4]
test al, al
je 0x403513
mov cl, byte [esp + 0x4e5]
mov byte [0x4b34b3], al
mov byte [0x4b5f0c], cl
movzx esi, byte [esp + 0x4e7]
movzx edx, byte [esp + 0x4e6]
shl esi, 8
or esi, edx
mov dword [esp + 0x34], esi
je 0x403559
cmp dword [0x4b80cc], esi
push esi
setne al
mov byte [0x2610d6d], al
call dword [sym.imp.KERNEL32.dll_SetConsoleCP]
cmp dword [0x25f2564], esi
push esi
setne cl
mov byte [0x2610d6e], cl
call dword [sym.imp.KERNEL32.dll_SetConsoleOutputCP]
movzx esi, byte [esp + 0x4ec]
movzx edx, byte [esp + 0x4eb]
movzx eax, byte [esp + 0x4ea]
movzx ecx, byte [esp + 0x4e9]
movzx edi, byte [esp + 0x4e8]
shl esi, 8
or esi, edx
shl esi, 8
or esi, eax
push 0x104
lea edx, [esp + 0x504]
push 0
shl esi, 8
push edx
or esi, ecx
call fcn.0048f0e0
add esp, 0xc
push ebx
push 1
lea eax, [esp + 0x508]
push edi
push eax
call fcn.00485b88
add esp, 0x10
test edi, edi
je 0x4036da
lea ecx, [esp + 0x500]
push 0
push ecx
call fcn.0048402f
add esp, 8
test eax, eax
jne 0x4036da
mov edi, dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
lea edx, [esp + 0x500]
push edx
push eax
push 0x4a7044
push 0x4a7048
call edi
test eax, eax
je 0x40360c
lea eax, [esp + 0x500]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x403669
lea ecx, [esp + 0x710]
push ecx
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea edx, [esp + 0x500]
push edx
push 0
push 0x4a7044
lea eax, [esp + 0x71c]
push eax
call edi
test eax, eax
je 0x40364c
lea ecx, [esp + 0x500]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x403669
lea edx, [esp + 0x710]
push edx
lea eax, [esp + 0x504]
push str._s_DOSPRG_.TMP
push eax
call fcn.00483265
add esp, 0xc
push ebx
push 1
lea ecx, [esp + 0x4e4]
push 2
push ecx
call fcn.00485b88
push 1
push 0xfffffffffffffffe
push ebx
call fcn.0048899b
add esp, 0x1c
cmp byte [esp + 0x4dc], 0x4d
jne 0x4036bc
cmp byte [esp + 0x4dd], 0x5a
jne 0x4036bc
lea eax, [esp + 0x500]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4036a6
sub eax, edx
mov dword [esp + eax + 0x4fc], 0x4558452e
jmp 0x4036da
lea eax, [esp + 0x500]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4036c6
sub eax, edx
mov dword [esp + eax + 0x4fc], 0x4d4f432e
lea edx, [esp + 0x500]
push 0x4a706c
push edx
call fcn.00485737
add esp, 8
mov edi, eax
test esi, esi
jle 0x40370d
push edi
push ebx
call fcn.004842ce
add esp, 4
push eax
call fcn.00483126
add esp, 8
sub esi, 1
jne 0x4036f5
push edi
call fcn.004895ad
add esp, 4
push 0
push 0x24c20d0
push 0x104
lea eax, [esp + 0x50c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
push 2
push 0x24c20d0
mov byte [0x26112d5], 1
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
mov edx, dword [ebp + 8]
mov eax, 1
cmp edx, eax
jle 0x40376c
mov esi, dword [esp + 0x14]
lea ecx, [eax + 1]
cmp ecx, 0x100
jge 0x40376c
mov edi, dword [esi + eax*4]
mov dword [esp + eax*4 + 0x74], edi
mov eax, ecx
cmp eax, edx
jl 0x403754
lea ecx, [esp + 0x70]
inc edx
mov dword [ebp + 8], edx
mov dword [esp + 0x14], ecx
mov edi, ecx
push ebx
call fcn.004895ad
add esp, 4
mov esi, dword [ebp + 8]
mov ebx, 1
cmp esi, ebx
jle 0x403c8d
mov edx, dword [edi + ebx*4]
push 2
push 0x4a7070
push edx
call fcn.004833d4
add esp, 0xc
test eax, eax
jne 0x4037b6
mov byte [0x26112df], 1
jmp 0x403c7d
mov eax, dword [edi + ebx*4]
push 2
push 0x4a7074
push eax
call fcn.004833d4
add esp, 0xc
test eax, eax
mov eax, dword [edi + ebx*4]
jne 0x403841
add eax, 2
cmp byte [eax], 0
je 0x4037f5
lea edx, [esp + 0x608]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4037e1
mov byte [esp + 0x12], 1
jmp 0x403c7d
mov ecx, dword [str.new_exec_file.exe]
mov edx, dword [0x4a707c]
mov eax, dword [0x4a7080]
mov dword [esp + 0x608], ecx
mov ecx, dword [0x4a7084]
mov dword [esp + 0x60c], edx
mov dx, word [0x4a7088]
mov dword [esp + 0x610], eax
mov dword [esp + 0x614], ecx
mov word [esp + 0x618], dx
mov byte [esp + 0x12], 1
jmp 0x403c7d
push 2
push 0x4a708c
push eax
call fcn.004833d4
add esp, 0xc
test eax, eax
jne 0x403886
mov eax, dword [edi + ebx*4]
lea ecx, [eax + 2]
mov al, byte [ecx]
cmp al, 0x30
jl 0x403877
cmp al, 0x39
jg 0x403877
push ecx
call fcn.004841e3
add esp, 4
mov dword [esp + 0x34], eax
jmp 0x403c7d
call dword [sym.imp.KERNEL32.dll_GetConsoleCP]
mov dword [esp + 0x34], eax
jmp 0x403c7d
mov ecx, dword [edi + ebx*4]
push 2
push 0x4a7090
push ecx
call fcn.004833d4
add esp, 0xc
test eax, eax
jne 0x4038a9
mov byte [0x26112de], 1
jmp 0x403c7d
mov edx, dword [edi + ebx*4]
push 2
push 0x4a7094
push edx
call fcn.004833d4
add esp, 0xc
test eax, eax
jne 0x4038d2
mov eax, 1
add dword [esp + 0xc], eax
mov dword [esp + 0x38], eax
jmp 0x403c81
mov eax, dword [edi + ebx*4]
push 2
push 0x4a7098
push eax
call fcn.004833d4
add esp, 0xc
test eax, eax
jne 0x4038f5
mov byte [0x26112d6], 1
jmp 0x403c7d
mov ecx, dword [edi + ebx*4]
push 2
push 0x4a709c
push ecx
call fcn.004833d4
add esp, 0xc
test eax, eax
jne 0x403918
mov byte [0x26112d7], 1
jmp 0x403c7d
mov edx, dword [edi + ebx*4]
push 2
push 0x4a70a0
push edx
call fcn.004833d4
add esp, 0xc
test eax, eax
jne 0x403998
mov edx, dword [edi + ebx*4]
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x20]
push ecx
add edx, 2
push str._d__d
push edx
call fcn.00483667
add esp, 0x10
cmp eax, 1
je 0x403970
cmp eax, 2
je 0x403961
mov dword [esp + 0x1c], 0
jmp 0x403970
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x403970
cmp eax, 0x7fff
jle 0x403978
mov dword [esp + 0x28], 0x50
mov eax, dword [esp + 0x1c]
test eax, eax
jle 0x40398b
cmp eax, 0x7fff
jle 0x403c7d
mov dword [esp + 0x1c], 0x19
jmp 0x403c7d
mov eax, dword [edi + ebx*4]
push 2
push 0x4a70ac
push eax
call fcn.004833d4
add esp, 0xc
test eax, eax
jne 0x403a97
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx + ebx*4]
lea edi, [eax + 2]
mov al, byte [edi]
cmp al, 0x30
jl 0x403a65
cmp al, 0x39
jg 0x403a65
push 0x2c
push edi
call fcn.00484060
mov esi, eax
add esp, 8
test esi, esi
je 0x403a57
mov cl, byte [esi + 1]
cmp cl, 0x30
lea eax, [esi + 1]
jl 0x403a57
cmp cl, 0x39
jg 0x403a57
push eax
call fcn.004841e3
add esp, 4
push 0x2c
push esi
mov dword [0x26112f8], eax
call fcn.00484060
mov esi, eax
add esp, 8
test esi, esi
je 0x403a57
mov cl, byte [esi + 1]
cmp cl, 0x30
lea eax, [esi + 1]
jl 0x403a57
cmp cl, 0x39
jg 0x403a57
push eax
call fcn.004841e3
add esp, 4
push 0x2c
push esi
mov dword [0x26112fc], eax
call fcn.00484060
add esp, 8
test eax, eax
je 0x403a57
lea ecx, [eax + 1]
mov al, byte [ecx]
cmp al, 0x30
jl 0x403a57
cmp al, 0x39
jg 0x403a57
push ecx
call fcn.004841e3
add esp, 4
mov dword [0x2611300], eax
push edi
call fcn.004841e3
add esp, 4
mov dword [0x26112f4], eax
cmp dword [0x26112f4], 0
je 0x403a89
cmp dword [0x26112f8], 0
je 0x403a89
cmp dword [0x26112fc], 0
je 0x403a89
cmp dword [0x2611300], 0
jne 0x403a8e
call fcn.004030b0
mov edi, dword [esp + 0x14]
jmp 0x403c7d
mov edx, dword [edi + ebx*4]
push 2
push 0x4a70b0
push edx
call fcn.004833d4
add esp, 0xc
test eax, eax
jne 0x403b56
mov ecx, dword [edi + ebx*4]
mov eax, ecx
lea esi, [eax + 1]
lea ebx, [ebx]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x403ac0
sub eax, esi
cmp eax, 5
jb 0x403c7d
mov dl, byte [ecx + 2]
cmp dl, 0x30
jl 0x403c7d
cmp dl, 0x39
jg 0x403c7d
cmp byte [ecx + 3], 0x2e
jne 0x403c7d
mov al, byte [ecx + 4]
cmp al, 0x30
jl 0x403c7d
cmp al, 0x39
jg 0x403c7d
mov cl, byte [ecx + 5]
test cl, cl
je 0x403b1d
cmp cl, 0x30
jl 0x403c7d
cmp cl, 0x39
jg 0x403c7d
sub dl, 0x30
mov byte [0x4b34b1], dl
test cl, cl
je 0x403b42
sub al, 0x30
mov dl, 0xa
imul dl
movsx ecx, cl
sub ecx, 0x30
add al, cl
mov byte [0x4b34b2], al
jmp 0x403c7d
sub al, 0x30
mov dl, 0xa
imul dl
xor ecx, ecx
add al, cl
mov byte [0x4b34b2], al
jmp 0x403c7d
mov eax, dword [edi + ebx*4]
push 2
push 0x4a70b4
push eax
call fcn.004833d4
add esp, 0xc
test eax, eax
jne 0x403c10
mov ecx, dword [edi + ebx*4]
mov eax, ecx
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x403b80
sub eax, esi
cmp eax, 5
jb 0x403c7d
mov dl, byte [ecx + 2]
cmp dl, 0x30
jl 0x403c7d
cmp dl, 0x39
jg 0x403c7d
cmp byte [ecx + 3], 0x2e
jne 0x403c7d
mov al, byte [ecx + 4]
cmp al, 0x30
jl 0x403c7d
cmp al, 0x39
jg 0x403c7d
mov cl, byte [ecx + 5]
test cl, cl
je 0x403bdd
cmp cl, 0x30
jl 0x403c7d
cmp cl, 0x39
jg 0x403c7d
sub dl, 0x30
mov byte [0x4b34b3], dl
test cl, cl
je 0x403bff
sub al, 0x30
mov dl, 0xa
imul dl
movsx ecx, cl
sub ecx, 0x30
add al, cl
mov byte [0x4b5f0c], al
jmp 0x403c7d
sub al, 0x30
mov dl, 0xa
imul dl
xor ecx, ecx
add al, cl
mov byte [0x4b5f0c], al
jmp 0x403c7d
mov eax, dword [edi + ebx*4]
push 2
push 0x4a70b8
push eax
call fcn.004833d4
add esp, 0xc
test eax, eax
jne 0x403c41
mov dword [0x4b34b4], 0xd0000
mov byte [0x26112f0], 1
mov byte [0x26112f1], 1
jmp 0x403c7d
mov ecx, dword [edi + ebx*4]
push 2
push 0x4a70bc
push ecx
call fcn.004833d4
add esp, 0xc
test eax, eax
jne 0x403c5f
mov byte [0x4b5f0d], al
jmp 0x403c7d
mov edx, dword [edi + ebx*4]
push 2
push 0x4a70c0
push edx
call fcn.004833d4
add esp, 0xc
test eax, eax
jne 0x403c8d
mov byte [0x26112f2], 1
inc dword [esp + 0xc]
mov esi, dword [ebp + 8]
inc ebx
cmp ebx, esi
jl 0x403793
mov eax, dword [esp + 0xc]
add eax, 2
cmp esi, eax
jge 0x403d1d
push str.MS_DOS_Player__ia32__for_Win32_console_n_n
call fcn.00483d66
add eax, 0x40
push eax
call fcn.00485ba5
add esp, 8
push str.Usage:_MSDOS___b____c__new_exec_file_____p_P______d____e____i____m____n_L__C____n_______________s_P1__P2__P3__P4________vX.XX____wX.XX____x____a____l__n______________command___options__n_n_t_b_tstay_busy_during_keyboard_polling_n_t_c_tconvert_command_file_to_32bit_execution_file_n_t_p_trecord_current_code_page_when_convert_command_file_n_t_d_tpretend_running_under_straight_DOS__not_Windows_n_t_e_tuse_a_reduced_environment_block_n_t_i_tignore_invalid_instructions_n_t_m_trestrict_free_memory_to_0x7FFF_paragraphs_n_t_n_tcreate_a_new_buffer__25_lines__80_columns_by_default__n_t_s_tenable_serial_I_O_and_set_hosts_COM_port_numbers_n_t_v_tset_the_DOS_version_n_t_w_tset_the_Windows_version_n_t_x_tenable_LIM_EMS__VCPI__and_XMS_n_t_a_tdisable_ANSI.SYS_n_t_l_tdraw_box_lines_with_ank_characters_n
call fcn.00483d66
add eax, 0x40
push eax
call fcn.00485ba5
add esp, 8
call fcn.00402810
test al, al
jne 0x403d03
push str._nStart_this_program_from_a_command_prompt__n_nHit_any_key_to_quit...
call fcn.00483d66
add eax, 0x40
push eax
call fcn.00485ba5
add esp, 8
call fcn.0048901f
test eax, eax
jne 0x403d03
mov esi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xa
call esi
call fcn.0048901f
test eax, eax
je 0x403cf6
mov eax, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0xd18]
xor ecx, esp
call fcn.00482caa
mov esp, ebp
pop ebp
ret
cmp byte [esp + 0x12], 0
je 0x40434f
cmp dword [esp + 0x18], 0
mov dword [0x26112ac], 1
je 0x404a68
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x14]
mov ecx, dword [ecx + ebx*4 + 4]
xor edi, edi
mov eax, ecx
mov dword [esp + 0x30], edi
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x403d54
sub eax, esi
mov esi, eax
cmp esi, 4
jle 0x404334
lea edx, [ecx + esi - 4]
push str..COM
push edx
call fcn.00482e4e
add esp, 8
test eax, eax
je 0x403da0
mov eax, dword [esp + 0x14]
mov ecx, dword [eax + ebx*4 + 4]
lea edx, [ecx + esi - 4]
push str..EXE
push edx
call fcn.00482e4e
add esp, 8
test eax, eax
jne 0x404334
lea eax, [esp + 0x818]
push 0x4a7038
push eax
call fcn.00485737
mov esi, eax
add esp, 8
mov dword [esp + 0x4cc], esi
test esi, esi
jne 0x403dcb
mov ecx, dword [esp + 0x18]
jmp 0x403ed5
push str..msdos
mov ecx, esi
call fcn.004025f0
add esp, 4
test eax, eax
je 0x403e8a
push 0
push eax
push esi
call fcn.0048899b
add esp, 0xc
push esi
push 1
lea edx, [esp + 0x4d4]
push 0xe
push edx
call fcn.00485b88
push 0x104
lea eax, [esp + 0x724]
push 0
push eax
call fcn.0048f0e0
movzx ecx, byte [esp + 0x4f1]
add esp, 0x1c
push esi
push 1
push ecx
lea edx, [esp + 0x71c]
push edx
call fcn.00485b88
mov eax, dword [esp + 0x28]
add esp, 0x10
push eax
lea ecx, [esp + 0x714]
push ecx
push str.Command_file__s_was_already_embedded_to__s_n
call fcn.00483d66
add eax, 0x40
push eax
call fcn.00485ba5
add esp, 0x10
test esi, esi
je 0x403e63
push esi
call fcn.004895ad
add esp, 4
mov eax, dword [esp + 0x30]
test eax, eax
je 0x403e74
push eax
call fcn.004895ad
add esp, 4
test edi, edi
je 0x404a68
push edi
call fcn.004895ad
add esp, 4
jmp 0x404a68
mov edx, dword [esp + 0x14]
mov eax, dword [edx + ebx*4 + 4]
push 0x4a7038
push eax
call fcn.00485737
add esp, 8
mov dword [esp + 0x30], eax
test eax, eax
jne 0x403eb3
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + ebx*4 + 4]
push edx
jmp 0x403ed6
lea eax, [esp + 0x608]
push 0x4a706c
push eax
call fcn.00485737
mov edi, eax
add esp, 8
test edi, edi
jne 0x403ef1
lea ecx, [esp + 0x608]
push ecx
push str.Cant_open__s_n
call fcn.00483d66
add eax, 0x40
push eax
call fcn.00485ba5
add esp, 0xc
jmp 0x403e56
push 0
push 0
push esi
call fcn.0048899b
add esp, 0xc
push esi
push 1
lea edx, [esp + 0x928]
push 0x400
push edx
call fcn.00485b88
mov eax, dword [esp + 0x96c]
lea ecx, [esp + eax + 0x934]
lea ebx, [eax + 0x18]
movzx eax, word [ecx + 0x10]
mov dword [esp + 0x70], ecx
movzx ecx, word [ecx + 2]
add eax, ebx
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*8]
lea edx, [esp + ebx + 0x930]
mov ebx, dword [esp + ecx + 0x91c]
lea ecx, [esp + ecx + 0x908]
mov dword [esp + 0x7c], eax
mov eax, dword [ecx + 0x10]
mov dword [esp + 0x34], edx
mov dword [esp + 0x4c], ecx
mov ecx, dword [edx + 0x20]
add ebx, eax
xor edx, edx
mov dword [esp + 0x30], eax
div ecx
add esp, 0x10
mov dword [esp + 0x58], ebx
test edx, edx
je 0x403f7a
sub ecx, edx
add dword [esp + 0x20], ecx
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 0xc]
add eax, dword [esp + 0x20]
push 0
push 0
push esi
mov dword [esp + 0x48], eax
call fcn.0048899b
add esp, 0xc
test ebx, ebx
jbe 0x403fc1
lea ebx, [ebx]
push esi
call fcn.004842ce
add esp, 4
push edi
cmp eax, 0xffffffff
je 0x403fb2
push eax
jmp 0x403fb4
push 0
call fcn.00483126
add esp, 8
sub ebx, 1
jne 0x403fa0
xor bl, bl
xor al, al
cmp byte [0x26112df], bl
je 0x403fcf
mov al, 1
cmp byte [0x26112de], 0
je 0x403fda
or al, 2
cmp dword [esp + 0x38], 0
je 0x403fe3
or al, 4
cmp byte [0x26112d6], 0
je 0x403fee
or al, 8
cmp byte [0x26112d7], 0
je 0x403ff9
or al, 0x10
cmp dword [0x26112f4], 0
jne 0x40401d
cmp dword [0x26112f8], 0
jne 0x40401d
cmp dword [0x26112fc], 0
jne 0x40401d
cmp dword [0x2611300], 0
je 0x40401f
or al, 0x20
cmp byte [0x26112f0], 0
je 0x40402a
or al, 0x40
cmp byte [0x26112f1], 0
je 0x404035
or al, 0x80
cmp byte [0x4b5f0d], 0
je 0x404040
mov bl, 1
cmp byte [0x26112f2], 0
je 0x40404c
or bl, 2
movzx eax, al
push edi
push eax
call fcn.00483126
movzx ecx, bl
push edi
push ecx
call fcn.00483126
mov edx, dword [esp + 0x38]
and edx, 0xff
push edi
push edx
call fcn.00483126
mov eax, dword [esp + 0x40]
sar eax, 8
and eax, 0xff
push edi
push eax
call fcn.00483126
mov ecx, dword [esp + 0x3c]
and ecx, 0xff
push edi
push ecx
call fcn.00483126
mov edx, dword [esp + 0x44]
sar edx, 8
and edx, 0xff
push edi
push edx
call fcn.00483126
movzx eax, byte [0x4b34b1]
push edi
push eax
call fcn.00483126
movzx ecx, byte [0x4b34b2]
push edi
push ecx
call fcn.00483126
movzx edx, byte [0x4b34b3]
add esp, 0x40
push edi
push edx
call fcn.00483126
movzx eax, byte [0x4b5f0c]
push edi
push eax
call fcn.00483126
mov esi, dword [esp + 0x44]
mov ecx, esi
and ecx, 0xff
push edi
push ecx
call fcn.00483126
shr esi, 8
push edi
and esi, 0xff
push esi
call fcn.00483126
mov ecx, dword [esp + 0x34]
add esp, 0x20
lea edx, [esp + 0x18]
push edx
mov edx, dword [esp + 0x10]
lea eax, [esp + 0x81c]
push eax
mov eax, dword [ecx + edx*4 + 4]
push 0x104
push eax
call dword [sym.imp.KERNEL32.dll_GetFullPathNameA]
mov eax, dword [esp + 0x18]
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x404136
mov ebx, dword [esp + 0x30]
push 2
sub eax, ecx
mov esi, eax
push 0
push ebx
mov dword [esp + 0x2c], esi
call fcn.0048899b
add esp, 0xc
push ebx
call fcn.00486843
add esp, 4
push edi
push esi
mov ebx, eax
call fcn.00483126
mov ecx, ebx
and ecx, 0xff
push edi
push ecx
call fcn.00483126
mov edx, ebx
sar edx, 8
and edx, 0xff
push edi
push edx
call fcn.00483126
mov eax, ebx
sar eax, 0x10
and eax, 0xff
push edi
push eax
call fcn.00483126
mov ecx, ebx
sar ecx, 0x18
and ecx, 0xff
push edi
push ecx
call fcn.00483126
mov edx, dword [esp + 0x40]
push edi
push 1
push esi
push edx
call fcn.004865a5
mov eax, dword [esp + 0x68]
push 0
push 0
push eax
call fcn.0048899b
add esp, 0x44
test ebx, ebx
jle 0x4041f6
mov esi, ebx
mov ecx, dword [esp + 0x30]
push ecx
call fcn.004842ce
add esp, 4
push edi
cmp eax, 0xffffffff
je 0x4041e7
push eax
jmp 0x4041e9
push 0
call fcn.00483126
add esp, 8
sub esi, 1
jne 0x4041d1
mov edx, dword [esp + 0x60]
movzx eax, word [edx + 2]
mov esi, dword [esp + 0x6c]
movzx ecx, ax
inc eax
mov word [edx + 2], ax
mov edx, dword [str..msdos]
xor eax, eax
lea ecx, [ecx + ecx*4]
lea esi, [esi + ecx*8]
mov ecx, dword [esp + 0x3c]
mov dword [esp + esi + 0x924], eax
lea esi, [esp + esi + 0x920]
mov dword [esi + 8], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov ax, word [0x4a7040]
mov dword [esi], edx
mov edx, dword [esp + 0x58]
mov word [esi + 4], ax
mov eax, dword [esp + 0x20]
mov dword [esi + 0xc], ecx
mov ecx, dword [esp + 0x24]
lea eax, [ebx + eax + 0xe]
mov dword [esi + 0x14], edx
mov dword [esi + 0x10], eax
mov dword [esi + 0x24], 0x2000040
mov ecx, dword [ecx + 0x24]
xor edx, edx
div ecx
test edx, edx
je 0x4042b9
sub ecx, edx
mov dword [esp + 0x20], ecx
mov ebx, 0
je 0x4042b2
lea ebx, [ebx]
cmp ebx, 2
push edi
jge 0x404295
mov edx, ebx
and edx, 0xf
movsx eax, byte [edx + str.PADDINGXXPADDING]
push eax
jmp 0x4042a3
lea ecx, [ebx - 2]
and ecx, 0xf
movsx edx, byte [ecx + str.PADDINGXXPADDING]
push edx
call fcn.00483126
inc ebx
add esp, 8
cmp ebx, dword [esp + 0x20]
jb 0x404280
mov eax, dword [esp + 0x20]
add dword [esi + 0x10], eax
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x24]
mov dword [esi + 8], ecx
mov esi, dword [edx + 0x20]
xor edx, edx
mov eax, ecx
div esi
test edx, edx
je 0x4042d4
sub esi, edx
add ecx, esi
mov eax, dword [esp + 0x24]
add dword [eax + 0x38], ecx
push 0
push 0
push edi
call fcn.0048899b
add esp, 0xc
push edi
push 1
lea eax, [esp + 0x928]
push 0x400
push eax
call fcn.004865a5
add esp, 0x10
lea ecx, [esp + 0x608]
push ecx
push str._s_is_successfully_created_n
call fcn.00483d66
add eax, 0x40
push eax
call fcn.00485ba5
mov esi, dword [esp + 0x4d8]
add esp, 0xc
mov dword [0x26112ac], 0
jmp 0x403e56
push str.Specify_command_file_with_extenstion__.COM_or_.EXE__n
call fcn.00483d66
add eax, 0x40
push eax
call fcn.00485ba5
add esp, 8
jmp 0x404a68
mov edi, dword [sym.imp.KERNEL32.dll_GetStdHandle]
push 0xfffffffffffffff5
call edi
push 0x26112b4
push 0xfffffffffffffff6
mov esi, eax
call edi
push eax
call dword [sym.imp.KERNEL32.dll_GetConsoleMode]
lea edx, [esp + 0x40]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
test eax, eax
lea eax, [esp + 0x64]
push eax
push esi
setne byte [esp + 0x1a]
call dword [sym.imp.KERNEL32.dll_GetConsoleCursorInfo]
test eax, eax
lea esi, [esp + 0x470]
setne byte [esp + 0x2e]
call fcn.00402ae0
mov ecx, dword [esp + 0x68]
movsx edx, word [esp + 0x47a]
mov dword [0x4b8be4], ecx
mov dword [0x4b80d8], ecx
mov ecx, 0x15
mov edi, 0x4b8070
rep movsd dword es:[edi], dword [esi]
movsx ecx, word [esp + 0x478]
mov dword [0x4b60dc], ecx
movsx ecx, word [0x4b8008]
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x64]
add ecx, ecx
mov dword [0x4b8be0], eax
mov dword [0x4b80d4], eax
mov dword [0x4b60e0], edx
add ecx, ecx
mov esi, 0x24c2202
mov edi, 0x100
mov eax, esi
mov edx, 0x80
mov byte [eax - 2], 0x20
mov ebx, 7
mov word [eax], bx
add eax, 4
sub edx, 1
jne 0x404403
add esi, ecx
sub edi, 1
jne 0x4043fc
cmp byte [esp + 0x12], 0
mov ebx, dword [esp + 0x4c]
je 0x4044f6
movsx eax, word [esp + 0x50]
movsx ecx, word [esp + 0x40]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
movsx edx, bx
sub eax, edx
inc eax
cmp ecx, 0x100
mov dword [0x4b8bdc], ecx
mov dword [0x4b802c], eax
jg 0x404486
cmp eax, 0x80
jg 0x404486
mov edx, eax
imul edx, ecx
add edx, edx
cmp edx, 0x7fd0
jg 0x404486
test esi, esi
je 0x404476
cmp esi, ecx
jne 0x404486
test edi, edi
je 0x40450b
cmp edi, eax
je 0x40450b
mov edx, esi
test esi, esi
jne 0x40448e
mov edx, ecx
cmp edx, 0x100
jge 0x40449e
test esi, esi
je 0x4044a9
mov ecx, esi
jmp 0x4044a3
mov ecx, 0x100
mov dword [0x4b8bdc], ecx
mov edx, edi
test edi, edi
jne 0x4044b1
mov edx, eax
cmp edx, 0x80
jge 0x4044c1
test edi, edi
je 0x4044cb
mov eax, edi
jmp 0x4044c6
mov eax, 0x80
mov dword [0x4b802c], eax
mov edx, eax
imul edx, ecx
add edx, edx
cmp edx, 0x7fd0
jle 0x4044ef
mov ecx, 0x50
mov eax, 0x19
mov dword [0x4b8bdc], ecx
mov dword [0x4b802c], eax
mov byte [esp + 0x13], 1
jmp 0x40450b
mov ecx, 0x50
mov eax, 0x19
mov dword [0x4b8bdc], ecx
mov dword [0x4b802c], eax
movsx edx, bx
mov word [0x4b8008], cx
xor ecx, ecx
mov word [0x4b800a], ax
xor eax, eax
push 0x8000
mov word [0x4b803a], ax
mov word [0x4b8038], cx
mov dword [0x25f2560], edx
mov byte [0x4b800e], cl
mov byte [0x4b8033], cl
call dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push eax
call dword [sym.imp.KERNEL32.dll_SetPriorityClass]
mov edi, dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
push 0x25f2200
call edi
push 0x4b8054
call edi
push 0x4b803c
call edi
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
push 0x14
mov dword [0x25f2220], eax
call fcn.00489b34
mov esi, eax
add esp, 4
test esi, esi
je 0x4045a9
push 0x400
mov dword [esi], 0x100
call fcn.00483bad
add esp, 4
xor ebx, ebx
mov dword [esi + 4], eax
mov dword [esi + 0x10], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 8], ebx
jmp 0x4045ad
xor esi, esi
xor ebx, ebx
push 0x14
mov dword [0x26112bc], esi
call fcn.00489b34
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x4045e4
push 0x400
mov dword [esi], 0x100
call fcn.00483bad
add esp, 4
mov dword [esi + 4], eax
mov dword [esi + 0x10], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 8], ebx
jmp 0x4045e6
xor esi, esi
push 0x14
mov dword [0x26112c0], esi
call fcn.00489b34
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x40461d
push 0x400
mov dword [esi], 0x100
call fcn.00483bad
add esp, 4
mov dword [esi + 4], eax
mov dword [esi + 0x10], ebx
mov dword [esi + 0xc], ebx
mov dword [esi + 8], ebx
jmp 0x40461f
xor esi, esi
mov dword [0x26112c4], esi
call fcn.00425580
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x4cc]
mov edx, dword [esp + 0x14]
push eax
push ecx
mov ecx, dword [esp + 0x14]
lea eax, [edx + ecx*4 + 4]
push eax
mov eax, dword [ebp + 8]
sub eax, ecx
dec eax
push eax
call fcn.00423860
add esp, 0x10
test eax, eax
je 0x404666
mov dword [0x26112ac], 1
jmp 0x404983
push 0x460580
call fcn.00486083
add esp, 4
push 1
push 0x4023a0
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
cmp byte [esp + 0x13], 0
je 0x40469b
mov ecx, dword [0x4b8bdc]
mov eax, dword [0x4b802c]
push ecx
call fcn.00404a90
add esp, 4
push 8
lea edx, [esp + 0x5c]
push edx
call dword [sym.imp.WINMM.dll_timeGetDevCaps]
mov eax, dword [esp + 0x58]
push eax
call dword [sym.imp.WINMM.dll_timeBeginPeriod]
push 0x4b8bc0
call edi
push ebx
push ebx
push ebx
push 0x402510
push 0x1000
push ebx
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
call fcn.00425670
call fcn.00401d70
push 0x4b8bc0
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov ecx, dword [esp + 0x58]
push ecx
call dword [sym.imp.WINMM.dll_timeEndPeriod]
push 0xfffffffffffffff5
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
cmp byte [0x2610d6f], 0
mov esi, eax
je 0x40471e
mov edx, dword [0x4b801c]
push edx
mov byte [0x2610d6f], 0
call fcn.0048493b
add esp, 4
cmp byte [0x2610d6d], 0
je 0x40473a
mov eax, dword [0x4b80cc]
push eax
mov byte [0x2610d6d], 0
call dword [sym.imp.KERNEL32.dll_SetConsoleCP]
cmp byte [0x2610d6e], 0
je 0x404757
mov ecx, dword [0x25f2564]
push ecx
mov byte [0x2610d6e], 0
call dword [sym.imp.KERNEL32.dll_SetConsoleOutputCP]
cmp byte [esp + 0x12], 0
mov edi, dword [sym.imp.KERNEL32.dll_SetConsoleWindowInfo]
je 0x404887
cmp byte [0x26112b2], 0
je 0x404887
lea edx, [esp + 0x4dc]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_GetConsoleScreenBufferInfo]
movsx eax, word [esp + 0x4a]
movsx ecx, word [esp + 0x4e]
movsx edx, word [esp + 0x4e6]
sub ecx, eax
lea eax, [ecx + 1]
movsx ecx, word [esp + 0x4ea]
sub ecx, edx
inc ecx
cmp ecx, eax
mov dword [esp + 0x24], ecx
jl 0x4047b2
mov dword [esp + 0x24], eax
movsx eax, word [esp + 0x4c]
movsx ecx, word [esp + 0x50]
movsx ebx, word [esp + 0x4ec]
sub ecx, eax
mov eax, dword [esp + 0x4e8]
movsx edx, ax
sub ebx, edx
inc ecx
lea edx, [ebx + 1]
cmp edx, ecx
jge 0x4047dc
mov ecx, edx
xor edx, edx
mov word [esp + 0x4ce], ax
lea eax, [ecx + eax - 1]
lea ecx, [esp + 0x4cc]
mov word [esp + 0x4cc], dx
mov edx, dword [esp + 0x24]
push ecx
push 1
dec edx
push esi
mov word [esp + 0x4dc], dx
mov word [esp + 0x4de], ax
call edi
mov edx, dword [esp + 0x40]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_SetConsoleScreenBufferSize]
mov edx, dword [esp + 0x4e]
sub edx, dword [esp + 0x4a]
xor ecx, ecx
xor eax, eax
mov word [esp + 0x4ce], cx
mov word [esp + 0x4cc], ax
mov eax, dword [esp + 0x50]
sub eax, dword [esp + 0x4c]
lea ecx, [esp + 0x4cc]
push ecx
push 1
push esi
mov word [esp + 0x4dc], dx
mov word [esp + 0x4de], ax
call edi
test eax, eax
jne 0x404885
push 5
push eax
push eax
push eax
push eax
push eax
call fcn.00402a00
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
lea edx, [esp + 0x4cc]
push edx
push 1
push esi
call edi
xor ebx, ebx
cmp byte [esp + 0x2f], 0
je 0x4048a7
cmp byte [0x26112b8], 0
je 0x4048a7
lea eax, [esp + 0x470]
push eax
call fcn.00402cc0
add esp, 4
cmp byte [esp + 0x12], 0
je 0x404938
cmp byte [0x26112b2], 0
je 0x40492c
mov ecx, dword [esp + 0x40]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_SetConsoleScreenBufferSize]
mov ecx, dword [esp + 0x4e]
sub ecx, dword [esp + 0x4a]
xor eax, eax
xor edx, edx
mov word [esp + 0x4ce], ax
mov word [esp + 0x4cc], dx
mov edx, dword [esp + 0x50]
sub edx, dword [esp + 0x4c]
lea eax, [esp + 0x4cc]
push eax
push 1
push esi
mov word [esp + 0x4dc], cx
mov word [esp + 0x4de], dx
call edi
test eax, eax
jne 0x40492c
push 5
push ebx
push ebx
push ebx
push ebx
push ebx
call fcn.00402a00
push eax
call dword [sym.imp.USER32.dll_SetWindowPos]
lea ecx, [esp + 0x4cc]
push ecx
push 1
push esi
call edi
mov edx, dword [esp + 0x48]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_SetConsoleTextAttribute]
cmp byte [esp + 0x2e], 0
je 0x404954
cmp byte [0x26112b3], 0
je 0x404954
lea eax, [esp + 0x64]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SetConsoleCursorInfo]
mov eax, dword [0x26112b4]
test al, 0x60
je 0x404962
or eax, 0x80
push eax
push 0xfffffffffffffff6
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
push eax
call dword [sym.imp.KERNEL32.dll_SetConsoleMode]
call fcn.00425530
push ebx
push 0x4023a0
call dword [sym.imp.KERNEL32.dll_SetConsoleCtrlHandler]
cmp byte [0x26112d5], 0
je 0x40499e
push 0x24c20d0
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov byte [0x26112d5], 0
mov esi, 0x26110cc
mov eax, dword [esi]
cmp eax, ebx
je 0x4049b4
push eax
call fcn.004838e2
add esp, 4
mov dword [esi], ebx
add esi, 0x14
cmp esi, 0x26111f8
jle 0x4049a3
call fcn.004266c0
call fcn.00427170
mov esi, dword [0x26112bc]
cmp esi, ebx
je 0x4049f5
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x4049e6
push eax
call fcn.004838e2
add esp, 4
mov dword [esi + 4], ebx
push esi
call fcn.00485d61
add esp, 4
mov dword [0x26112bc], ebx
mov esi, dword [0x26112c0]
cmp esi, ebx
je 0x404a21
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x404a12
push eax
call fcn.004838e2
add esp, 4
mov dword [esi + 4], ebx
push esi
call fcn.00485d61
add esp, 4
mov dword [0x26112c0], ebx
mov esi, dword [0x26112c4]
cmp esi, ebx
je 0x404a4d
mov eax, dword [esi + 4]
cmp eax, ebx
je 0x404a3e
push eax
call fcn.004838e2
add esp, 4
mov dword [esi + 4], ebx
push esi
call fcn.00485d61
add esp, 4
mov dword [0x26112c4], ebx
mov esi, dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
push 0x25f2200
call esi
push 0x4b8054
call esi
push 0x4b803c
call esi
mov ecx, dword [esp + 0xd24]
mov eax, dword [0x26112ac]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00482caa
mov esp, ebp
pop ebp
ret