Function at 0x40632e
Capabilities:
Create directory

Disassembly:
push ebp
xor edx, edx
mov ecx, 0xd
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x358]
mov esi, 0x48c0e0
push ebx
sub esp, 0x3cc
mov dword [ebp - 0x3a4], eax
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x394], edx
test eax, eax
je 0x405ff6
lea ebx, [ebp - 0x220]
mov dword [esp + 0x10], 0x496230
mov dword [esp + 0xc], 0x5265a0
mov dword [esp + 8], 0x496236
mov dword [esp + 4], 0x104
mov dword [esp], ebx
call dword [sym.imp.msvcrt.dll__snprintf]
lea eax, [ebp - 0x394]
mov byte [ebp - 0x11d], 0
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0043f190
cmp eax, 0x16ee00
je 0x405a0a
mov dword [esp], str.diskcopy.dll_was_either_not_found_or_is_invalid
call fcn.0043efa9
jmp 0x405fc2
mov eax, dword [ebp - 0x394]
lea ebx, [ebp - 0x324]
mov dword [0x4e21e0], 0x168000
mov edi, ebx
add eax, 0x66d8
mov dword [0x4e21e4], eax
mov eax, dword [ebp - 0x3a4]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov esi, dword [ebp - 0x3a4]
lea ecx, [eax + 1]
mov eax, 0x104
cmp ecx, eax
cmova ecx, eax
mov eax, dword [ebp - 0x3a4]
rep movsb byte es:[edi], byte [esi]
mov esi, 0x103
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea edx, [eax + 1]
cmp edx, 0x104
cmovae eax, esi
mov byte [ebp + eax - 0x324], 0
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 4], str.LOCALE_
mov edx, eax
mov eax, esi
mov dword [esp], ebx
sub eax, edx
mov edx, 8
cmp eax, edx
cmova eax, edx
mov dword [esp + 8], eax
call sub.msvcrt.dll_strncat
xor eax, eax
mov dword [esp], ebx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryA]
push eax
push eax
xor eax, eax
mov dword [ebp - 0x3ac], eax
mov eax, dword [ebp - 0x3ac]
mov edx, dword [0x4e21e4]
mov dword [ebp - 0x3a0], 1
shl eax, 5
lea edi, [eax + 0x2600]
cmp byte [edx + eax + 0x2600], 0xe5
mov dword [ebp - 0x3b0], edi
je 0x405f9d
xor eax, eax
mov dword [ebp - 0x3a8], eax
mov eax, dword [ebp - 0x3b0]
add eax, dword [0x4e21e4]
mov dword [ebp - 0x39c], eax
mov dword [esp + 8], 0xb
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3a8]
mov eax, dword [ebp + eax*4 - 0x358]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
mov dword [ebp - 0x3a0], eax
test eax, eax
jne 0x405f77
cmp dword [ebp - 0x3a8], 2
mov ebx, dword [ebp - 0x3a4]
jle 0x405b4c
lea ebx, [ebp - 0x324]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov ecx, eax
lea eax, [eax + 0xe]
cmp eax, 0x104
jbe 0x405b71
mov dword [esp], str.invalid_path_supplied_for_MS_DOS_FAT_extraction
call fcn.0043efa9
jmp 0x405f51
lea edx, [ebp - 0x11c]
inc ecx
mov esi, ebx
mov edi, edx
rep movsb byte es:[edi], byte [esi]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [eax + 1]
cmp edx, 0x104
mov edx, 0x103
cmovae eax, edx
mov byte [ebp + eax - 0x11c], 0
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov edi, dword [ebp - 0x39c]
lea esi, [eax + 8]
mov edx, eax
sub edi, eax
mov bl, byte [edi + edx]
mov ecx, edx
lea edx, [edx + 1]
cmp bl, 0x20
je 0x405bce
mov byte [ebp + edx - 0x11d], bl
cmp esi, edx
jne 0x405bb4
mov ecx, esi
mov esi, dword [ebp - 0x39c]
mov byte [ebp + ecx - 0x11c], 0x2e
lea edx, [ecx + 1]
lea ebx, [ecx + 4]
sub esi, ecx
mov cl, byte [esi + edx + 7]
cmp cl, 0x20
je 0x405bf9
inc edx
mov byte [ebp + edx - 0x11d], cl
cmp ebx, edx
jne 0x405be4
mov edi, dword [ebp - 0x39c]
mov byte [ebp + edx - 0x11c], 0
lea esi, [ebp - 0x11c]
movzx ebx, word [edi + 0x1a]
mov edi, dword [edi + 0x1c]
add ebx, 0x1f
shl ebx, 9
lea edx, [ebx + edi]
cmp dword [0x4e21e0], edx
jae 0x405c64
mov dword [esp + 0xc], edi
mov dword [esp + 8], ebx
mov dword [esp + 4], esi
mov dword [esp], str.FAT_File__s_would_be_out_of_bounds:__zX___zX
call fcn.0043efa9
mov eax, dword [ebp - 0x39c]
mov eax, dword [eax + 0x1c]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x39c]
movzx eax, word [eax + 0x1a]
mov dword [esp], str._X___X
mov dword [esp + 4], eax
jmp 0x405dc9
add esi, eax
mov dword [esp + 4], 0x4962e7
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x405cde
mov dword [ebp - 0x360], 0x3fa8015
mov dword [ebp - 0x35c], 0xeb81075
mov dword [esp], str.Patching_COMMAND.COM...
call fcn.0043efa9
cmp edi, 0x16b70
jne 0x405d1a
mov esi, dword [0x4e21e4]
lea eax, [ebp - 0x360]
mov dword [esp + 8], 8
mov dword [esp + 4], eax
lea eax, [esi + ebx + 0x650c]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x405d53
mov byte [esi + ebx + 0x6510], 0xeb
jmp 0x405d64
mov dword [esp + 4], str.IO.SYS
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x405d64
mov dword [ebp - 0x360], 0x97580fa
mov dword [ebp - 0x35c], 0x99b68d
mov dword [esp], str.Patching_IO.SYS...
call fcn.0043efa9
cmp edi, 0x1c800
je 0x405d28
mov dword [esp], str.__unexpected_file_size
call fcn.0043efa9
jmp 0x405d64
mov esi, dword [0x4e21e4]
lea eax, [ebp - 0x360]
mov dword [esp + 8], 8
mov dword [esp + 4], eax
lea eax, [esi + ebx + 0x3a8]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x405d5c
mov dword [esp], str.__unexpected_binary_data
jmp 0x405d21
mov byte [esi + ebx + 0x3aa], 0xeb
xor esi, esi
mov dword [esp + 0x18], esi
mov eax, dword [ebp - 0x39c]
movzx eax, byte [eax + 0xb]
mov dword [esp + 0x10], 2
mov dword [esp + 8], 1
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x11c]
mov dword [esp + 4], 0xc0000000
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
sub esp, 0x1c
mov esi, eax
cmp eax, 0xffffffff
jne 0x405dd3
call fcn.0043f53d
mov dword [esp], str.Unable_to_create_file__s:__s.
mov dword [esp + 8], eax
lea eax, [ebp - 0x11c]
mov dword [esp + 4], eax
call fcn.0043efa9
jmp 0x405f51
lea eax, [ebp - 0x390]
mov dword [esp + 0x10], 4
mov dword [esp + 0xc], eax
mov dword [esp + 8], edi
add ebx, dword [0x4e21e4]
mov dword [esp + 4], ebx
lea ebx, [esi - 1]
mov dword [esp], esi
call fcn.00440072
test eax, eax
jne 0x405e39
call fcn.0043f53d
mov dword [esp], str.Could_not_write_file__s:__s.
mov dword [esp + 8], eax
lea eax, [ebp - 0x11c]
mov dword [esp + 4], eax
call fcn.0043efa9
cmp ebx, 0xfffffffd
ja 0x405f51
mov dword [esp], esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push ebx
jmp 0x405f51
mov eax, dword [ebp - 0x39c]
movzx ecx, byte [eax + 0xd]
lea edx, [eax + 0xe]
lea eax, [ebp - 0x388]
call fcn.004057a4
mov eax, dword [ebp - 0x388]
mov edx, dword [ebp - 0x384]
xor ecx, ecx
mov dword [ebp - 0x38c], ecx
xor ecx, ecx
mov dword [ebp - 0x370], eax
mov eax, dword [ebp - 0x39c]
mov dword [ebp - 0x36c], edx
lea edx, [ebp - 0x38c]
mov ax, word [eax + 0x12]
mov word [ebp - 0x38a], ax
lea eax, [ebp - 0x380]
call fcn.004057a4
mov eax, dword [ebp - 0x380]
mov edx, dword [ebp - 0x37c]
xor ecx, ecx
mov dword [ebp - 0x368], eax
mov eax, dword [ebp - 0x39c]
mov dword [ebp - 0x364], edx
lea edx, [eax + 0x16]
lea eax, [ebp - 0x378]
call fcn.004057a4
mov eax, dword [ebp - 0x378]
mov edx, dword [ebp - 0x374]
mov dword [ebp - 0x360], eax
lea eax, [ebp - 0x360]
mov dword [ebp - 0x35c], edx
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x368]
mov dword [esp + 8], eax
lea eax, [ebp - 0x370]
mov dword [esp + 4], eax
mov dword [esp], esi
call dword [sym.imp.KERNEL32.DLL_SetFileTime]
sub esp, 0x10
test eax, eax
jne 0x405f1e
call fcn.0043f53d
mov dword [esp], str.Could_not_set_timestamps:__s_n
mov dword [esp + 4], eax
call fcn.0043efa9
cmp ebx, 0xfffffffd
ja 0x405f2d
mov dword [esp], esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push edx
lea eax, [ebp - 0x11c]
mov dword [esp + 8], edi
mov dword [esp + 4], eax
mov dword [esp], str.Successfully_wrote__s___zu_bytes_
call fcn.0043efa9
mov dword [ebp - 0x3a0], 1
mov edi, dword [ebp - 0x3a8]
mov eax, 0x1084
bt eax, edi
jae 0x405f81
mov dword [esp + 4], 0xbf800000
mov dword [esp], 7
call fcn.0044d497
jmp 0x405f81
mov dword [ebp - 0x3a0], 1
inc dword [ebp - 0x3a8]
cmp dword [ebp - 0x3a8], 0xc
ja 0x405f9d
test byte [ebp - 0x3a0], 1
jne 0x405af6
inc dword [ebp - 0x3ac]
cmp dword [ebp - 0x3ac], 0x3f
jg 0x405fb9
test byte [ebp - 0x3a0], 1
jne 0x405abb
cmp dword [ebp - 0x3a0], 0
jne 0x405fc6
xor eax, eax
jmp 0x405fda
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3a4]
mov dword [esp], eax
call fcn.00406521
mov edx, dword [ebp - 0x394]
mov dword [ebp - 0x39c], eax
mov dword [esp], edx
call sub.msvcrt.dll_free
mov eax, dword [ebp - 0x39c]
jmp 0x405ff8
xor eax, eax
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
push ebp
mov ecx, 0x1b
mov ebp, esp
push edi
push esi
lea edi, [ebp - 0x2f8]
mov esi, 0x48c120
push ebx
sub esp, 0x32c
cmp dword [ebp + 8], 0
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x28c]
mov esi, 0x48c1a0
mov ecx, 0x1b
rep movsd dword es:[edi], dword [esi]
je 0x40604c
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea edx, [eax + 0xe]
cmp edx, 0x104
jbe 0x40605d
mov dword [esp], str.invalid_path_supplied_for_FreeDOS_extraction
call fcn.0043efa9
jmp 0x406250
lea ebx, [ebp - 0x11c]
mov esi, dword [ebp + 8]
lea ecx, [eax + 1]
mov eax, dword [ebp + 8]
mov edi, ebx
rep movsb byte es:[edi], byte [esi]
mov dword [esp], eax
mov esi, 0x103
call sub.msvcrt.dll_strlen
lea edx, [eax + 1]
cmp edx, 0x104
cmovae eax, esi
mov byte [ebp + eax - 0x11c], 0
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov dword [esp + 4], str.LOCALE_
mov edx, eax
mov eax, esi
mov dword [esp], ebx
sub eax, edx
mov edx, 8
cmp eax, edx
cmova eax, edx
xor edi, edi
mov dword [esp + 8], eax
call sub.msvcrt.dll_strncat
mov dword [esp + 4], edi
mov dword [esp], ebx
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryA]
push eax
push eax
xor eax, eax
mov dword [ebp - 0x30c], eax
mov eax, dword [ebp - 0x30c]
xor esi, esi
mov eax, dword [ebp + eax*4 - 0x2f8]
mov dword [ebp - 0x310], eax
lea eax, [ebp - 0x300]
mov dword [esp + 0x14], esi
mov dword [esp + 0x10], eax
mov eax, dword [ebp - 0x310]
mov dword [esp + 8], 0xa
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x30c]
movzx eax, word [ebp + eax*4 - 0x28c]
mov dword [esp + 4], eax
mov eax, dword [0x526d60]
mov dword [esp], eax
call fcn.0043dba5
cmp dword [ebp - 0x30c], 1
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x314], eax
jle 0x406142
lea ebx, [ebp - 0x11c]
mov dword [esp], ebx
mov esi, ebx
lea edi, [ebp - 0x220]
call sub.msvcrt.dll_strlen
lea ecx, [eax + 1]
mov eax, 0x104
cmp ecx, eax
cmova ecx, eax
rep movsb byte es:[edi], byte [esi]
mov dword [esp], ebx
mov edi, 0x103
mov ebx, 1
call sub.msvcrt.dll_strlen
lea edx, [eax + 1]
cmp edx, 0x104
cmovae eax, edi
cmp dword [ebp - 0x310], 0
mov byte [ebp + eax - 0x220], 0
je 0x4061a1
mov eax, dword [ebp - 0x310]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea ebx, [eax + 1]
lea eax, [ebp - 0x220]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edx, eax
mov eax, 0x103
sub eax, edx
cmp eax, ebx
cmova eax, ebx
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x310]
mov dword [esp + 4], eax
lea eax, [ebp - 0x220]
mov dword [esp], eax
call sub.msvcrt.dll_strncat
mov edx, 6
mov eax, pe_nt_image_headers32
cmp dword [ebp - 0x30c], 1
cmovle eax, edx
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x10], 2
mov dword [esp + 0xc], ebx
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x220]
mov dword [esp + 0x18], ecx
mov dword [esp + 8], 1
mov dword [esp + 4], 0xc0000000
mov dword [esp], eax
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
mov ebx, eax
lea eax, [eax - 1]
sub esp, 0x1c
cmp eax, 0xfffffffd
jbe 0x406257
call fcn.0043f53d
mov dword [esp], str.Unable_to_create_file__s:__s.
mov dword [esp + 8], eax
lea eax, [ebp - 0x220]
mov dword [esp + 4], eax
call fcn.0043efa9
xor eax, eax
jmp 0x406326
lea eax, [ebp - 0x2fc]
mov dword [esp + 0x10], 4
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x300]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x314]
mov dword [esp], ebx
mov dword [esp + 4], eax
call fcn.00440072
mov esi, dword [sym.imp.KERNEL32.DLL_CloseHandle]
test eax, eax
jne 0x4062b6
call fcn.0043f53d
mov dword [esp], str.Could_not_write_file__s:__s.
mov dword [esp + 8], eax
lea eax, [ebp - 0x220]
mov dword [esp + 4], eax
call fcn.0043efa9
mov dword [esp], ebx
call esi
push edx
jmp 0x406250
mov dword [esp], ebx
call esi
push eax
mov eax, dword [ebp - 0x300]
mov dword [esp + 8], eax
lea eax, [ebp - 0x220]
mov dword [esp + 4], eax
mov dword [esp], str.Successfully_wrote__s___d_bytes_
call fcn.0043efa9
mov edi, dword [ebp - 0x30c]
mov eax, 0x4410410
bt eax, edi
jae 0x406300
mov dword [esp + 4], 0xbf800000
mov dword [esp], 7
call fcn.0044d497
inc dword [ebp - 0x30c]
cmp dword [ebp - 0x30c], 0x1b
jne 0x4060d6
mov dword [esp + 4], 1
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00406521
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
push ebp
xor eax, eax
mov ebp, esp
push esi
push ebx
sub esp, 0x10
mov ebx, dword [ebp + 8]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
mov dword [esp + 0xc], eax
mov dword [esp + 8], eax
mov dword [esp + 4], 0x147
mov eax, dword [0x526d08]
mov dword [esp], eax
call esi
xor edx, edx
sub esp, 0x10
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], 0x150
mov eax, dword [0x526d08]
mov dword [esp], eax
call esi
sub esp, 0x10
cmp eax, 1
je 0x406395
cmp eax, 2
jne 0x4063a2
mov dword [ebp + 8], ebx
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
jmp 0x406000
lea esp, [ebp - 8]
mov eax, ebx
pop ebx
pop esi
pop ebp
jmp 0x405976
lea esp, [ebp - 8]
xor eax, eax
pop ebx
pop esi
pop ebp
ret