Function at 0x14000e410
Capabilities:
Copy file
Create directory

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov rdi, rcx
mov rbp, rdx
mov esi, r8d
mov rbx, r9
test r9, r9
je 0x1400062ab
mov dword [r9], 0
mov qword [r9 + 8], 0
mov qword [r9 + 0x10], 0
mov r13, qword [rdi]
test sil, 4
jne 0x140006340
mov eax, esi
lea r12, [rsp + 0x70]
and eax, 3
cmp eax, 2
setne al
movzx eax, al
mov dword [rsp + 0x68], 0
lea r9, [rsp + 0x68]
lea r8, [0x1400052c0]
test sil, 0x18
je 0x140006330
mov rdx, qword [rbp]
mov dword [rsp + 0x70], 0
mov rcx, r13
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r12
call qword [sym.imp.KERNEL32.dll_CopyFileExW]
test eax, eax
je 0x140006640
mov ecx, dword [rsp + 0x68]
test ecx, ecx
jne 0x140006538
mov eax, 1
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r9d, r9d
xor r8d, r8d
jmp 0x1400062e5
lea r14, [rsp + 0x80]
lea r12, [rsp + 0x70]
mov qword [rsp + 0x70], r14
test r13, r13
je 0x1400066d6
mov rcx, r13
call sub.msvcrt.dll_wcslen
lea r15, [rax + rax]
mov r9, r15
sar r9, 1
mov qword [rsp + 0x68], r9
cmp r15, 0xe
ja 0x140006608
mov rcx, qword [rsp + 0x70]
mov rax, r9
cmp r9, 1
je 0x1400065f8
test r9, r9
jne 0x140006560
xor r8d, r8d
mov qword [rsp + 0x78], rax
xor r9d, r9d
mov edx, pe_nt_image_headers64
mov word [rcx + rax*2], r8w
mov r15, qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r8d, 7
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x2000000
mov dword [rsp + 0x20], 3
call r15
mov rcx, qword [rsp + 0x70]
mov r13, rax
cmp rcx, r14
je 0x1400063f4
mov rax, qword [rsp + 0x80]
lea rdx, [rax + rax + 2]
call fcn.1403cd470
cmp r13, 0xffffffffffffffff
je 0x140006530
mov rax, qword [sym.imp.KERNEL32.dll_GetFileTime]
xor r8d, r8d
xor edx, edx
mov rcx, r13
lea r9, [rsp + 0x68]
mov qword [rsp + 0x50], rax
call rax
test eax, eax
je 0x140006580
mov rax, qword [rbp]
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x40], rax
test rax, rax
je 0x1400066ca
mov rcx, rax
call sub.msvcrt.dll_wcslen
lea rdx, [rax + rax]
mov rax, rdx
mov qword [rsp + 0x58], rdx
sar rax, 1
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x60], rax
cmp rdx, 0xe
ja 0x1400066a0
mov rcx, qword [rsp + 0x70]
cmp qword [rsp + 0x48], 1
je 0x140006670
cmp qword [rsp + 0x48], 0
jne 0x140006680
xor edx, edx
mov qword [rsp + 0x78], rax
xor r9d, r9d
mov r8d, 7
mov word [rcx + rax*2], dx
mov edx, pe_nt_image_headers64
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x2000000
mov dword [rsp + 0x20], 3
call r15
mov rcx, qword [rsp + 0x70]
mov r15, rax
cmp rcx, r14
je 0x1400064d4
mov rax, qword [rsp + 0x80]
lea rdx, [rax + rax + 2]
call fcn.1403cd470
mov r14, qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp r15, 0xffffffffffffffff
je 0x140006518
mov rax, qword [rsp + 0x50]
mov r9, r12
xor r8d, r8d
xor edx, edx
mov rcx, r15
call rax
test eax, eax
je 0x1400065c0
mov rax, qword [rsp + 0x68]
mov r14, qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r15
cmp qword [rsp + 0x70], rax
jae 0x1400065ec
call r14
mov rcx, r13
call r14
mov r13, qword [rdi]
xor eax, eax
jmp 0x1400062cb
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea rax, str.boost::filesystem::copy_file
mov r9, rbx
mov r8, rbp
mov rdx, rdi
mov qword [rsp + 0x20], rax
call fcn.140014eb0
xor eax, eax
jmp 0x14000631c
mov r8, r15
mov rdx, r13
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
jmp 0x140006397
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea rax, str.boost::filesystem::copy_file
mov r9, rbx
mov r8, rbp
mov qword [rsp + 0x20], rax
mov rdx, rdi
call fcn.140014eb0
mov r14, qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r13
call r14
xor eax, eax
jmp 0x14000631c
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea rax, str.boost::filesystem::copy_file
mov r9, rbx
mov r8, rbp
mov qword [rsp + 0x20], rax
mov rdx, rdi
call fcn.140014eb0
mov r14, qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, r15
call r14
jmp 0x1400065a9
movzx edx, word [r13]
mov word [rcx], dx
jmp 0x140006397
mov rcx, r12
lea rdx, [rsp + 0x68]
xor r8d, r8d
mov qword [rsp + 0x40], r9
call fcn.140399a10
mov r9, qword [rsp + 0x40]
mov qword [rsp + 0x70], rax
mov rcx, rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x80], rax
jmp 0x140006384
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
cmp eax, 0x50
je 0x140006658
cmp eax, 0xb7
jne 0x140006538
and esi, 1
je 0x140006538
xor eax, eax
jmp 0x14000631c
mov rdx, qword [rsp + 0x40]
movzx edx, word [rdx]
mov word [rcx], dx
jmp 0x140006480
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x40]
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x70]
jmp 0x140006480
lea rdx, [rsp + 0x60]
xor r8d, r8d
mov rcx, r12
call fcn.140399a10
mov qword [rsp + 0x70], rax
mov rcx, rax
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x80], rax
jmp 0x140006468
lea rcx, [0x140463d28]
call fcn.140414070
lea rcx, [0x140463d28]
call fcn.140414070
mov r14, qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, rax
jmp 0x14040cda1
push rdi
push rsi
push rbx
sub rsp, 0x30
mov rsi, rcx
mov rdi, rdx
mov rbx, r8
test r8, r8
je 0x14000724c
mov dword [r8], 0
mov qword [r8 + 8], 0
mov qword [r8 + 0x10], 0
mov rax, qword [0x1405a4118]
test rax, rax
je 0x140007270
xor r8d, r8d
mov rdx, qword [rsi]
mov rcx, qword [rdi]
call rax
test eax, eax
je 0x1400072a0
add rsp, 0x30
pop rbx
pop rsi
pop rdi
ret
lea rax, str.boost::filesystem::create_hard_link
mov r9, rbx
mov r8, rdi
mov rdx, rsi
mov qword [rsp + 0x20], rax
mov ecx, 0x32
call fcn.140014eb0
nop
add rsp, 0x30
pop rbx
pop rsi
pop rdi
ret
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9, rbx
mov r8, rdi
mov rdx, rsi
mov ecx, eax
lea rax, str.boost::filesystem::create_hard_link
mov qword [rsp + 0x20], rax
call fcn.140014eb0
jmp 0x140007267
push rdi
push rsi
push rbx
sub rsp, 0x50
lea rsi, [rsp + 0x30]
mov rdi, rdx
mov rbx, r8
mov rdx, rcx
mov rcx, rsi
call fcn.140009480
test rbx, rbx
je 0x140009cfc
mov rax, qword [rbx + 0x10]
test al, 1
je 0x140009ce6
cmp rax, 1
je 0x140009ce0
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x40]
cmp rcx, rax
je 0x140009ccf
mov rax, qword [rsp + 0x40]
lea rdx, [rax + rax + 2]
call fcn.1403cd470
nop
add rsp, 0x50
pop rbx
pop rsi
pop rdi
ret
mov eax, dword [rbx]
test eax, eax
jne 0x140009cb0
mov dword [rbx], 0
mov qword [rbx + 8], 0
mov qword [rbx + 0x10], 0
mov rax, qword [0x1405a4110]
test rax, rax
je 0x140009d48
mov rcx, qword [rdi]
mov rdx, qword [rsp + 0x30]
mov r8d, 2
call rax
test al, al
jne 0x140009cb0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
lea rax, str.boost::filesystem::create_symlink
mov r9, rbx
mov r8, rdi
mov qword [rsp + 0x20], rax
mov rdx, rsi
call fcn.140014eb0
jmp 0x140009cb0
lea rax, str.boost::filesystem::create_symlink
mov r9, rbx
mov r8, rdi
mov rdx, rsi
mov qword [rsp + 0x20], rax
mov ecx, 0x32
call fcn.140014eb0
jmp 0x140009cb0
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x138
mov rsi, rcx
mov rdi, rdx
mov r13d, r8d
mov rbx, r9
test r9, r9
je 0x14000e44b
mov dword [r9], 0
mov qword [r9 + 8], 0
mov qword [r9 + 0x10], 0
lea rbp, [rsp + 0x110]
mov r8, rbx
mov rdx, rsi
mov rcx, rbp
test r13d, 0x1600
je 0x14000e508
call fcn.140005910
mov eax, dword [rsp + 0x110]
test rbx, rbx
je 0x14000e491
mov rdx, qword [rbx + 0x10]
test dl, 1
je 0x14000e491
cmp rdx, 1
jne 0x14000e4b6
mov r11d, dword [rbx]
test r11d, r11d
jne 0x14000e4b6
cmp eax, 1
ja 0x14000e4d0
lea rax, str.boost::filesystem::copy
mov r9, rbx
mov r8, rdi
mov rdx, rsi
mov qword [rsp + 0x20], rax
mov ecx, 2
call fcn.140014eb0
nop
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp eax, 4
je 0x14000e520
cmp eax, 2
je 0x14000e558
cmp eax, 3
je 0x14000e600
lea rax, str.boost::filesystem::copy
mov r9, rbx
mov r8, rdi
mov rdx, rsi
mov qword [rsp + 0x20], rax
mov ecx, 0x32
call fcn.140014eb0
jmp 0x14000e4b6
call fcn.140005de0
mov eax, dword [rsp + 0x110]
jmp 0x14000e475
test r13d, 0x400
jne 0x14000e4b6
and r13d, 0x200
je 0x14000e4e3
mov r8, rbx
mov rdx, rdi
mov rcx, rsi
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp 0x140009c80
test r13d, 0x800
jne 0x14000e4b6
test r13d, 0x1000
jne 0x14000e9a8
test r13d, 0x2000
jne 0x14000efd0
lea r8, [rsp + 0xb0]
mov rdx, rdi
mov rcx, rbp
mov dword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xc0], 0
test r13d, 0x1400
je 0x14000ee43
call fcn.140005910
mov eax, dword [rsp + 0x110]
test eax, eax
je 0x14000ee68
cmp eax, 3
je 0x14000eff1
mov r9, rbx
mov r8d, r13d
mov rdx, rdi
mov rcx, rsi
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp 0x140006270
mov dword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xc0], 0
test r13d, 0x1000
jne 0x14000e940
lea r8, [rsp + 0xb0]
mov rdx, rdi
mov rcx, rbp
test r13d, 0x1400
je 0x14000e990
call fcn.140005910
mov eax, dword [rsp + 0x110]
test eax, eax
je 0x14000ee54
cmp eax, 1
je 0x14000ef06
test r13d, 0x100
jne 0x14000e67a
test r13d, r13d
jne 0x14000e4b6
mov qword [rsp + 0x20], rbx
xor r9d, r9d
xor r8d, r8d
mov rdx, rsi
lea rax, [rsp + 0x90]
mov qword [rsp + 0x90], 0
mov rcx, rax
mov qword [rsp + 0x40], rax
call fcn.140002c20
test rbx, rbx
je 0x14000e6ca
mov rax, qword [rbx + 0x10]
test al, 1
je 0x14000e6ca
cmp rax, 1
jne 0x14000efa0
mov eax, dword [rbx]
test eax, eax
jne 0x14000efa0
mov r12, qword [rsp + 0x90]
test r12, r12
je 0x14000e4b6
cmp qword [r12 + 0x40], 0
je 0x14000f221
mov eax, r13d
lea rcx, [r12 + 0x10]
or ah, 0x40
mov qword [rsp + 0x50], rcx
mov dword [rsp + 0x48], eax
call fcn.140010cc0
mov rdx, qword [r12 + 0x18]
lea rsi, [rax + rax]
mov rcx, qword [r12 + 0x10]
lea r15, [rsp + 0xe0]
mov r12, rsi
mov qword [rsp + 0xd0], r15
lea r9, [rsp + 0xd0]
sub rdx, rax
sar r12, 1
lea r14, [rcx + rdx*2]
mov qword [rsp + 0x110], r12
mov rax, r12
mov rcx, r15
cmp rsi, 0xe
ja 0x14000f32c
cmp r12, 1
je 0x14000f320
test r12, r12
je 0x14000e775
mov r8, rsi
mov rdx, r14
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0xd0]
xor r9d, r9d
mov qword [rsp + 0xd8], rax
lea r14, [rsp + 0x100]
mov word [rcx + rax*2], r9w
lea rax, [rsp + 0xf0]
mov rcx, r14
mov qword [rsp + 0x38], rax
mov rax, qword [rdi]
mov qword [rsp + 0xf0], r14
mov qword [rsp + 0x58], rax
mov rax, qword [rdi + 8]
lea r12, [rax + rax]
mov rsi, r12
sar rsi, 1
mov qword [rsp + 0x110], rsi
mov rax, rsi
cmp r12, 0xe
ja 0x14000f2f0
cmp rsi, 1
je 0x14000f2e0
test rsi, rsi
je 0x14000e7fc
mov rdx, qword [rsp + 0x58]
mov r8, r12
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0xf0]
xor r8d, r8d
mov qword [rsp + 0xf8], rax
mov rdx, qword [rsp + 0xd0]
mov word [rcx + rax*2], r8w
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x38]
lea r8, [rdx + rax*2]
call fcn.14000fdd0
mov rax, qword [rsp + 0xf0]
lea r12, [rsp + 0x120]
mov rsi, qword [rsp + 0xf8]
mov qword [rsp + 0x110], r12
cmp rax, r14
je 0x14000f3ae
mov qword [rsp + 0x110], rax
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x120], rax
xor ecx, ecx
mov r8d, dword [rsp + 0x48]
mov r9, rbx
mov rdx, rbp
mov word [rsp + 0x100], cx
mov rcx, qword [rsp + 0x50]
mov qword [rsp + 0x118], rsi
mov qword [rsp + 0xf0], r14
mov qword [rsp + 0xf8], 0
call fcn.14000e410
mov rcx, qword [rsp + 0x110]
cmp rcx, r12
je 0x14000e8c5
mov rax, qword [rsp + 0x120]
lea rdx, [rax + rax + 2]
call fcn.1403cd470
mov rcx, qword [rsp + 0xf0]
cmp rcx, r14
je 0x14000e8e4
mov rax, qword [rsp + 0x100]
lea rdx, [rax + rax + 2]
call fcn.1403cd470
mov rcx, qword [rsp + 0xd0]
cmp rcx, r15
je 0x14000e903
mov rax, qword [rsp + 0xe0]
lea rdx, [rax + rax + 2]
call fcn.1403cd470
test rbx, rbx
je 0x14000f506
mov rax, qword [rbx + 0x10]
test al, 1
je 0x14000e928
cmp rax, 1
jne 0x14000efa0
mov edx, dword [rbx]
test edx, edx
jne 0x14000efa0
mov rcx, qword [rsp + 0x40]
mov rdx, rbx
call fcn.140002350
jmp 0x14000e6ae
lea rax, str.PMP_
mov dword [rsp + 0xb0], 0x15
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], 3
test rbx, rbx
je 0x14040de87
movdqa xmm0, xmmword [rsp + 0xb0]
mov rax, qword [rsp + 0xc0]
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rax
jmp 0x14000e4b6
call fcn.140005de0
mov eax, dword [rsp + 0x110]
jmp 0x14000e657
lea r13, [rsp + 0xa0]
xor r10d, r10d
mov rcx, rsi
mov qword [rsp + 0x98], 0
mov qword [rsp + 0x90], r13
mov word [rsp + 0xa0], r10w
call fcn.140010250
test rax, rax
jne 0x14000f1fd
lea rax, [rsp + 0xb0]
mov rdx, rbx
mov rcx, rax
mov qword [rsp + 0x40], rax
call fcn.140007380
test rbx, rbx
je 0x14000ea1c
mov rax, qword [rbx + 0x10]
test al, 1
je 0x14000ea1c
cmp rax, 1
jne 0x14000eed6
mov r9d, dword [rbx]
test r9d, r9d
jne 0x14000eed6
mov rcx, rsi
mov r14, qword [rsi]
call fcn.140010990
mov rcx, qword [rsi]
lea r14, [r14 + rax*2]
lea r12, [rsp + 0x120]
mov qword [rsp + 0x110], r12
sub r14, rcx
mov qword [rsp + 0x38], rcx
mov rcx, r12
mov r15, r14
sar r15, 1
mov qword [rsp + 0xf0], r15
mov rax, r15
cmp r14, 0xe
ja 0x14000f252
cmp r15, 1
je 0x14000f242
test r15, r15
je 0x14000ea90
mov rdx, qword [rsp + 0x38]
mov r8, r14
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0xf0]
mov rcx, qword [rsp + 0x110]
xor r8d, r8d
mov qword [rsp + 0x118], rax
mov r9, rbx
mov rdx, rbp
mov word [rcx + rax*2], r8w
lea rax, [rsp + 0xd0]
mov r8, qword [rsp + 0x40]
mov rcx, rax
mov qword [rsp + 0x48], rax
call fcn.1400074c0
mov rcx, qword [rsp + 0x110]
cmp rcx, r12
je 0x14000eadf
mov rax, qword [rsp + 0x120]
lea rdx, [rax + rax + 2]
call fcn.1403cd470
test rbx, rbx
je 0x14000eb00
mov rax, qword [rbx + 0x10]
test al, 1
je 0x14000eb00
cmp rax, 1
jne 0x14000eeaf
mov ecx, dword [rbx]
test ecx, ecx
jne 0x14000eeaf
mov rcx, rdi
mov r15, qword [rdi]
call fcn.140010990
mov rcx, qword [rdi]
lea rax, [r15 + rax*2]
lea rdx, [rsp + 0xf0]
lea r14, [rsp + 0x100]
mov qword [rsp + 0x38], rdx
sub rax, rcx
mov qword [rsp + 0x50], rcx
mov rcx, r14
mov r15, rax
mov rdx, rax
mov qword [rsp + 0x58], rax
sar r15, 1
mov qword [rsp + 0xf0], r14
mov qword [rsp + 0x110], r15
mov rax, r15
cmp rdx, 0xe
ja 0x14000f454
cmp r15, 1
je 0x14000f444
test r15, r15
je 0x14000eb8b
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0xf0]
xor edx, edx
mov qword [rsp + 0xf8], rax
mov word [rcx + rax*2], dx
mov rcx, qword [rsp + 0x38]
call fcn.140010250
test rax, rax
jne 0x14000f41e
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x38]
mov r9, rbx
mov rcx, rbp
call fcn.1400074c0
mov rcx, qword [rsp + 0x110]
mov rax, qword [rsp + 0xf0]
cmp rcx, r12
je 0x14000f589
cmp rax, r14
je 0x14000f5da
mov rdx, qword [rsp + 0x100]
mov qword [rsp + 0xf0], rcx
movdqu xmm3, xmmword [rsp + 0x118]
movups xmmword [rsp + 0xf8], xmm3
test rax, rax
je 0x14000f5f3
mov qword [rsp + 0x110], rax
mov rcx, rax
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x118], 0
xor eax, eax
mov word [rcx], ax
cmp rcx, r12
je 0x14000ec4a
mov rax, qword [rsp + 0x120]
lea rdx, [rax + 1]
add rdx, rdx
call fcn.1403cd470
test rbx, rbx
je 0x14000ec6a
mov rax, qword [rbx + 0x10]
test al, 1
je 0x14000ec6a
sub rax, 1
jne 0x14000ee8e
cmp dword [rbx], 0
jne 0x14000ee8e
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x48]
mov r9, rbx
mov rcx, rbp
call fcn.14000cc30
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x110]
mov r8, rax
cmp rcx, r12
je 0x14000f517
cmp rax, r13
je 0x14000f56b
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x90], rcx
movdqu xmm5, xmmword [rsp + 0x118]
movups xmmword [rsp + 0x98], xmm5
test r8, r8
je 0x14000ed06
mov qword [rsp + 0x110], r8
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x118], 0
xor eax, eax
mov word [r8], ax
cmp r8, r12
je 0x14000ed06
mov rax, qword [rsp + 0x120]
mov rcx, r8
lea rdx, [rax + rax + 2]
call fcn.1403cd470
test rbx, rbx
je 0x14000ed26
mov rax, qword [rbx + 0x10]
test al, 1
je 0x14000ed26
cmp rax, 1
jne 0x14000ee8e
cmp dword [rbx], 0
jne 0x14000ee8e
call fcn.140013b80
lea r15, [rsp + 0x90]
mov rdx, rax
mov rcx, r15
mov qword [rsp + 0x40], r15
call fcn.140012670
mov rdx, rsi
mov rcx, rbp
test eax, eax
je 0x14000f484
call fcn.1402dea90
mov r8, qword [rsp + 0x118]
mov rdx, qword [rsp + 0x110]
mov rcx, r15
add r8, r8
add r8, rdx
call fcn.14000fdd0
mov rcx, qword [rsp + 0x110]
cmp rcx, r12
je 0x14000ed95
mov rax, qword [rsp + 0x120]
lea rdx, [rax + 1]
add rdx, rdx
call fcn.1403cd470
mov rcx, qword [rsp + 0xf0]
cmp rcx, r14
je 0x14000edb6
mov rax, qword [rsp + 0x100]
lea rdx, [rax + 1]
add rdx, rdx
call fcn.1403cd470
mov rcx, qword [rsp + 0xd0]
lea rax, [rsp + 0xe0]
cmp rcx, rax
je 0x14000eddf
mov rax, qword [rsp + 0xe0]
lea rdx, [rax + 1]
add rdx, rdx
call fcn.1403cd470
mov rcx, qword [rsp + 0xb0]
lea rax, [rsp + 0xc0]
cmp rcx, rax
je 0x14000ee08
mov rax, qword [rsp + 0xc0]
lea rdx, [rax + 1]
add rdx, rdx
call fcn.1403cd470
mov rsi, qword [rsp + 0x40]
mov r8, rbx
mov rdx, rdi
mov rcx, rsi
call fcn.1400072d0
mov rcx, qword [rsp + 0x90]
cmp rcx, r13
je 0x14000e4b6
mov rax, qword [rsp + 0xa0]
lea rdx, [rax + rax + 2]
call fcn.1403cd470
jmp 0x14000e4b6
call fcn.140005de0
mov eax, dword [rsp + 0x110]
jmp 0x14000e5c9
test rbx, rbx
jne 0x14000e96f
jmp 0x14040ddbd
test rbx, rbx
je 0x14040dd60
movdqa xmm1, xmmword [rsp + 0xb0]
mov rax, qword [rsp + 0xc0]
movups xmmword [rbx], xmm1
mov qword [rbx + 0x10], rax
jmp 0x14000e4b6
mov rcx, qword [rsp + 0xf0]
cmp rcx, r14
je 0x14000eeaf
mov rax, qword [rsp + 0x100]
lea rdx, [rax + 1]
add rdx, rdx
call fcn.1403cd470
mov rcx, qword [rsp + 0xd0]
lea rax, [rsp + 0xe0]
cmp rcx, rax
je 0x14000eed6
mov rax, qword [rsp + 0xe0]
lea rdx, [rax + rax + 2]
call fcn.1403cd470
mov rcx, qword [rsp + 0xb0]
lea rax, [rsp + 0xc0]
cmp rcx, rax
je 0x14000ee1b
mov rax, qword [rsp + 0xc0]
lea rdx, [rax + rax + 2]
call fcn.1403cd470
jmp 0x14000ee1b
test rbx, rbx
je 0x14000f285
mov dword [rbx], 0
xor r8d, r8d
mov qword [rbx + 8], 0
mov rdx, qword [rdi]
mov qword [rbx + 0x10], 0
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryExW]
test eax, eax
jne 0x14000ef73
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [rsp + 0xf0]
mov r8, rbp
mov rdx, rdi
mov r12d, eax
call fcn.140005de0
cmp dword [rsp + 0xf0], 3
je 0x14000ef73
lea r9, str.boost::filesystem::create_directory
mov r8, rbx
mov rdx, rdi
mov ecx, r12d
call fcn.140014c20
mov rax, qword [rbx + 0x10]
test al, 1
je 0x14000e668
cmp rax, 1
jne 0x14000e4b6
mov r10d, dword [rbx]
test r10d, r10d
je 0x14000e668
jmp 0x14000e4b6
mov rbx, qword [rsp + 0x90]
test rbx, rbx
je 0x14000e4b6
lock sub dword [rbx], 1
jne 0x14000e4b6
mov rcx, rbx
call fcn.1400022f0
mov rcx, rbx
call fcn.1400022c0
jmp 0x14000e4b6
mov r8, rbx
mov rdx, rdi
mov rcx, rsi
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp 0x140007220
mov rcx, rsi
lea r15, [rsp + 0xe0]
call fcn.140010cc0
mov rdx, qword [rsi + 8]
mov rcx, qword [rsi]
mov qword [rsp + 0xd0], r15
lea r12, [rax + rax]
lea r10, [rsp + 0xd0]
mov r14, r12
sub rdx, rax
sar r14, 1
lea r9, [rcx + rdx*2]
mov rcx, r15
mov qword [rsp + 0x110], r14
mov rax, r14
cmp r12, 0xe
ja 0x14000f376
cmp r14, 1
je 0x14000f36a
test r14, r14
je 0x14000f06b
mov r8, r12
mov rdx, r9
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0xd0]
xor r12d, r12d
mov qword [rsp + 0xd8], rax
lea r14, [rsp + 0x100]
mov word [rcx + rax*2], r12w
lea rax, [rsp + 0xf0]
mov rcx, r14
mov qword [rsp + 0x38], rax
mov rax, qword [rdi]
mov rdi, qword [rdi + 8]
mov qword [rsp + 0xf0], r14
mov qword [rsp + 0x40], rax
add rdi, rdi
mov r12, rdi
sar r12, 1
mov qword [rsp + 0x110], r12
mov rax, r12
cmp rdi, 0xe
ja 0x14000f3ce
cmp r12, 1
je 0x14000f35a
test r12, r12
je 0x14000f0f1
mov rdx, qword [rsp + 0x40]
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x110]
mov rcx, qword [rsp + 0xf0]
xor edi, edi
mov qword [rsp + 0xf8], rax
mov rdx, qword [rsp + 0xd0]
mov word [rcx + rax*2], di
mov rax, qword [rsp + 0xd8]
mov rcx, qword [rsp + 0x38]
lea r8, [rdx + rax*2]
call fcn.14000fdd0
mov rax, qword [rsp + 0xf0]
lea r12, [rsp + 0x120]
mov rdi, qword [rsp + 0xf8]
mov qword [rsp + 0x110], r12
cmp rax, r14
je 0x14000f3fe
mov qword [rsp + 0x110], rax
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x120], rax
xor r11d, r11d
mov r9, rbx
mov r8d, r13d
mov rdx, rbp
mov rcx, rsi
mov qword [rsp + 0x118], rdi
mov qword [rsp + 0xf0], r14
mov qword [rsp + 0xf8], 0
mov word [rsp + 0x100], r11w
call 0x140006270
mov rcx, qword [rsp + 0x110]
cmp rcx, r12
je 0x14000f1b6
mov rax, qword [rsp + 0x120]
lea rdx, [rax + rax + 2]
call fcn.1403cd470
mov rcx, qword [rsp + 0xf0]
cmp rcx, r14
je 0x14000f1d5
mov rax, qword [rsp + 0x100]
lea rdx, [rax + rax + 2]
call fcn.1403cd470
mov rcx, qword [rsp + 0xd0]
cmp rcx, r15
je 0x14000e4b6
mov rax, qword [rsp + 0xe0]
lea rdx, [rax + rax + 2]
call fcn.1403cd470
jmp 0x14000e4b6
lea rcx, [rsp + 0x80]
mov rdx, rsi
call fcn.1400106a0
cmp qword [rsp + 0x88], 0
jne 0x14000ee0d
jmp 0x14000e9e1
lock sub dword [r12], 1
jne 0x14000e4b6
mov rcx, r12
call fcn.1400022f0
mov rcx, r12
call fcn.1400022c0
jmp 0x14000e4b6
mov rdx, qword [rsp + 0x38]
movzx edx, word [rdx]
mov word [rcx], dx
jmp 0x14000ea90
lea rdx, [rsp + 0xf0]
xor r8d, r8d
mov rcx, rbp
call fcn.140399a10
mov qword [rsp + 0x110], rax
mov rcx, rax
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x120], rax
jmp 0x14000ea64
xor r8d, r8d
mov rdx, qword [rdi]
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryExW]
test eax, eax
jne 0x14000e668
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, [rsp + 0xf0]
mov r8, rbp
mov rdx, rdi
mov r12d, eax
call fcn.140005de0
cmp dword [rsp + 0xf0], 3
je 0x14000e668
lea r9, str.boost::filesystem::create_directory
xor r8d, r8d
mov rdx, rdi
mov ecx, r12d
call fcn.140014c20
jmp 0x14000e668
mov rsi, qword [rsp + 0x58]
movzx edx, word [rsi]
mov word [rcx], dx
jmp 0x14000e7fc
mov rcx, qword [rsp + 0x38]
xor r8d, r8d
mov rdx, rbp
call fcn.140399a10
mov qword [rsp + 0xf0], rax
mov rcx, rax
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x100], rax
jmp 0x14000e7d0
movzx edx, word [r14]
mov word [rcx], dx
jmp 0x14000e775
xor r8d, r8d
mov rdx, rbp
mov rcx, r9
call fcn.140399a10
mov qword [rsp + 0xd0], rax
mov rcx, rax
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0xe0], rax
jmp 0x14000e74b
mov rdi, qword [rsp + 0x40]
movzx edx, word [rdi]
mov word [rcx], dx
jmp 0x14000f0f1
movzx edx, word [r9]
mov word [rcx], dx
jmp 0x14000f06b
mov rcx, r10
xor r8d, r8d
mov rdx, rbp
mov qword [rsp + 0x38], r9
call fcn.140399a10
mov r9, qword [rsp + 0x38]
mov qword [rsp + 0xd0], rax
mov rcx, rax
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0xe0], rax
jmp 0x14000f041
mov r8, rsi
add r8, 1
je 0x14000e86b
add r8, r8
mov rdx, r14
mov rcx, r12
call sub.msvcrt.dll_memcpy
jmp 0x14000e86b
mov rcx, qword [rsp + 0x38]
xor r8d, r8d
mov rdx, rbp
call fcn.140399a10
mov qword [rsp + 0xf0], rax
mov rcx, rax
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x100], rax
jmp 0x14000f0c5
mov r8, rdi
add r8, 1
je 0x14000f15e
add r8, r8
mov rdx, r14
mov rcx, r12
call sub.msvcrt.dll_memcpy
jmp 0x14000f15e
mov rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x80]
call fcn.1400106a0
cmp qword [rsp + 0x88], 0
je 0x14000ebac
jmp 0x14000ec6a
mov rdx, qword [rsp + 0x50]
movzx edx, word [rdx]
mov word [rcx], dx
jmp 0x14000eb8b
mov rcx, qword [rsp + 0x38]
xor r8d, r8d
mov rdx, rbp
call fcn.140399a10
mov qword [rsp + 0xf0], rax
mov rcx, rax
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x100], rax
jmp 0x14000eb5d
call fcn.1402dea90
mov rcx, qword [rsp + 0x110]
mov rax, qword [rsp + 0x90]
cmp rcx, r12
je 0x14000f62c
cmp rax, r13
je 0x14000f603
mov rdx, qword [rsp + 0xa0]
mov qword [rsp + 0x90], rcx
movdqu xmm3, xmmword [rsp + 0x118]
movups xmmword [rsp + 0x98], xmm3
test rax, rax
je 0x14000f61c
mov qword [rsp + 0x110], rax
mov rcx, rax
mov qword [rsp + 0x120], rdx
xor r15d, r15d
mov qword [rsp + 0x118], r15
mov word [rcx], 0
cmp rcx, r12
jne 0x14000ed81
jmp 0x14000ed95
mov rcx, qword [rsp + 0x40]
xor edx, edx
call fcn.140002350
jmp 0x14000e6ca
mov r8, qword [rsp + 0x118]
test r8, r8
je 0x14000f554
cmp r8, 1
je 0x14000f689
add r8, r8
mov rcx, rax
mov rdx, r12
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x110]
mov r8, qword [rsp + 0x118]
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x98], r8
mov word [rax + r8*2], 0
mov r8, rcx
jmp 0x14000ecda
movdqu xmm4, xmmword [rsp + 0x118]
mov qword [rsp + 0x90], rcx
movups xmmword [rsp + 0x98], xmm4
jmp 0x14000ed06
mov r8, qword [rsp + 0x118]
test r8, r8
je 0x14000f5c6
cmp r8, 1
je 0x14000f679
add r8, r8
mov rcx, rax
mov rdx, r12
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x110]
mov rax, qword [rsp + 0xf0]
mov r8, qword [rsp + 0x118]
mov qword [rsp + 0xf8], r8
mov word [rax + r8*2], 0
jmp 0x14000ec20
movdqu xmm2, xmmword [rsp + 0x118]
mov qword [rsp + 0xf0], rcx
movups xmmword [rsp + 0xf8], xmm2
mov qword [rsp + 0x110], r12
mov rcx, r12
jmp 0x14000ec20
movdqu xmm2, xmmword [rsp + 0x118]
mov qword [rsp + 0x90], rcx
movups xmmword [rsp + 0x98], xmm2
mov qword [rsp + 0x110], r12
mov rcx, r12
jmp 0x14000f4e8
mov r8, qword [rsp + 0x118]
test r8, r8
je 0x14000f665
cmp r8, 1
je 0x14000f699
add r8, r8
mov rcx, rax
mov rdx, r12
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x110]
mov r8, qword [rsp + 0x118]
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x98], r8
mov word [rax + r8*2], 0
jmp 0x14000f4e8
movzx edx, word [rsp + 0x120]
mov word [rax], dx
jmp 0x14000f5c6
movzx edx, word [rsp + 0x120]
mov word [rax], dx
jmp 0x14000f554
movzx edx, word [rsp + 0x120]
mov word [rax], dx
jmp 0x14000f665
mov rcx, r13
call r14
mov rcx, rbx
call fcn.1401963f0
mov rcx, qword [rsp + 0x70]
cmp rcx, r14
je 0x14040cda7
mov rax, qword [rsp + 0x80]
lea rdx, [rax + 1]
add rdx, rdx
call fcn.1403cd470
jmp 0x14040cda7
mov ecx, 0x30
call fcn.1403cd580
mov r9, rdi
mov r8, rsi
movdqa xmm4, xmmword [rsp + 0xb0]
mov rbx, rax
mov rax, qword [rsp + 0xc0]
lea rdx, str.boost::filesystem::copy
mov rcx, rbx
movaps xmmword [rsp + 0x60], xmm4
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
call fcn.140014c60
lea r8, [0x140014380]
lea rdx, [0x1404e9370]
mov rcx, rbx
call fcn.1403cdb10
mov ecx, 0x30
call fcn.1403cd580
mov r9, rdi
mov r8, rsi
movdqa xmm2, xmmword [rsp + 0xb0]
mov rbx, rax
mov rax, qword [rsp + 0xc0]
lea rdx, str.boost::filesystem::copy
mov rcx, rbx
movaps xmmword [rsp + 0x60], xmm2
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
call fcn.140014c60
jmp 0x14040dda7
mov ecx, 0x30
call fcn.1403cd580
mov r9, rdi
mov r8, rsi
movdqa xmm5, xmmword [rsp + 0xb0]
mov rbx, rax
mov rax, qword [rsp + 0xc0]
lea rdx, str.boost::filesystem::copy
mov rcx, rbx
movaps xmmword [rsp + 0x60], xmm5
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
call fcn.140014c60
jmp 0x14040dda7