Function at 0x140043b30
Capabilities:
Check if file exists
Copy file
Create directory
Get file attributes
Move file
Read file on windows
Write file on windows

Disassembly:
mov r11, rsp
push rbp
push rdi
lea rbp, [r11 - 0x5f]
sub rsp, 0xa8
mov rax, qword [0x1400bf018]
xor rax, rsp
mov qword [rbp + 0x27], rax
mov rdi, rcx
add rcx, 0xfffffffffffffee0
mov eax, dword [rdi - 0xb0]
dec eax
cmp eax, 0x1c
ja case.default.0x140043b95
mov qword [r11 + 0x10], rbx
lea r8, [0x140000000]
mov qword [r11 + 0x18], rsi
mov qword [r11 + 0x20], r12
mov qword [r11 - 0x18], r13
mov qword [r11 - 0x20], r14
cdqe
mov qword [r11 - 0x28], r15
mov edx, dword [r8 + rax*4 + 0x44414]
add rdx, r8
jmp rdx
call fcn.1400423a0
jmp 0x140044024
mov ecx, dword [rdi + 0x30]
cmp ecx, 0xffffffff
je 0x140043bc2
xor esi, esi
cmp ecx, 2
jle 0x140043bb7
call fcn.140064ce8
jmp 0x140043bb9
mov eax, esi
cmp eax, 0xffffffff
jne 0x14004401d
mov rsi, 0xfffffffffffff00d
mov dword [rdi + 0x2c], 6
jmp 0x14004401d
mov ecx, dword [rdi + 0x30]
mov r14, qword [rdi + 0x60]
cmp ecx, 0xffffffff
jne 0x140043bfe
mov rsi, 0xfffffffffffff00d
mov dword [rdi + 0x2c], 6
lea r8, [rdi - 0x98]
mov qword [r8], rsi
jmp 0x140044024
xor esi, esi
mov dword [rbp - 0x19], esi
call fcn.140063d7c
mov r12, rax
cmp rax, 0xffffffffffffffff
jne 0x140043c32
lea ecx, [rsi + 6]
mov dword [rdi + 0x2c], 6
call fcn.140049560
movsxd rsi, eax
lea r8, [rdi - 0x98]
mov qword [r8], rsi
jmp 0x140044024
cmp r14, 0xffffffffffffffff
je 0x140043c6f
xor eax, eax
lea r8, [rbp - 0x11]
mov rdx, rsi
mov qword [rbp - 1], rax
mov rcx, r12
mov qword [rbp + 7], rax
mov qword [rbp + 0xf], rax
lea r13, [rbp - 1]
lea r9d, [rax + 1]
mov qword [rbp + 0x17], rax
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x140043c72
mov dword [rbp - 0x19], 1
jmp 0x140043c72
mov r13, rsi
mov ebx, esi
cmp r14, 0xffffffffffffffff
je 0x140043c89
mov eax, ebx
add rax, r14
mov dword [rbp + 0xf], eax
shr rax, 0x20
mov dword [rbp + 0x13], eax
mov rdx, qword [rdi + 0x58]
lea r9, [rbp - 0x15]
mov eax, esi
mov rcx, r12
add rax, rax
mov qword [rsp + 0x20], r13
mov r8d, dword [rdx + rax*8]
mov rdx, qword [rdx + rax*8 + 8]
call qword [sym.imp.KERNEL32.dll_ReadFile]
add ebx, dword [rbp - 0x15]
inc esi
mov r15d, eax
test eax, eax
je 0x140043cbe
cmp esi, dword [rdi + 0x50]
jb 0x140043c74
cmp dword [rbp - 0x19], 0
je 0x140043cd7
mov rdx, qword [rbp - 0x11]
xor r9d, r9d
xor r8d, r8d
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test r15d, r15d
jne 0x140043d11
test ebx, ebx
jne 0x140043d11
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea r8, [rdi - 0x98]
cmp eax, 0x26
jne 0x140043cfc
mov esi, ebx
mov qword [r8], rsi
jmp 0x140044024
mov ecx, eax
mov dword [rdi + 0x2c], eax
call fcn.140049560
movsxd rsi, eax
mov qword [r8], rsi
jmp 0x140044024
mov esi, ebx
lea r8, [rdi - 0x98]
mov qword [r8], rsi
jmp 0x140044024
mov ecx, dword [rdi + 0x30]
mov r14, qword [rdi + 0x60]
cmp ecx, 0xffffffff
jne 0x140043d41
mov dword [rdi + 0x2c], 6
mov rsi, 0xfffffffffffff00d
jmp 0x14004401d
xor esi, esi
mov dword [rbp - 0x19], esi
call fcn.140063d7c
mov r12, rax
cmp rax, 0xffffffffffffffff
jne 0x140043d6d
mov ecx, 6
mov dword [rdi + 0x2c], 6
call fcn.140049560
movsxd rsi, eax
jmp 0x14004401d
cmp r14, 0xffffffffffffffff
je 0x140043daa
xor eax, eax
lea r8, [rbp - 0x11]
mov rdx, rsi
mov qword [rbp - 1], rax
mov rcx, r12
mov qword [rbp + 7], rax
mov qword [rbp + 0xf], rax
lea r13, [rbp - 1]
lea r9d, [rax + 1]
mov qword [rbp + 0x17], rax
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x140043dad
mov dword [rbp - 0x19], 1
jmp 0x140043dad
mov r13, rsi
mov ebx, esi
nop
cmp r14, 0xffffffffffffffff
je 0x140043dc5
mov eax, ebx
add rax, r14
mov dword [rbp + 0xf], eax
shr rax, 0x20
mov dword [rbp + 0x13], eax
mov rdx, qword [rdi + 0x58]
lea r9, [rbp - 0x15]
mov eax, esi
mov rcx, r12
add rax, rax
mov qword [rsp + 0x20], r13
mov r8d, dword [rdx + rax*8]
mov rdx, qword [rdx + rax*8 + 8]
call qword [sym.imp.KERNEL32.dll_WriteFile]
add ebx, dword [rbp - 0x15]
inc esi
mov r15d, eax
test eax, eax
je 0x140043dfa
cmp esi, dword [rdi + 0x50]
jb 0x140043db0
cmp dword [rbp - 0x19], 0
je 0x140043e13
mov rdx, qword [rbp - 0x11]
xor r9d, r9d
xor r8d, r8d
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test r15d, r15d
jne 0x140043e1c
test ebx, ebx
je 0x140043e5a
mov esi, ebx
jmp 0x14004401d
mov r8d, dword [rdi + 0x48]
test r8b, 4
je 0x140043e40
mov dword [rdi + 0x2c], 0x32
mov rsi, 0xfffffffffffff02a
jmp 0x14004401d
mov rdx, qword [rdi + 0x40]
and r8d, 1
mov rcx, qword [rdi + 0x30]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne case.0x140043b95.26
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rdi + 0x2c], eax
call fcn.140049560
movsxd rsi, eax
jmp 0x14004401d
mov ebx, dword [rdi + 0x68]
mov r14d, 0x10000
mov eax, dword [rdi + 0x4c]
cmp rbx, r14
mov r13d, dword [rdi + 0x30]
mov r12, qword [rdi + 0x60]
cmovb r14d, ebx
mov ecx, r14d
mov dword [rbp - 0x15], eax
xor esi, esi
call qword [fcn.140061ddc]
mov r15, rax
test rax, rax
je 0x140044400
cmp r12, 0xffffffffffffffff
je 0x140043ec1
xor r8d, r8d
mov rdx, r12
mov ecx, r13d
call fcn.140064084
cmp rax, 0xffffffffffffffff
je 0x140043f10
test rbx, rbx
je 0x140043f17
mov r12d, dword [rbp - 0x15]
nop word [rax + rax]
mov r8d, r14d
cmp rbx, r14
mov rdx, r15
mov ecx, r13d
cmovb r8d, ebx
call fcn.140064684
test eax, eax
je 0x140043f17
cmp eax, 0xffffffff
je 0x140043f10
movsxd rcx, eax
mov r8d, eax
sub rbx, rcx
mov rdx, r15
mov ecx, r12d
call fcn.140065400
cmp eax, 0xffffffff
je 0x140043f10
add esi, eax
test rbx, rbx
jne 0x140043ed0
jmp 0x140043f17
mov rsi, 0xffffffffffffffff
call fcn.140063860
mov rcx, r15
mov ebx, dword [rax]
call qword [fcn.140062194]
call fcn.140063860
mov dword [rax], ebx
movsxd rax, esi
mov qword [rdi - 0x98], rax
cmp rax, 0xffffffffffffffff
jmp 0x1400442dd
mov rdx, qword [rdi + 0x30]
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140043f50
cmp rax, 1
jbe 0x140043f83
cmp word [rdx + rax*2 - 4], 0x3a
je 0x140043f83
movzx r8d, word [rdx + rax*2 - 2]
cmp r8w, 0x5c
je 0x140043f7c
cmp r8w, 0x2f
jne 0x140043f83
xor esi, esi
mov word [rdx + rax*2 - 2], si
xor edx, edx
call fcn.140043260
jmp 0x140044024
mov rdx, qword [rdi + 0x30]
mov rax, 0xffffffffffffffff
nop word [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x140043fa0
cmp rax, 1
jbe 0x140043fd3
cmp word [rdx + rax*2 - 4], 0x3a
je 0x140043fd3
movzx r8d, word [rdx + rax*2 - 2]
cmp r8w, 0x5c
je 0x140043fcc
cmp r8w, 0x2f
jne 0x140043fd3
xor esi, esi
mov word [rdx + rax*2 - 2], si
mov edx, 1
call fcn.140043260
jmp 0x140044024
mov ecx, dword [rdi + 0x30]
cmp ecx, 0xffffffff
je 0x140043d2e
call fcn.140063d7c
cmp rax, 0xffffffffffffffff
je 0x140043d54
lea rbx, [rdi - 0x80]
xor r8d, r8d
mov rdx, rbx
mov rcx, rax
call fcn.140042fe0
test eax, eax
jne 0x140043e5a
mov qword [rdi - 0x90], rbx
xor esi, esi
mov qword [rdi - 0x98], rsi
mov r14, qword [rsp + 0x98]
mov r13, qword [rsp + 0xa0]
mov r12, qword [rsp + 0xd8]
mov rsi, qword [rsp + 0xd0]
mov rbx, qword [rsp + 0xc8]
mov r15, qword [rsp + 0x90]
mov rcx, qword [rbp + 0x27]
xor rcx, rsp
call fcn.140059450
add rsp, 0xa8
pop rdi
pop rbp
ret
mov ecx, dword [rdi + 0x30]
cmp ecx, 0xffffffff
je 0x140043d2e
call fcn.140063d7c
mov rcx, qword [rdi + 0x60]
lea r8, [rbp - 0x11]
mov qword [rbp - 0x11], rcx
lea rdx, [rbp - 1]
mov rcx, rax
mov dword [rsp + 0x20], shutdown
mov r9d, 8
call qword [0x1400cda90]
test eax, eax
jns case.0x140043b95.26
mov ecx, eax
call qword [0x1400cdaa8]
mov ecx, eax
mov dword [rdi + 0x2c], eax
call fcn.140049560
movsxd rsi, eax
jmp 0x14004401d
mov rcx, qword [rdi + 0x30]
xor esi, esi
mov qword [rsp + 0x30], rsi
xor r9d, r9d
mov dword [rsp + 0x28], 0x2000000
mov edx, 0x100
mov dword [rsp + 0x20], 3
lea r8d, [rsi + 7]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x140044380
movsd xmm2, qword [rdi + 0x40]
mov rcx, rax
movsd xmm1, qword [rdi + 0x38]
call fcn.140043400
test eax, eax
jne 0x1400443b5
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14004401d
mov ecx, dword [rdi + 0x30]
cmp ecx, 0xffffffff
je 0x140043d2e
call fcn.140063d7c
cmp rax, 0xffffffffffffffff
je 0x140043d54
movsd xmm2, qword [rdi + 0x40]
mov rcx, rax
movsd xmm1, qword [rdi + 0x38]
call fcn.140043400
test eax, eax
je case.0x140043b95.26
jmp 0x140043e5a
mov rcx, qword [rdi + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140043e5a
test byte [rdi + 0x38], 2
je case.0x140043b95.26
and al, 0x11
cmp al, 1
jne case.0x140043b95.26
mov ecx, 0xfffff030
mov dword [rdi + 0x2c], 0xfffff030
call fcn.140049560
movsxd rsi, eax
jmp 0x14004401d
mov edx, dword [rdi + 0x38]
mov rcx, qword [rdi + 0x30]
call fcn.140065b68
movsxd rcx, eax
mov qword [rdi - 0x98], rcx
cmp rcx, 0xffffffffffffffff
jne 0x140044024
call fcn.140063840
mov ecx, dword [rax]
mov dword [rdi + 0x2c], ecx
call fcn.140049560
movsxd rcx, eax
mov qword [rdi - 0x98], rcx
jmp 0x140044024
mov ecx, dword [rdi + 0x30]
cmp ecx, 0xffffffff
je 0x140043bc2
call fcn.140063d7c
mov r9d, 0x28
mov dword [rsp + 0x20], 4
lea r8, [rbp - 1]
mov rcx, rax
lea rdx, [rbp - 0x11]
mov rbx, rax
call qword [0x1400cda70]
test eax, eax
js 0x140044248
test byte [rdi + 0x38], 0x80
je 0x140044221
and dword [rbp + 0x1f], 0xfffffffe
jmp 0x140044225
or dword [rbp + 0x1f], 1
mov r9d, 0x28
mov dword [rsp + 0x20], 4
lea r8, [rbp - 1]
mov rcx, rbx
lea rdx, [rbp - 0x11]
call qword [0x1400cda90]
test eax, eax
jns 0x140044269
mov ecx, eax
call qword [0x1400cdaa8]
mov ecx, eax
mov dword [rdi + 0x2c], eax
call fcn.140049560
movsxd rcx, eax
mov qword [rdi - 0x98], rcx
jmp 0x140044024
xor esi, esi
mov qword [rdi - 0xe0], rsi
jmp 0x140044024
call fcn.140043380
jmp 0x140044024
call fcn.140042670
jmp 0x140044024
mov rcx, qword [rdi + 0x30]
call fcn.1400640c0
movsxd rcx, eax
mov qword [rdi - 0x98], rcx
cmp rcx, 0xffffffffffffffff
jne 0x140044024
call fcn.140063840
mov ecx, dword [rax]
mov dword [rdi + 0x2c], ecx
call fcn.140049560
movsxd rcx, eax
mov qword [rdi - 0x98], rcx
jmp 0x140044024
mov rcx, qword [rdi + 0x30]
call fcn.140064094
movsxd rcx, eax
mov qword [rdi - 0x98], rcx
cmp rcx, 0xffffffffffffffff
jne 0x140044024
call fcn.140063840
mov ecx, dword [rax]
mov dword [rdi + 0x2c], ecx
call fcn.140049560
movsxd rcx, eax
mov qword [rdi - 0x98], rcx
jmp 0x140044024
call fcn.140042830
jmp 0x140044024
mov rdx, qword [rdi + 0x40]
mov r8d, 1
mov rcx, qword [rdi + 0x30]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x140043e52
call fcn.140042bc0
jmp 0x140044024
mov rdx, qword [rdi + 0x30]
xor r8d, r8d
mov rcx, qword [rdi + 0x40]
call qword [sym.imp.KERNEL32.dll_CreateHardLinkW]
jmp 0x140043e52
call fcn.140043810
jmp 0x140044024
mov rcx, qword [rdi + 0x30]
xor esi, esi
mov qword [rsp + 0x30], rsi
xor r9d, r9d
mov dword [rsp + 0x28], 0x2200000
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
jne 0x14004439f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rdi + 0x2c], eax
call fcn.140049560
movsxd rcx, eax
mov qword [rdi - 0x98], rcx
jmp 0x140044024
lea rdx, [rdi - 0x90]
xor r8d, r8d
mov rcx, rbx
call fcn.140042160
test eax, eax
je 0x1400443dd
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rdi + 0x2c], eax
call fcn.140049560
movsxd rcx, eax
mov qword [rdi - 0x98], rcx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x140044024
or dword [rdi + 0x28], 8
mov rcx, rbx
mov qword [rdi - 0x98], rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x140044024
call fcn.140043910
jmp 0x140044024
lea rdx, str.uv__malloc
mov ecx, recv
call fcn.1400494b0
int3