Function at 0x405fda
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, 0x4890e0
push ebx
sub esp, 0x3cc
mov dword [ebp - 0x3a8], eax
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x394], edx
test eax, eax
je 0x405d73
lea ebx, [ebp - 0x220]
mov dword [esp + 0x14], 0x493240
mov dword [esp + 0x10], 0x523a00
mov dword [esp + 0xc], 0x493248
mov dword [esp + 8], 0xffffffff
mov dword [esp + 4], 0x104
mov dword [esp], ebx
call dword [sym.imp.msvcrt.dll__snprintf_s]
lea eax, [ebp - 0x394]
mov byte [ebp - 0x11d], 0
mov dword [esp + 4], eax
mov dword [esp], ebx
call fcn.0043dbc7
cmp eax, 0x16ee00
je 0x4057f0
mov dword [esp], str.diskcopy.dll_was_either_not_found_or_is_invalid
call fcn.0043d9e0
jmp 0x405d3f
mov eax, dword [ebp - 0x394]
lea ebx, [ebp - 0x324]
mov dword [0x4df1e0], 0x168000
add eax, 0x66d8
mov dword [0x4df1e4], eax
mov eax, dword [ebp - 0x3a8]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
mov edx, dword [ebp - 0x3a8]
lea ecx, [eax + 1]
mov eax, ebx
call fcn.00405722
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], str.LOCALE_
mov dword [esp + 4], 0x104
mov dword [esp], ebx
call dword [sym.imp.msvcrt.dll_strncat_s]
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 [0x4df1e4]
mov dword [ebp - 0x39c], 1
shl eax, 5
lea edi, [eax + 0x2600]
cmp byte [edx + eax + 0x2600], 0xe5
mov dword [ebp - 0x3b0], edi
je 0x405d1a
xor eax, eax
mov dword [ebp - 0x3a4], eax
mov edi, dword [ebp - 0x3b0]
add edi, dword [0x4df1e4]
mov dword [esp + 8], 0xb
mov dword [esp + 4], edi
mov eax, dword [ebp - 0x3a4]
mov eax, dword [ebp + eax*4 - 0x358]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
mov dword [ebp - 0x39c], eax
test eax, eax
jne 0x405cf4
cmp dword [ebp - 0x3a4], 2
mov ebx, dword [ebp - 0x3a8]
jle 0x4058f3
lea ebx, [ebp - 0x324]
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
lea edx, [eax + 0xe]
cmp edx, 0x104
jbe 0x405917
mov dword [esp], str.invalid_path_supplied_for_MS_DOS_FAT_extraction
call fcn.0043d9e0
jmp 0x405cce
lea ecx, [eax + 1]
mov edx, ebx
lea eax, [ebp - 0x11c]
call fcn.00405722
mov dword [esp], ebx
call sub.msvcrt.dll_strlen
mov ecx, edi
sub ecx, eax
lea esi, [eax + 8]
mov edx, eax
mov dword [ebp - 0x3a0], ecx
mov ecx, dword [ebp - 0x3a0]
mov bl, byte [ecx + edx]
mov ecx, edx
lea edx, [edx + 1]
cmp bl, 0x20
je 0x40595e
mov byte [ebp + edx - 0x11d], bl
cmp esi, edx
jne 0x40593e
mov ecx, esi
mov byte [ebp + ecx - 0x11c], 0x2e
mov esi, edi
lea edx, [ecx + 1]
lea ebx, [ecx + 4]
sub esi, ecx
mov cl, byte [esi + edx + 7]
cmp cl, 0x20
je 0x405985
inc edx
mov byte [ebp + edx - 0x11d], cl
cmp ebx, edx
jne 0x405970
mov byte [ebp + edx - 0x11c], 0
movzx ebx, word [edi + 0x1a]
lea esi, [ebp - 0x11c]
mov ecx, dword [edi + 0x1c]
add ebx, 0x1f
shl ebx, 9
mov edx, ecx
mov dword [ebp - 0x3a0], ecx
add edx, ebx
cmp dword [0x4df1e0], edx
jae 0x4059e5
mov dword [esp + 0xc], ecx
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.0043d9e0
mov eax, dword [edi + 0x1c]
mov dword [esp + 8], eax
movzx eax, word [edi + 0x1a]
mov dword [esp], str._X___X
mov dword [esp + 4], eax
jmp 0x405b4c
add esi, eax
mov dword [esp + 4], 0x4932f9
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x405a63
mov dword [ebp - 0x360], 0x3fa8015
mov dword [ebp - 0x35c], 0xeb81075
mov dword [esp], str.Patching_COMMAND.COM...
call fcn.0043d9e0
cmp dword [ebp - 0x3a0], 0x16b70
jne 0x405aa3
mov esi, dword [0x4df1e4]
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 0x405adc
mov byte [esi + ebx + 0x6510], 0xeb
jmp 0x405aed
mov dword [esp + 4], str.IO.SYS
mov dword [esp], esi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x405aed
mov dword [ebp - 0x360], 0x97580fa
mov dword [ebp - 0x35c], 0x99b68d
mov dword [esp], str.Patching_IO.SYS...
call fcn.0043d9e0
cmp dword [ebp - 0x3a0], 0x1c800
je 0x405ab1
mov dword [esp], str.__unexpected_file_size
call fcn.0043d9e0
jmp 0x405aed
mov esi, dword [0x4df1e4]
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 0x405ae5
mov dword [esp], str.__unexpected_binary_data
jmp 0x405aaa
mov byte [esi + ebx + 0x3aa], 0xeb
xor esi, esi
mov dword [esp + 0x18], esi
movzx eax, byte [edi + 0xb]
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0xc], eax
lea eax, [ebp - 0x11c]
mov dword [esp + 8], 1
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 0x405b56
call fcn.0043df77
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.0043d9e0
jmp 0x405cce
lea eax, [ebp - 0x390]
mov dword [esp + 0x10], 4
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x3a0]
mov dword [esp + 8], eax
add ebx, dword [0x4df1e4]
mov dword [esp + 4], ebx
lea ebx, [esi - 1]
mov dword [esp], esi
call fcn.0043ebc0
test eax, eax
jne 0x405bc2
call fcn.0043df77
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.0043d9e0
cmp ebx, 0xfffffffd
ja 0x405cce
mov dword [esp], esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push ebx
jmp 0x405cce
movzx ecx, byte [edi + 0xd]
lea edx, [edi + 0xe]
lea eax, [ebp - 0x388]
call fcn.00405550
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 ax, word [edi + 0x12]
mov dword [ebp - 0x36c], edx
lea edx, [ebp - 0x38c]
mov word [ebp - 0x38a], ax
lea eax, [ebp - 0x380]
call fcn.00405550
mov eax, dword [ebp - 0x380]
mov edx, dword [ebp - 0x37c]
xor ecx, ecx
mov dword [ebp - 0x368], eax
lea eax, [ebp - 0x378]
mov dword [ebp - 0x364], edx
lea edx, [edi + 0x16]
call fcn.00405550
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 0x405c95
call fcn.0043df77
mov dword [esp], str.Could_not_set_timestamps:__s_n
mov dword [esp + 4], eax
call fcn.0043d9e0
cmp ebx, 0xfffffffd
ja 0x405ca4
mov dword [esp], esi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push edx
mov eax, dword [ebp - 0x3a0]
mov dword [esp], str.Successfully_wrote__s___zu_bytes_
mov dword [esp + 8], eax
lea eax, [ebp - 0x11c]
mov dword [esp + 4], eax
call fcn.0043d9e0
mov dword [ebp - 0x39c], 1
mov edi, dword [ebp - 0x3a4]
mov eax, 0x1084
bt eax, edi
jae 0x405cfe
mov dword [esp + 4], 0xbf800000
mov dword [esp], 7
call fcn.0044a184
jmp 0x405cfe
mov dword [ebp - 0x39c], 1
inc dword [ebp - 0x3a4]
cmp dword [ebp - 0x3a4], 0xc
ja 0x405d1a
test byte [ebp - 0x39c], 1
jne 0x4058a3
inc dword [ebp - 0x3ac]
cmp dword [ebp - 0x3ac], 0x3f
jg 0x405d36
test byte [ebp - 0x39c], 1
jne 0x405868
cmp dword [ebp - 0x39c], 0
jne 0x405d43
xor eax, eax
jmp 0x405d57
xor eax, eax
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x3a8]
mov dword [esp], eax
call fcn.004061ff
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 0x405d75
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, 0x489120
push ebx
sub esp, 0x32c
cmp dword [ebp + 8], 0
rep movsd dword es:[edi], dword [esi]
lea edi, [ebp - 0x28c]
mov esi, 0x4891a0
mov ecx, 0x1b
rep movsd dword es:[edi], dword [esi]
je 0x405dc9
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sub.msvcrt.dll_strlen
lea edx, [eax + 0xe]
cmp edx, 0x104
jbe 0x405dda
mov dword [esp], str.invalid_path_supplied_for_FreeDOS_extraction
call fcn.0043d9e0
jmp 0x405f19
lea ebx, [ebp - 0x11c]
mov edx, dword [ebp + 8]
lea ecx, [eax + 1]
mov eax, ebx
lea esi, [ebp - 0x220]
call fcn.00405722
mov dword [esp], ebx
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 8], str.LOCALE_
mov dword [esp + 4], 0x104
call dword [sym.imp.msvcrt.dll_strncat_s]
xor eax, eax
mov dword [esp], ebx
xor ebx, ebx
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.DLL_CreateDirectoryA]
push eax
push eax
mov edi, dword [ebp + ebx*4 - 0x2f8]
xor eax, eax
mov dword [esp + 8], 0xa
mov dword [esp + 0x14], eax
lea eax, [ebp - 0x2fc]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
movzx eax, word [ebp + ebx*4 - 0x28c]
mov dword [esp + 4], eax
mov eax, dword [0x5241b8]
mov dword [esp], eax
call fcn.0043c5a4
mov edx, dword [ebp + 8]
mov dword [ebp - 0x30c], eax
cmp ebx, 1
jle 0x405e77
lea edx, [ebp - 0x11c]
mov dword [esp], edx
mov dword [ebp - 0x310], edx
call sub.msvcrt.dll_strlen
mov edx, dword [ebp - 0x310]
lea ecx, [eax + 1]
mov eax, esi
call fcn.00405722
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0xffffffff
mov dword [esp + 4], 0x104
mov dword [esp], esi
call dword [sym.imp.msvcrt.dll_strncat_s]
cmp ebx, 1
mov edx, 6
mov dword [esp], esi
mov eax, pe_nt_image_headers32
mov dword [esp + 0x10], 2
cmovle eax, edx
xor edi, edi
mov dword [esp + 8], 1
mov dword [esp + 0x18], edi
mov dword [esp + 0x14], eax
xor eax, eax
mov dword [esp + 0xc], eax
mov dword [esp + 4], 0xc0000000
call dword [sym.imp.KERNEL32.DLL_CreateFileA]
mov edi, eax
lea eax, [eax - 1]
sub esp, 0x1c
cmp eax, 0xfffffffd
jbe 0x405f20
call fcn.0043df77
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp], str.Unable_to_create_file__s:__s.
call fcn.0043d9e0
xor eax, eax
jmp 0x405fd2
xor ecx, ecx
mov dword [esp + 0x10], 4
mov dword [esp + 0xc], ecx
mov eax, dword [ebp - 0x2fc]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x30c]
mov dword [esp], edi
mov dword [esp + 4], eax
call fcn.0043ebc0
test eax, eax
jne 0x405f73
call fcn.0043df77
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp], str.Could_not_write_file__s:__s.
call fcn.0043d9e0
mov dword [esp], edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push edx
jmp 0x405f19
mov dword [esp], edi
call dword [sym.imp.KERNEL32.DLL_CloseHandle]
push eax
mov eax, dword [ebp - 0x2fc]
mov dword [esp + 4], esi
mov dword [esp + 8], eax
mov dword [esp], str.Successfully_wrote__s___d_bytes_
call fcn.0043d9e0
mov eax, 0x4410410
bt eax, ebx
jae 0x405fb5
mov dword [esp + 4], 0xbf800000
mov dword [esp], 7
call fcn.0044a184
inc ebx
cmp ebx, 0x1b
jne 0x405e27
mov dword [esp + 4], 1
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.004061ff
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 [0x524164]
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 [0x524164]
mov dword [esp], eax
call esi
sub esp, 0x10
cmp eax, 1
je 0x406041
cmp eax, 2
jne 0x40604e
mov dword [ebp + 8], ebx
lea esp, [ebp - 8]
pop ebx
pop esi
pop ebp
jmp 0x405d7d
lea esp, [ebp - 8]
mov eax, ebx
pop ebx
pop esi
pop ebp
jmp 0x405754
lea esp, [ebp - 8]
xor eax, eax
pop ebx
pop esi
pop ebp
ret