Function at 0x14000aa40
Capabilities:
Check if file exists
Copy file
Create directory
Delete directory
Get disk size
Get file attributes
Move file
Read file on windows
Write file on windows

Disassembly:
mov r11, rsp
push rbp
push rsi
push r14
lea rbp, [r11 - 0xc8]
sub rsp, 0x1b0
lea rsi, [rcx - 0x120]
mov r14, rcx
mov eax, dword [rsi + 0x70]
dec eax
cmp eax, 0x21
ja case.default.0x14000aa94
mov qword [r11 - 0x20], rbx
lea rcx, [0x140000000]
mov qword [r11 - 0x28], rdi
mov qword [r11 - 0x30], r12
mov qword [r11 - 0x38], r13
cdqe
mov qword [r11 - 0x40], r15
mov edx, dword [rcx + rax*4 + 0xb5bc]
add rdx, rcx
jmp rdx
mov rcx, rsi
call fcn.140008070
jmp 0x14000b575
mov rcx, rsi
call fcn.140008480
jmp 0x14000b575
mov rcx, rsi
call fcn.1400088c0
jmp 0x14000b575
mov ebx, dword [rsi + 0x150]
mov r14, qword [rsi + 0x180]
cmp ebx, 0xffffffff
jne 0x14000aae5
mov rdi, 0xfffffffffffff00d
mov dword [rsi + 0x14c], 6
jmp 0x14000b56e
xor edi, edi
mov ecx, ebx
mov dword [rbp + 0xd0], edi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__get_osfhandle]
mov r15, rax
cmp rax, 0xffffffffffffffff
jne 0x14000ab1f
lea ecx, [rdi + 6]
mov dword [rsi + 0x14c], 6
call fcn.140016510
movsxd rcx, eax
mov qword [rsi + 0x88], rcx
jmp 0x14000b575
lea rdx, [rsp + 0x60]
mov ecx, ebx
call fcn.1400076e0
test eax, eax
je 0x14000ab44
lea r8, [rsp + 0x60]
mov rdx, r15
mov rcx, rsi
call fcn.140008ab0
jmp 0x14000b575
cmp r14, 0xffffffffffffffff
je 0x14000ab8c
xor eax, eax
lea r8, [rbp + 0xe0]
mov rdx, rdi
mov qword [rsp + 0x40], rax
mov rcx, r15
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
lea r13, [rsp + 0x40]
lea r9d, [rax + 1]
mov qword [rsp + 0x58], rax
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x14000ab8f
mov dword [rbp + 0xd0], 1
jmp 0x14000ab8f
mov r13, rdi
mov ebx, edi
cmp r14, 0xffffffffffffffff
je 0x14000aba8
mov eax, ebx
add rax, r14
mov dword [rsp + 0x50], eax
shr rax, 0x20
mov dword [rsp + 0x54], eax
mov rdx, qword [rsi + 0x178]
lea r9, [rbp + 0xd8]
mov eax, edi
mov rcx, r15
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 + 0xd8]
inc edi
mov r12d, eax
test eax, eax
je 0x14000abe9
cmp edi, dword [rsi + 0x170]
jb 0x14000ab91
cmp dword [rbp + 0xd0], 0
je 0x14000ac08
mov rdx, qword [rbp + 0xe0]
xor r9d, r9d
xor r8d, r8d
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test r12d, r12d
jne 0x14000ac15
test ebx, ebx
je 0x14000b4e2
mov eax, ebx
mov qword [rsi + 0x88], rax
jmp 0x14000b575
mov r8d, dword [rsi + 0x168]
test r8b, 4
je 0x14000ac4a
mov qword [rsi + 0x88], 0xfffffffffffff02a
mov dword [rsi + 0x14c], gethostname
jmp 0x14000b575
mov rdx, qword [rsi + 0x160]
and r8d, 1
mov rcx, qword [rsi + 0x150]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
xor edi, edi
test eax, eax
jne 0x14000b56e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rsi + 0x14c], eax
call fcn.140016510
movsxd rcx, eax
mov qword [rsi + 0x88], rcx
cmp rcx, 0xfffffffffffff00e
jne 0x14000b575
mov rcx, qword [rsi + 0x150]
lea r8d, [rdi + 7]
mov qword [rsp + 0x30], rdi
xor r9d, r9d
mov dword [rsp + 0x28], 0x2000000
mov edx, 0x80
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
cmp rax, 0xffffffffffffffff
jne 0x14000acd7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x14000acf6
xor r8d, r8d
lea rdx, [rbp]
mov rcx, r14
call fcn.140009b30
test eax, eax
je 0x14000acf4
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x14000acf6
mov ebx, edi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
jne 0x14000b575
mov rcx, qword [rsi + 0x160]
lea r8d, [rbx + 7]
mov qword [rsp + 0x30], rdi
xor r9d, r9d
mov dword [rsp + 0x28], 0x2000000
mov edx, 0x80
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
cmp rax, 0xffffffffffffffff
jne 0x14000ad48
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x14000ad67
xor r8d, r8d
lea rdx, [rbp - 0x80]
mov rcx, r14
call fcn.140009b30
test eax, eax
je 0x14000ad65
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x14000ad67
mov ebx, edi
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
jne 0x14000b575
mov rax, qword [rbp - 0x80]
cmp qword [rbp], rax
jne 0x14000b575
mov rax, qword [rbp - 0x50]
cmp qword [rbp + 0x30], rax
jne 0x14000b575
jmp 0x14000b56e
mov ebx, dword [rsi + 0x188]
mov r14d, 0x10000
mov eax, dword [rsi + 0x16c]
cmp rbx, r14
mov r13d, dword [rsi + 0x150]
mov r12, qword [rsi + 0x180]
cmovb r14d, ebx
xor edi, edi
mov dword [rbp + 0xd0], eax
test r14, r14
je 0x14000b5a9
mov ecx, r14d
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r15, rax
test rax, rax
je 0x14000b5a9
cmp r12, 0xffffffffffffffff
je 0x14000ae01
xor r8d, r8d
mov rdx, r12
mov ecx, r13d
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__lseeki64]
cmp rax, 0xffffffffffffffff
je 0x14000ae52
test rbx, rbx
je 0x14000ae59
mov r12d, dword [rbp + 0xd0]
nop dword [rax]
mov r8d, r14d
cmp rbx, r14
mov rdx, r15
mov ecx, r13d
cmovb r8d, ebx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__read]
test eax, eax
je 0x14000ae59
cmp eax, 0xffffffff
je 0x14000ae52
movsxd rcx, eax
mov r8d, eax
sub rbx, rcx
mov rdx, r15
mov ecx, r12d
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__write]
cmp eax, 0xffffffff
je 0x14000ae52
add edi, eax
test rbx, rbx
jne 0x14000ae10
jmp 0x14000ae59
mov rdi, 0xffffffffffffffff
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov rcx, r15
mov ebx, dword [rax]
call qword [0x14012a640]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], ebx
movsxd rax, edi
mov qword [rsi + 0x88], rax
cmp rax, 0xffffffffffffffff
jne 0x14000b575
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll___doserrno]
mov ecx, dword [rax]
mov dword [rsi + 0x14c], ecx
call fcn.140016510
movsxd rcx, eax
mov qword [rsi + 0x88], rcx
jmp 0x14000b575
mov rcx, qword [rsi + 0x150]
mov rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], 0
jne 0x14000aeb6
xor edi, edi
mov r10, rcx
cmp rax, 1
jbe 0x14000aef0
cmp word [rcx + rax*2 - 4], 0x3a
je 0x14000aef0
movzx edx, word [rcx + rax*2 - 2]
cmp dx, 0x5c
je 0x14000aee4
cmp dx, 0x2f
jne 0x14000aef0
mov word [rcx + rax*2 - 2], di
mov r10, qword [rsi + 0x150]
xor r9d, r9d
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x2000000
mov edx, 0x80
mov rcx, r10
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 7]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r15, rax
cmp rax, 0xffffffffffffffff
jne 0x14000af31
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
add r14, 0xffffffffffffff80
jmp 0x14000af56
lea r14, [rsi + 0xa0]
xor r8d, r8d
mov rdx, r14
mov rcx, r15
call fcn.140009b30
test eax, eax
je 0x14000af54
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x14000af56
mov ebx, edi
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x14000af78
mov ecx, ebx
mov dword [rsi + 0x14c], ebx
call fcn.140016510
movsxd rdi, eax
jmp 0x14000b56e
mov qword [rsi + 0x90], r14
jmp 0x14000b56e
mov rcx, qword [rsi + 0x150]
mov rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], 0
jne 0x14000af92
xor edi, edi
mov r10, rcx
cmp rax, 1
jbe 0x14000afcc
cmp word [rcx + rax*2 - 4], 0x3a
je 0x14000afcc
movzx edx, word [rcx + rax*2 - 2]
cmp dx, 0x5c
je 0x14000afc0
cmp dx, 0x2f
jne 0x14000afcc
mov word [rcx + rax*2 - 2], di
mov r10, qword [rsi + 0x150]
xor r9d, r9d
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x2200000
mov edx, 0x80
mov rcx, r10
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 7]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r15, rax
cmp rax, 0xffffffffffffffff
jne 0x14000b00d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
add r14, 0xffffffffffffff80
jmp 0x14000b035
lea r14, [rsi + 0xa0]
mov r8d, 1
mov rdx, r14
mov rcx, r15
call fcn.140009b30
test eax, eax
je 0x14000b033
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x14000b035
mov ebx, edi
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x14000af78
cmp ebx, 0x5b8
je 0x14000b072
cmp ebx, 0x1126
je 0x14000b072
mov ecx, ebx
mov dword [rsi + 0x14c], ebx
call fcn.140016510
movsxd rcx, eax
mov qword [rsi + 0x88], rcx
jmp 0x14000b575
xor edx, edx
mov rcx, rsi
call fcn.140009e40
jmp 0x14000b575
mov ecx, dword [rsi + 0x150]
cmp ecx, 0xffffffff
jne 0x14000b0a2
mov dword [rsi + 0x14c], 6
mov rdi, 0xfffffffffffff00d
jmp 0x14000b56e
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__get_osfhandle]
cmp rax, 0xffffffffffffffff
jne 0x14000b0ca
mov ecx, 6
mov dword [rsi + 0x14c], 6
call fcn.140016510
movsxd rdi, eax
jmp 0x14000b56e
lea rbx, [rsi + 0xa0]
xor r8d, r8d
mov rdx, rbx
mov rcx, rax
call fcn.140009b30
test eax, eax
je 0x14000b0fe
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rsi + 0x14c], eax
call fcn.140016510
movsxd rdi, eax
jmp 0x14000b56e
mov qword [rsi + 0x90], rbx
xor edi, edi
jmp 0x14000b56e
mov rcx, rsi
call fcn.140009f70
jmp 0x14000b575
mov rcx, qword [rsi + 0x150]
xor edi, edi
mov qword [rsp + 0x30], rdi
xor r9d, r9d
mov dword [rsp + 0x28], 0x2000000
mov edx, 0x100
mov dword [rsp + 0x20], 3
lea r8d, [rdi + 7]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x14000b4e2
movsd xmm2, qword [rsi + 0x160]
mov rcx, rax
movsd xmm1, qword [rsi + 0x158]
call fcn.14000a350
test eax, eax
jne 0x14000b45c
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14000b56e
mov ecx, dword [rsi + 0x150]
cmp ecx, 0xffffffff
je 0x14000b08c
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__get_osfhandle]
cmp rax, 0xffffffffffffffff
je 0x14000b0ae
movsd xmm2, qword [rsi + 0x160]
mov rcx, rax
movsd xmm1, qword [rsi + 0x158]
call fcn.14000a350
test eax, eax
je case.0x14000aa94.26
jmp 0x14000b0e3
mov rcx, qword [rsi + 0x150]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x14000b1fc
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rsi + 0x14c], eax
call fcn.140016510
movsxd rdi, eax
mov qword [r14 - 0x98], rdi
jmp 0x14000b575
test byte [rsi + 0x158], 2
je 0x14000b22e
and al, 0x11
cmp al, 1
jne 0x14000b22e
mov ecx, 0xfffff030
mov dword [rsi + 0x14c], 0xfffff030
call fcn.140016510
movsxd rdi, eax
mov qword [r14 - 0x98], rdi
jmp 0x14000b575
xor edi, edi
mov qword [r14 - 0x98], rdi
jmp 0x14000b575
mov edx, dword [rsi + 0x158]
mov rcx, qword [rsi + 0x150]
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wchmod]
movsxd rcx, eax
mov qword [rsi + 0x88], rcx
cmp rcx, 0xffffffffffffffff
jne 0x14000b575
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll___doserrno]
mov ecx, dword [rax]
mov dword [rsi + 0x14c], ecx
call fcn.140016510
movsxd rcx, eax
mov qword [rsi + 0x88], rcx
jmp 0x14000b575
mov rcx, rsi
call fcn.14000a150
jmp 0x14000b575
mov rcx, rsi
call fcn.140009ef0
jmp 0x14000b575
mov rcx, rsi
call fcn.140008df0
jmp 0x14000b575
mov rcx, qword [rsi + 0x150]
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wrmdir]
movsxd rcx, eax
mov qword [rsi + 0x88], rcx
cmp rcx, 0xffffffffffffffff
jne 0x14000b575
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll___doserrno]
mov ecx, dword [rax]
mov dword [rsi + 0x14c], ecx
call fcn.140016510
movsxd rcx, eax
mov qword [rsi + 0x88], rcx
jmp 0x14000b575
mov rcx, qword [rsi + 0x150]
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wmkdir]
movsxd rcx, eax
mov qword [rsi + 0x88], rcx
cmp rcx, 0xffffffffffffffff
jne 0x14000b575
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll___doserrno]
mov ecx, dword [rax]
mov dword [rsi + 0x14c], ecx
cmp ecx, 0x7b
jne 0x14000b336
mov eax, 0xfffff019
cdqe
mov qword [rsi + 0x88], rax
jmp 0x14000b575
call fcn.140016510
cdqe
mov qword [rsi + 0x88], rax
jmp 0x14000b575
mov rcx, rsi
call fcn.140008fb0
jmp 0x14000b575
mov rdx, qword [rsi + 0x160]
mov r8d, 1
mov rcx, qword [rsi + 0x150]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne case.0x14000aa94.26
jmp 0x14000b0e3
mov rcx, rsi
call fcn.140009350
jmp 0x14000b575
mov rcx, rsi
call fcn.140009940
jmp 0x14000b575
mov rcx, rsi
call fcn.140009790
jmp 0x14000b575
mov rcx, qword [rsi + 0x90]
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rbx, qword [rsi + 0x90]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov rcx, rbx
mov edi, dword [rax]
call qword [0x14012a640]
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov dword [rax], edi
xor edi, edi
jmp 0x14000b56e
mov rdx, qword [rsi + 0x150]
xor r8d, r8d
mov rcx, qword [rsi + 0x160]
call qword [sym.imp.KERNEL32.dll_CreateHardLinkW]
test eax, eax
jne case.0x14000aa94.26
jmp 0x14000b0e3
mov rcx, rsi
call fcn.14000a770
jmp 0x14000b575
mov rcx, qword [rsi + 0x150]
xor edi, edi
mov qword [rsp + 0x30], rdi
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
je 0x14000b4e2
lea rdx, [rsi + 0x90]
xor r8d, r8d
mov rcx, rax
call fcn.140007e30
test eax, eax
je 0x14000b487
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rsi + 0x14c], eax
call fcn.140016510
movsxd rcx, eax
mov qword [rsi + 0x88], rcx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14000b575
or dword [rsi + 0x148], 8
mov rcx, rbx
mov qword [rsi + 0x88], rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14000b575
mov rcx, rsi
call fcn.14000a840
jmp 0x14000b575
mov rcx, qword [rsi + 0x150]
lea rax, [rbp + 0xe8]
lea r9, [rbp + 0xd0]
mov qword [rsp + 0x20], rax
lea r8, [rbp + 0xe0]
lea rdx, [rbp + 0xd8]
call qword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceW]
test eax, eax
jne 0x14000b501
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rsi + 0x14c], eax
call fcn.140016510
movsxd rcx, eax
mov qword [rsi + 0x88], rcx
jmp 0x14000b575
mov ecx, 0x58
call qword [sub.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rcx, rax
test rax, rax
jne 0x14000b52b
mov qword [rsi + 0x88], 0xfffffffffffff027
mov dword [rsi + 0x14c], shutdown
jmp 0x14000b575
xor edi, edi
mov qword [rax], rdi
mov eax, dword [rbp + 0xd8]
imul eax, dword [rbp + 0xe0]
mov qword [rcx + 8], rax
mov eax, dword [rbp + 0xe8]
mov qword [rcx + 0x10], rax
mov eax, dword [rbp + 0xd0]
mov qword [rcx + 0x18], rax
mov eax, dword [rbp + 0xd0]
mov qword [rcx + 0x20], rax
mov qword [rcx + 0x28], rdi
mov qword [rcx + 0x30], rdi
mov qword [rsi + 0x90], rcx
mov qword [rsi + 0x88], rdi
mov r13, qword [rsp + 0x190]
mov r12, qword [rsp + 0x198]
mov rdi, qword [rsp + 0x1a0]
mov rbx, qword [rsp + 0x1a8]
mov r15, qword [rsp + 0x188]
add rsp, 0x1b0
pop r14
pop rsi
pop rbp
ret
lea rdx, str.uv__malloc
mov ecx, ntohs
call fcn.140016450
int3