Function at 0x140004f37
Capabilities:
Create directory

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x428
xor r8d, r8d
lea rsi, str.MSDOS___SYS
xor eax, eax
mov r15, rcx
lea rdi, [rsp + 0xa8]
mov ecx, 0x1a
mov qword [rsp + 0x70], r8
rep movsd dword [rdi], dword [rsi]
test r15, r15
je 0x140005508
lea rbx, [rsp + 0x218]
lea rax, [0x140086163]
mov edx, 0x104
mov r9, qword [0x1400b46e0]
mov rcx, rbx
mov qword [rsp + 0x20], rax
lea r8, [0x140086150]
call qword [sym.imp.msvcrt.dll__snprintf]
lea rdx, [rsp + 0x70]
mov rcx, rbx
mov byte [rsp + 0x31b], 0
call fcn.140038237
cmp eax, 0x16ee00
je 0x140004fd3
lea rcx, str.diskcopy.dll_was_either_not_found_or_is_invalid
call fcn.1400380b9
jmp 0x1400054e8
mov rax, qword [rsp + 0x70]
mov rcx, r15
mov dword [0x1400ce1e0], 0x168000
lea rbx, [rsp + 0x114]
mov rdi, rbx
mov rsi, r15
mov r14d, 0x2600
add rax, 0x66d8
mov qword [0x1400ce1e8], rax
call sub.msvcrt.dll_strlen
lea rcx, [rax + 1]
mov eax, 0x104
cmp rcx, rax
cmova rcx, rax
mov ecx, ecx
rep movsb byte [rdi], byte [rsi]
mov rcx, r15
mov esi, 0x103
call sub.msvcrt.dll_strlen
mov rcx, rbx
lea rdx, [rax + 1]
cmp rdx, 0x104
cmovae rax, rsi
mov byte [rsp + rax + 0x114], 0
call sub.msvcrt.dll_strlen
mov r8d, 8
lea rdx, str.LOCALE_
mov rcx, rbx
sub rsi, rax
cmp rsi, r8
cmovbe r8, rsi
call sub.msvcrt.dll_strncat
mov rcx, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_CreateDirectoryA]
xor ecx, ecx
lea rax, [rsp + 0x31c]
mov dword [rsp + 0x54], ecx
mov qword [rsp + 0x48], rax
mov rax, qword [0x1400ce1e8]
mov r12d, 1
cmp byte [rax + r14], 0xe5
je 0x1400054c7
xor r13d, r13d
mov rbp, qword [0x1400ce1e8]
mov r8d, 0xb
mov dword [rsp + 0x5c], r13d
mov rcx, qword [rsp + r13*8 + 0xa8]
add rbp, r14
mov rdx, rbp
call sub.msvcrt.dll_memcmp
mov r12d, eax
test eax, eax
jne 0x1400054a6
mov rbx, r15
cmp r13, 2
jbe 0x1400050e4
lea rbx, [rsp + 0x114]
mov rcx, rbx
call sub.msvcrt.dll_strlen
lea rdx, [rax + 0xe]
cmp rdx, 0x104
jbe 0x14000510a
lea rcx, str.invalid_path_supplied_for_MS_DOS_FAT_extraction
call fcn.1400380b9
jmp 0x140005483
lea ecx, [rax + 1]
mov rdi, qword [rsp + 0x48]
mov rsi, rbx
rep movsb byte [rdi], byte [rsi]
mov rcx, rbx
call sub.msvcrt.dll_strlen
mov rcx, rbx
lea rdx, [rax + 1]
cmp rdx, 0x104
mov edx, 0x103
cmovae rax, rdx
mov byte [rsp + rax + 0x31c], 0
call sub.msvcrt.dll_strlen
mov r11, rbp
lea r10, [rsp + 0x31b]
lea r8, [rax + 8]
mov rdx, rax
sub r11, rax
mov r9b, byte [r11 + rdx]
mov rcx, rdx
lea rdx, [rdx + 1]
cmp r9b, 0x20
je 0x140005175
mov byte [r10 + rdx], r9b
cmp r8, rdx
jne 0x140005158
mov rcx, r8
mov byte [rsp + rcx + 0x31c], 0x2e
mov r10, rbp
lea rdx, [rcx + 1]
lea r8, [rcx + 4]
sub r10, rcx
lea r9, [rsp + 0x31b]
mov cl, byte [r10 + rdx + 7]
cmp cl, 0x20
je 0x1400051a9
inc rdx
mov byte [r9 + rdx], cl
cmp r8, rdx
jne 0x140005193
mov byte [rsp + rdx + 0x31c], 0
movzx ebx, word [rbp + 0x1a]
mov edi, dword [rbp + 0x1c]
mov ecx, dword [0x1400ce1e0]
add ebx, 0x1f
shl ebx, 9
mov dword [rsp + 0x58], edi
movsxd rbx, ebx
lea rdx, [rbx + rdi]
cmp rcx, rdx
jae 0x140005204
mov rdx, qword [rsp + 0x48]
mov r8, rbx
mov r9, rdi
lea rcx, str.FAT_File__s_would_be_out_of_bounds:__zX___zX
call fcn.1400380b9
movzx edx, word [rbp + 0x1a]
mov r8d, dword [rbp + 0x1c]
lea rcx, str._X___X
call fcn.1400380b9
jmp 0x140005483
mov rsi, qword [rsp + 0x48]
lea rdx, [0x140086207]
add rsi, rax
mov rcx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x140005276
movabs rax, 0xeb8107503fa8015
lea rcx, str.Patching_COMMAND.COM...
mov qword [rsp + 0xa0], rax
call fcn.1400380b9
cmp rdi, 0x16b70
jne 0x1400052b0
mov rsi, qword [0x1400ce1e8]
lea rdx, [rsp + 0xa0]
mov r8d, 8
lea rcx, [rsi + rbx + 0x650c]
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x1400052e4
mov byte [rsi + rbx + 0x6510], 0xeb
jmp 0x1400052f5
lea rdx, str.IO.SYS
mov rcx, rsi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x1400052f5
movabs rax, 0x99b68d097580fa
lea rcx, str.Patching_IO.SYS...
mov qword [rsp + 0xa0], rax
call fcn.1400380b9
cmp rdi, 0x1c800
je 0x1400052be
lea rcx, str.__unexpected_file_size
call fcn.1400380b9
jmp 0x1400052f5
mov rsi, qword [0x1400ce1e8]
lea rdx, [rsp + 0xa0]
mov r8d, 8
lea rcx, [rsi + rbx + 0x3a8]
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x1400052ed
lea rcx, str.__unexpected_binary_data
jmp 0x1400052b7
mov byte [rsi + rbx + 0x3aa], 0xeb
xor edx, edx
mov rcx, qword [rsp + 0x48]
xor r9d, r9d
mov r8d, 1
mov qword [rsp + 0x30], rdx
movzx eax, byte [rbp + 0xb]
mov edx, 0xc0000000
mov dword [rsp + 0x20], 2
mov dword [rsp + 0x28], eax
call qword [sym.imp.KERNEL32.DLL_CreateFileA]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x14000534c
call fcn.140038579
mov rdx, qword [rsp + 0x48]
lea rcx, str.Unable_to_create_file__s:__s.
mov r8, rax
call fcn.1400380b9
jmp 0x140005483
mov dword [rsp + 0x20], 4
add rbx, qword [0x1400ce1e8]
lea r9, [rsp + 0x68]
mov rcx, rax
mov r8d, dword [rsp + 0x58]
mov rdx, rbx
lea rbx, [rsi - 1]
call fcn.140038ff2
test eax, eax
jne 0x1400053a9
call fcn.140038579
mov rdx, qword [rsp + 0x48]
lea rcx, str.Could_not_write_file__s:__s.
mov r8, rax
call fcn.1400380b9
cmp rbx, 0xfffffffffffffffd
ja 0x140005483
mov rcx, rsi
call qword [sym.imp.KERNEL32.DLL_CloseHandle]
jmp 0x140005483
movzx r8d, byte [rbp + 0xd]
lea rdx, [rbp + 0xe]
lea rcx, [rsp + 0x78]
call fcn.140004d70
mov rax, qword [rsp + 0x78]
xor r8d, r8d
lea rdx, [rsp + 0x6c]
lea rcx, [rsp + 0x80]
mov qword [rsp + 0x90], rax
xor eax, eax
mov dword [rsp + 0x6c], eax
mov ax, word [rbp + 0x12]
mov word [rsp + 0x6e], ax
call fcn.140004d70
mov rax, qword [rsp + 0x80]
xor r8d, r8d
lea rdx, [rbp + 0x16]
lea rcx, [rsp + 0x88]
mov qword [rsp + 0x98], rax
call fcn.140004d70
mov rax, qword [rsp + 0x88]
mov rcx, rsi
lea rdx, [rsp + 0x90]
lea r9, [rsp + 0xa0]
lea r8, [rsp + 0x98]
mov qword [rsp + 0xa0], rax
call qword [sym.imp.KERNEL32.DLL_SetFileTime]
test eax, eax
jne 0x14000545a
call fcn.140038579
lea rcx, str.Could_not_set_timestamps:__s_n
mov rdx, rax
call fcn.1400380b9
cmp rbx, 0xfffffffffffffffd
ja 0x140005469
mov rcx, rsi
call qword [sym.imp.KERNEL32.DLL_CloseHandle]
mov rdx, qword [rsp + 0x48]
mov r8, rdi
lea rcx, str.Successfully_wrote__s___zu_bytes_
mov r12d, 1
call fcn.1400380b9
mov edi, dword [rsp + 0x5c]
mov eax, 0x1084
bt rax, rdi
jae 0x1400054ac
movss xmm1, dword [0x140086508]
mov ecx, 7
call fcn.140044d13
jmp 0x1400054ac
mov r12d, 1
mov eax, dword [rsp + 0x5c]
inc r13
inc eax
cmp eax, 0xc
ja 0x1400054c7
test r12d, 1
jne 0x1400050a3
inc dword [rsp + 0x54]
add r14, 0x20
cmp dword [rsp + 0x54], 0x3f
jg 0x1400054e3
test r12d, 1
jne 0x140005088
test r12d, r12d
jne 0x1400054ec
xor eax, eax
jmp 0x1400054f6
xor edx, edx
mov rcx, r15
call fcn.140005a2d
mov rcx, qword [rsp + 0x70]
mov dword [rsp + 0x48], eax
call sub.msvcrt.dll_free
mov eax, dword [rsp + 0x48]
add rsp, 0x428
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x3d8
lea rsi, str._ab_b_
mov rbx, rcx
lea rax, [rsp + 0xf0]
lea rdi, [rsp + 0xf0]
mov ecx, 0x36
test rbx, rbx
mov qword [rsp + 0x68], rax
lea r14, [rsp + 0x84]
rep movsd dword [rdi], dword [rsi]
lea rdi, [rsp + 0x84]
lea rsi, [0x14007b320]
mov ecx, 0x1b
rep movsd dword [rdi], dword [rsi]
je 0x14000558d
mov rcx, rbx
call sub.msvcrt.dll_strlen
lea rdx, [rax + 0xe]
cmp rdx, 0x104
jbe 0x14000559e
lea rcx, str.invalid_path_supplied_for_FreeDOS_extraction
call fcn.1400380b9
jmp 0x140005753
lea rdi, [rsp + 0x2cc]
lea ecx, [rax + 1]
mov rsi, rbx
mov r13d, 0x103
mov qword [rsp + 0x50], rdi
rep movsb byte [rdi], byte [rsi]
mov rcx, rbx
mov esi, 0x103
call sub.msvcrt.dll_strlen
mov rcx, qword [rsp + 0x50]
lea rdx, [rax + 1]
cmp rdx, 0x104
cmovae rax, rsi
mov byte [rsp + rax + 0x2cc], 0
call sub.msvcrt.dll_strlen
mov r8d, 8
mov rcx, qword [rsp + 0x50]
lea rdx, str.LOCALE_
sub rsi, rax
cmp rsi, r8
cmovbe r8, rsi
xor ebp, ebp
call sub.msvcrt.dll_strncat
mov rcx, qword [rsp + 0x50]
xor edx, edx
call qword [sym.imp.KERNEL32.DLL_CreateDirectoryA]
lea rax, [rsp + 0x1c8]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x68]
movzx edx, word [r14 + rbp*4]
xor ecx, ecx
mov r15d, ebp
mov r8d, 0xa
mov r12, qword [rax + rbp*8]
lea rax, [rsp + 0x7c]
mov dword [rsp + 0x28], ecx
mov qword [rsp + 0x20], rax
mov rax, qword [0x1400b4ba0]
mov r9, r12
mov rcx, qword [rax]
call fcn.140036e5f
cmp rbp, 2
mov qword [rsp + 0x60], rax
mov rax, qword [rsp + 0x50]
cmovb rax, rbx
mov rcx, rax
mov qword [rsp + 0x58], rax
call sub.msvcrt.dll_strlen
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x58]
lea rcx, [rax + 1]
mov eax, 0x104
cmp rcx, rax
cmova rcx, rax
mov ecx, ecx
rep movsb byte [rdi], byte [rsi]
mov rcx, qword [rsp + 0x58]
mov esi, 1
call sub.msvcrt.dll_strlen
lea rdx, [rax + 1]
cmp rdx, 0x104
cmovae rax, r13
mov byte [rsp + rax + 0x1c8], 0
test r12, r12
je 0x1400056d1
mov rcx, r12
call sub.msvcrt.dll_strlen
lea rsi, [rax + 1]
mov rcx, qword [rsp + 0x48]
call sub.msvcrt.dll_strlen
mov r8, r13
mov rcx, qword [rsp + 0x48]
mov rdx, r12
sub r8, rax
cmp r8, rsi
cmova r8, rsi
call sub.msvcrt.dll_strncat
cmp rbp, 2
mov rcx, qword [rsp + 0x48]
mov dword [rsp + 0x20], 2
sbb eax, eax
xor edx, edx
xor r9d, r9d
mov r8d, 1
and eax, 0xffffff86
mov qword [rsp + 0x30], rdx
mov edx, 0xc0000000
sub eax, 0xffffff80
mov dword [rsp + 0x28], eax
call qword [sym.imp.KERNEL32.DLL_CreateFileA]
mov r12, rax
lea rax, [rax - 1]
cmp rax, 0xfffffffffffffffd
jbe 0x14000575a
call fcn.140038579
mov rdx, qword [rsp + 0x48]
lea rcx, str.Unable_to_create_file__s:__s.
mov r8, rax
call fcn.1400380b9
xor eax, eax
jmp 0x1400057f9
mov dword [rsp + 0x20], 4
mov r8d, dword [rsp + 0x7c]
mov rcx, r12
lea r9, [rsp + 0x80]
mov rdx, qword [rsp + 0x60]
call fcn.140038ff2
mov rsi, qword [sym.imp.KERNEL32.DLL_CloseHandle]
test eax, eax
jne 0x1400057a7
call fcn.140038579
mov rdx, qword [rsp + 0x48]
lea rcx, str.Could_not_write_file__s:__s.
mov r8, rax
call fcn.1400380b9
mov rcx, r12
call rsi
jmp 0x140005753
mov rcx, r12
call rsi
mov r8d, dword [rsp + 0x7c]
mov rdx, qword [rsp + 0x48]
lea rcx, str.Successfully_wrote__s___d_bytes_
call fcn.1400380b9
mov eax, 0x4410410
bt rax, r15
jae 0x1400057df
movss xmm1, dword [0x140086508]
mov ecx, 7
call fcn.140044d13
inc rbp
cmp rbp, 0x1b
jne 0x140005624
mov edx, 1
mov rcx, rbx
call fcn.140005a2d
add rsp, 0x3d8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rdi, qword [0x1400b4ad0]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x147
mov rsi, qword [sym.imp.USER32.dll_SendMessageW]
mov rbx, rcx
mov rcx, qword [rdi]
call rsi
xor r9d, r9d
mov rcx, qword [rdi]
mov edx, 0x150
movsxd r8, eax
call rsi
cmp rax, 1
je 0x140005860
cmp rax, 2
jne 0x14000586f
mov rcx, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
jmp 0x14000551c
mov rcx, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
jmp 0x140004f37
xor eax, eax
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret