Function at 0x1400afd10
Capabilities:
Check if file exists
Copy file
Create directory
Get file attributes
Move file

Disassembly:
mov r11, rsp
push rdi
sub rsp, 0x180
mov rdi, rcx
add rcx, 0xfffffffffffffee0
mov eax, dword [rdi - 0xb0]
dec eax
cmp eax, 0x23
ja case.default.0x1400afd62
mov qword [r11 + 8], rbx
lea r8, [0x140000000]
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
mov qword [r11 - 0x10], r12
mov qword [r11 - 0x20], r14
cdqe
mov qword [r11 - 0x28], r15
mov edx, dword [r8 + rax*4 + 0xb06a8]
add rdx, r8
jmp rdx
call fcn.1400ad410
jmp 0x1400affc1
call fcn.1400ac4e0
jmp 0x1400affc1
call fcn.1400ad7f0
jmp 0x1400affc1
call fcn.1400af320
jmp 0x1400affc1
mov r8d, dword [rdi + 0x48]
test r8b, 4
je 0x1400afdad
mov qword [rdi - 0x98], 0xfffffffffffff02a
mov dword [rdi + 0x2c], getprotobyname
jmp 0x1400affc1
mov rdx, qword [rdi + 0x40]
and r8d, 1
mov rcx, qword [rdi + 0x30]
call qword [sym.imp.KERNEL32.dll_CopyFileW]
xor ebx, ebx
test eax, eax
jne 0x1400b0579
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rdi + 0x2c], eax
call fcn.1400b5700
movsxd rcx, eax
mov qword [rdi - 0x98], rcx
cmp rcx, 0xfffffffffffff00e
jne 0x1400affc1
mov rcx, qword [rdi + 0x30]
lea r8d, [rbx + 7]
mov qword [rsp + 0x30], rbx
xor r9d, r9d
mov dword [rsp + 0x28], 0x2000000
mov edx, 0x80
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x1400afe2e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x1400afe5a
xor r8d, r8d
lea rdx, [rsp + 0xc0]
mov rcx, rbp
call fcn.1400ae750
test eax, eax
je 0x1400afe4f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x1400afe51
mov esi, ebx
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
jne 0x1400affc1
mov rcx, qword [rdi + 0x40]
lea r8d, [rsi + 7]
mov qword [rsp + 0x30], rbx
xor r9d, r9d
mov dword [rsp + 0x28], 0x2000000
mov edx, 0x80
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x1400afea0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x1400afec9
xor r8d, r8d
lea rdx, [rsp + 0x40]
mov rcx, rbp
call fcn.1400ae750
test eax, eax
je 0x1400afebe
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x1400afec0
mov esi, ebx
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
jne 0x1400affc1
mov rax, qword [rsp + 0x40]
cmp qword [rsp + 0xc0], rax
jne 0x1400affc1
mov rax, qword [rsp + 0x70]
cmp qword [rsp + 0xf0], rax
jne 0x1400affc1
mov qword [rdi - 0x98], rbx
jmp 0x1400affc1
mov esi, dword [rdi + 0x68]
mov r14d, 0x10000
mov r12d, dword [rdi + 0x30]
cmp rsi, r14
mov r15, qword [rdi + 0x60]
cmovb r14d, esi
mov qword [rsp + 0x170], r13
mov r13d, dword [rdi + 0x4c]
mov ecx, r14d
xor ebx, ebx
call fcn.1400a8170
mov rbp, rax
test rax, rax
je 0x1400b0694
cmp r15, 0xffffffffffffffff
je 0x1400aff57
xor r8d, r8d
mov rdx, r15
mov ecx, r12d
call fcn.1400ea020
cmp rax, 0xffffffffffffffff
je 0x1400affa0
test rsi, rsi
je 0x1400affa7
nop dword [rax]
mov r8d, r14d
cmp rsi, r14
mov rdx, rbp
mov ecx, r12d
cmovb r8d, esi
call fcn.1400e8c1c
test eax, eax
je 0x1400affa7
cmp eax, 0xffffffff
je 0x1400affa0
movsxd rcx, eax
mov r8d, eax
sub rsi, rcx
mov rdx, rbp
mov ecx, r13d
call fcn.1400e9994
cmp eax, 0xffffffff
je 0x1400affa0
add ebx, eax
test rsi, rsi
jne 0x1400aff60
jmp 0x1400affa7
mov rbx, 0xffffffffffffffff
mov rcx, rbp
call fcn.1400a7f70
mov r13, qword [rsp + 0x170]
movsxd rax, ebx
mov qword [rdi - 0x98], rax
mov r14, qword [rsp + 0x168]
mov r12, qword [rsp + 0x178]
mov rsi, qword [rsp + 0x1a0]
mov rbp, qword [rsp + 0x198]
mov rbx, qword [rsp + 0x190]
mov r15, qword [rsp + 0x160]
add rsp, 0x180
pop rdi
ret
mov rax, qword [rdi + 0x30]
mov rsi, 0xffffffffffffffff
inc rsi
cmp word [rax + rsi*2], 0
jne 0x1400b0005
cmp rsi, 1
jbe 0x1400b0035
cmp word [rax + rsi*2 - 4], 0x3a
je 0x1400b0035
movzx edx, word [rax + rsi*2 - 2]
cmp dx, 0x5c
je 0x1400b002e
cmp dx, 0x2f
jne 0x1400b0035
xor ebx, ebx
mov word [rax + rsi*2 - 2], bx
xor edx, edx
call fcn.1400ae9c0
jmp 0x1400affc1
mov rax, qword [rdi + 0x30]
mov rsi, 0xffffffffffffffff
nop dword [rax]
inc rsi
cmp word [rax + rsi*2], 0
jne 0x1400b0050
cmp rsi, 1
jbe 0x1400b0080
cmp word [rax + rsi*2 - 4], 0x3a
je 0x1400b0080
movzx edx, word [rax + rsi*2 - 2]
cmp dx, 0x5c
je 0x1400b0079
cmp dx, 0x2f
jne 0x1400b0080
xor ebx, ebx
mov word [rax + rsi*2 - 2], bx
mov edx, 1
call fcn.1400ae9c0
jmp 0x1400affc1
mov esi, dword [rdi + 0x30]
cmp esi, 0xffffffff
jne 0x1400b00b1
mov rbx, 0xfffffffffffff00d
mov dword [rdi + 0x2c], 6
mov qword [rdi - 0x98], rbx
jmp 0x1400affc1
mov ecx, esi
call fcn.1400e7c40
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x1400b00df
lea ecx, [rax + 7]
mov dword [rdi + 0x2c], 6
call fcn.1400b5700
movsxd rbx, eax
mov qword [rdi - 0x98], rbx
jmp 0x1400affc1
mov ecx, esi
lea rbx, [rdi - 0x80]
call fcn.1400a7c30
mov ecx, eax
test eax, eax
je 0x1400b0187
cmp eax, 7
je 0x1400b011b
cmp eax, 0xe
je 0x1400b011b
cmp eax, 0x11
jne 0x1400b0187
xor r8d, r8d
mov rdx, rbx
mov rcx, rbp
call fcn.1400ae750
test eax, eax
je 0x1400b0172
jmp 0x1400b0192
xorps xmm0, xmm0
cmp ecx, 0xe
movups xmmword [rbx], xmm0
mov edx, 0x2000
mov eax, 0x1000
movups xmmword [rbx + 0x10], xmm0
cmove eax, edx
mov edx, 0x50
movups xmmword [rbx + 0x20], xmm0
movups xmmword [rbx + 0x30], xmm0
movups xmmword [rbx + 0x40], xmm0
movups xmmword [rbx + 0x50], xmm0
movups xmmword [rbx + 0x60], xmm0
movups xmmword [rbx + 0x70], xmm0
mov qword [rbx + 8], rax
mov eax, select
cmove eax, edx
mov qword [rbx + 0x10], 1
shl rax, 0x10
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rbp
mov qword [rdi - 0x90], rbx
xor ebx, ebx
mov qword [rdi - 0x98], rbx
jmp 0x1400affc1
mov ecx, 6
call qword [sym.imp.KERNEL32.dll_SetLastError]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rdi + 0x2c], eax
call fcn.1400b5700
movsxd rbx, eax
mov qword [rdi - 0x98], rbx
jmp 0x1400affc1
call fcn.1400acc20
jmp 0x1400affc1
mov rcx, qword [rdi + 0x30]
xor ebx, ebx
movaps xmmword [rsp + 0x150], xmm6
xor r9d, r9d
movsd xmm6, qword [rdi + 0x40]
mov edx, 0x100
mov qword [rsp + 0x30], rbx
lea r8d, [rbx + 7]
movaps xmmword [rsp + 0x140], xmm7
movsd xmm7, qword [rdi + 0x38]
mov dword [rsp + 0x28], 0x2000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbp, rax
cmp rax, 0xffffffffffffffff
jne 0x1400b0215
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x1400b023c
movaps xmm2, xmm6
movaps xmm1, xmm7
mov rcx, rbp
call fcn.1400af000
test eax, eax
je 0x1400b0231
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x1400b0233
mov esi, ebx
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
movaps xmm7, xmmword [rsp + 0x140]
movaps xmm6, xmmword [rsp + 0x150]
test esi, esi
je 0x1400b025d
mov ecx, esi
mov dword [rdi + 0x2c], esi
call fcn.1400b5700
movsxd rbx, eax
mov qword [rdi - 0x98], rbx
jmp 0x1400affc1
mov ecx, dword [rdi + 0x30]
cmp ecx, 0xffffffff
jne 0x1400b028b
mov rbx, 0xfffffffffffff00d
mov dword [rdi + 0x2c], 6
mov qword [rdi - 0x98], rbx
jmp 0x1400affc1
call fcn.1400e7c40
cmp rax, 0xffffffffffffffff
jne 0x1400b02b4
lea ecx, [rax + 7]
mov dword [rdi + 0x2c], 6
call fcn.1400b5700
movsxd rbx, eax
mov qword [rdi - 0x98], rbx
jmp 0x1400affc1
movsd xmm2, qword [rdi + 0x40]
mov rcx, rax
movsd xmm1, qword [rdi + 0x38]
call fcn.1400af000
test eax, eax
je case.0x1400afd62.26
jmp 0x1400b059a
mov edx, 1
call fcn.1400af080
jmp 0x1400affc1
mov rcx, qword [rdi + 0x30]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400b059a
test byte [rdi + 0x38], 2
je case.0x1400afd62.26
and al, 0x11
cmp al, 1
jne case.0x1400afd62.26
mov ecx, 0xfffff030
mov dword [rdi + 0x2c], 0xfffff030
call fcn.1400b5700
movsxd rbx, eax
mov qword [rdi - 0x98], rbx
jmp 0x1400affc1
mov edx, dword [rdi + 0x38]
mov rcx, qword [rdi + 0x30]
call fcn.1400e83bc
jmp 0x1400b035e
call fcn.1400aca20
jmp 0x1400affc1
call fcn.1400aedc0
jmp 0x1400affc1
call fcn.1400aee40
jmp 0x1400affc1
mov rcx, qword [rdi + 0x30]
call fcn.1400e8394
cmp eax, 0xffffffff
jne case.0x1400afd62.26
call fcn.1400de4c0
mov ecx, dword [rax]
mov dword [rdi + 0x2c], ecx
call fcn.1400b5700
movsxd rbx, eax
mov qword [rdi - 0x98], rbx
jmp 0x1400affc1
mov rcx, qword [rdi + 0x30]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne case.0x1400afd62.26
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rdi + 0x2c], eax
call fcn.1400b5700
movsxd rcx, eax
mov eax, dword [rdi + 0x2c]
mov qword [rdi - 0x98], rcx
cmp eax, 0x7b
je 0x1400b03c6
cmp eax, 0x10b
jne 0x1400affc1
mov qword [rdi - 0x98], 0xfffffffffffff019
jmp 0x1400affc1
lea rdx, [0x1400acf90]
call fcn.1400ad120
jmp 0x1400affc1
lea rdx, [0x1400ad000]
call fcn.1400ad120
jmp 0x1400affc1
mov rdx, qword [rdi + 0x40]
mov r8d, 1
mov rcx, qword [rdi + 0x30]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
jmp 0x1400b0596
call fcn.1400ae290
jmp 0x1400affc1
call fcn.1400adc40
jmp 0x1400affc1
mov rbp, qword [rdi + 0x30]
xor ebx, ebx
mov rcx, rbp
mov r14d, ebx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
jne 0x1400b044e
mov dword [rdi + 0x2c], 0x10b
mov rax, 0xfffffffffffff02c
jmp 0x1400b051b
mov ecx, 0x290
call fcn.1400a8170
mov r14, rax
test rax, rax
jne 0x1400b0473
mov dword [rdi + 0x2c], select
mov rax, 0xfffffffffffff027
jmp 0x1400b051b
mov rsi, 0xffffffffffffffff
nop word [rax + rax]
inc rsi
cmp word [rbp + rsi*2], bx
jne 0x1400b0480
test rsi, rsi
jne 0x1400b0498
lea r15, [0x140115830]
jmp 0x1400b04b7
movzx eax, word [rbp + rsi*2 - 2]
cmp ax, 0x5c
je 0x1400b04b0
lea r15, [0x140115840]
cmp ax, 0x2f
jne 0x1400b04b7
lea r15, [0x140115838]
lea rcx, [rsi*2 + 8]
call fcn.1400a8170
mov r12, rax
test rax, rax
je 0x1400b0460
lea rdx, [rsi + 3]
mov r9, rbp
mov r8, r15
mov rcx, rax
call fcn.1400a9950
lea rdx, [r14 + 0x38]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov rcx, r12
mov qword [r14 + 0x30], rax
call fcn.1400a7f70
cmp qword [r14 + 0x30], 0xffffffffffffffff
jne 0x1400b053d
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x1400b053d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rdi + 0x2c], eax
call fcn.1400b5700
cdqe
mov rcx, r14
mov qword [rdi - 0x98], rax
call fcn.1400a7f70
xor ecx, ecx
call fcn.1400a7f70
mov qword [rdi - 0x90], rbx
jmp 0x1400affc1
mov dword [r14 + 0x288], ebx
mov qword [rdi - 0x98], rbx
mov rbx, r14
mov qword [rdi - 0x90], rbx
jmp 0x1400affc1
mov rcx, qword [rdi - 0x90]
mov rcx, qword [rcx + 0x30]
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rcx, qword [rdi - 0x90]
call fcn.1400a7f70
xor ebx, ebx
mov qword [rdi - 0x98], rbx
jmp 0x1400affc1
mov rdx, qword [rdi + 0x30]
xor r8d, r8d
mov rcx, qword [rdi + 0x40]
call qword [sym.imp.KERNEL32.dll_CreateHardLinkW]
test eax, eax
jne case.0x1400afd62.26
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rdi + 0x2c], eax
call fcn.1400b5700
movsxd rbx, eax
mov qword [rdi - 0x98], rbx
jmp 0x1400affc1
call fcn.1400aecf0
jmp 0x1400affc1
mov rcx, qword [rdi + 0x30]
xor ebx, ebx
mov qword [rsp + 0x30], rbx
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 rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x1400b0614
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rdi + 0x2c], eax
call fcn.1400b5700
movsxd rcx, eax
mov qword [rdi - 0x98], rcx
jmp 0x1400affc1
lea rdx, [rdi - 0x90]
xor r8d, r8d
mov rcx, rsi
call fcn.1400adde0
test eax, eax
je 0x1400b0667
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
mov dword [rdi + 0x2c], eax
mov ebx, eax
call fcn.1400b5700
movsxd rcx, eax
mov qword [rdi - 0x98], rcx
cmp ebx, 0x1126
jne 0x1400b0659
mov qword [rdi - 0x98], 0xfffffffffffff019
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1400affc1
or dword [rdi + 0x28], 8
mov rcx, rsi
mov qword [rdi - 0x98], rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1400affc1
call fcn.1400ae0f0
jmp 0x1400affc1
call fcn.1400aeb00
jmp 0x1400affc1
lea rdx, str.uv__malloc
mov ecx, select
call fcn.1400b5650
int3