Function at 0x140039c40
Capabilities:
Delete file
Get file size
Move file
Read file on windows
Write file on windows

Disassembly:
mov qword [rsp + 0x20], r9
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x130
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov rax, qword [0x1400c80c0]
xor rax, rsp
mov qword [rsp + 0x120], rax
mov rdi, r8
mov r13d, edx
mov r12, rcx
mov rcx, qword [0x1400cd498]
test rcx, rcx
je 0x140039c8d
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rcx, [rsp + 0x100]
call fcn.1400397f0
nop
mov qword [rsp + reloc.WS2_32.dll_ntohs8], 0xf
xor eax, eax
mov qword [rsp + 0xf0], rax
mov byte [rsp + 0xe0], al
mov qword [rsp + 0xd8], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0xd0], rax
mov byte [rsp + 0xc0], al
or r14, 0xffffffffffffffff
cmp byte [rdi], al
jne 0x140039ce0
mov r8d, eax
jmp 0x140039ced
mov r8, r14
inc r8
cmp byte [rdi + r8], 0
jne 0x140039ce3
mov rdx, rdi
lea rcx, [rsp + 0xc0]
call fcn.140020170
nop
cmp qword [rsp + 0xd0], 7
jbe 0x140039dc3
mov r9d, 6
xor r8d, r8d
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0xc0]
call fcn.140039b20
nop
mov r8d, 1
lea rdx, [0x1400a1e74]
mov rcx, rax
call fcn.140021cf0
lea rcx, [rsp + 0xc0]
cmp rcx, rax
je 0x140039d65
mov r9, r14
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.140020040
nop
mov rax, qword [rsp + 0x98]
cmp rax, 0x10
jb 0x140039dc3
inc rax
mov rcx, qword [rsp + 0x80]
cmp rax, 0x1000
jb 0x140039dbe
test cl, 0x1f
je 0x140039d91
call fcn.140070d64
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x140039da0
call fcn.140070d64
int3
sub rcx, rax
cmp rcx, 8
jae 0x140039daf
call fcn.140070d64
int3
cmp rcx, 0x27
jbe 0x140039dbb
call fcn.140070d64
int3
mov rcx, rax
call fcn.14006b5d0
lea rax, [rsp + 0x100]
cmp qword [rsp + 0x118], 0x10
cmovae rax, qword [rsp + 0x100]
lea r9, [rsp + 0xc0]
cmp qword [rsp + 0xd8], 0x10
cmovae r9, qword [rsp + 0xc0]
mov qword [rsp + 0x20], rax
lea r8, str.___7s___s_
xor edx, edx
xor ecx, ecx
call fcn.140039b80
movsxd r15, eax
test eax, eax
jle 0x140039ec2
lea ecx, [r15 + 1]
movsxd rsi, ecx
mov rcx, rsi
call fcn.14006b2ec
mov rbx, rax
test rax, rax
je 0x140039ec2
mov r8, rsi
xor edx, edx
mov rcx, rax
call fcn.140097f40
lea rcx, [rsp + 0x100]
cmp qword [rsp + 0x118], 0x10
cmovae rcx, qword [rsp + 0x100]
lea rax, [rsp + 0xc0]
cmp qword [rsp + 0xd8], 0x10
cmovae rax, qword [rsp + 0xc0]
mov r8, r15
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
lea r9, str.___7s___s_
mov rdx, rsi
mov rcx, rbx
call fcn.140039be0
cmp byte [rbx], 0
jne 0x140039e9c
xor r8d, r8d
jmp 0x140039eaa
mov r8, r14
nop
inc r8
cmp byte [rbx + r8], 0
jne 0x140039ea0
mov rdx, rbx
lea rcx, [rsp + 0xe0]
call fcn.140021cf0
mov rcx, rbx
call fcn.14006ab90
mov r8, qword [0x1400cd488]
test r8, r8
je 0x140039fe1
lea rdx, [0x1400a1e88]
lea rcx, [rsp + 0x80]
call fcn.140028da0
nop
lea r8, [0x1400a1e84]
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140022430
nop
mov r9, r14
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.14001ff10
nop
mov rax, qword [rsp + 0x78]
cmp rax, 0x10
jb 0x140039f6b
inc rax
mov rcx, qword [rsp + 0x60]
cmp rax, 0x1000
jb 0x140039f66
test cl, 0x1f
je 0x140039f39
call fcn.140070d64
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x140039f48
call fcn.140070d64
int3
sub rcx, rax
cmp rcx, 8
jae 0x140039f57
call fcn.140070d64
int3
cmp rcx, 0x27
jbe 0x140039f63
call fcn.140070d64
int3
mov rcx, rax
call fcn.14006b5d0
mov qword [rsp + 0x78], reloc.WS2_32.dll_ntohs
xor r15d, r15d
mov qword [rsp + 0x70], r15
mov byte [rsp + 0x60], r15b
mov rax, qword [rsp + 0x98]
cmp rax, 0x10
jb 0x140039fe4
inc rax
mov rcx, qword [rsp + 0x80]
cmp rax, 0x1000
jb 0x140039fda
test cl, 0x1f
je 0x140039fad
call fcn.140070d64
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x140039fbc
call fcn.140070d64
int3
sub rcx, rax
cmp rcx, 8
jae 0x140039fcb
call fcn.140070d64
int3
cmp rcx, 0x27
jbe 0x140039fd7
call fcn.140070d64
int3
mov rcx, rax
call fcn.14006b5d0
jmp 0x140039fe4
xor r15d, r15d
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov edx, eax
lea rcx, [rsp + 0x80]
call fcn.140039b60
nop
mov r8, rax
lea rdx, [0x1400a1e88]
lea rcx, [rsp + 0xa0]
call fcn.14001a4e0
nop
lea r8, [0x1400a1e84]
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140022430
nop
mov r9, r14
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0xe0]
call fcn.14001ff10
nop
mov rax, qword [rsp + 0x78]
cmp rax, 0x10
jb 0x14003a096
inc rax
mov rcx, qword [rsp + 0x60]
cmp rax, 0x1000
jb 0x14003a091
test cl, 0x1f
je 0x14003a064
call fcn.140070d64
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x14003a073
call fcn.140070d64
int3
sub rcx, rax
cmp rcx, 8
jae 0x14003a082
call fcn.140070d64
int3
cmp rcx, 0x27
jbe 0x14003a08e
call fcn.140070d64
int3
mov rcx, rax
call fcn.14006b5d0
mov qword [rsp + 0x78], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x70], r15
mov byte [rsp + 0x60], 0
mov rax, qword [rsp + 0xb8]
cmp rax, 0x10
jb 0x14003a107
inc rax
mov rcx, qword [rsp + 0xa0]
cmp rax, 0x1000
jb 0x14003a102
test cl, 0x1f
je 0x14003a0d5
call fcn.140070d64
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x14003a0e4
call fcn.140070d64
int3
sub rcx, rax
cmp rcx, 8
jae 0x14003a0f3
call fcn.140070d64
int3
cmp rcx, 0x27
jbe 0x14003a0ff
call fcn.140070d64
int3
mov rcx, rax
call fcn.14006b5d0
mov qword [rsp + 0xb8], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0xb0], r15
mov byte [rsp + 0xa0], 0
mov rax, qword [rsp + 0x98]
cmp rax, 0x10
jb 0x14003a181
inc rax
mov rcx, qword [rsp + 0x80]
cmp rax, 0x1000
jb 0x14003a17c
test cl, 0x1f
je 0x14003a14f
call fcn.140070d64
int3
mov rax, qword [rcx - 8]
cmp rax, rcx
jb 0x14003a15e
call fcn.140070d64
int3
sub rcx, rax
cmp rcx, 8
jae 0x14003a16d
call fcn.140070d64
int3
cmp rcx, 0x27
jbe 0x14003a179
call fcn.140070d64
int3
mov rcx, rax
call fcn.14006b5d0
mov rcx, r15
lea rdx, str.Error
nop dword [rax + rax]
movzx eax, byte [rdi + rcx]
inc rcx
cmp al, byte [rdx + rcx - 1]
jne 0x14003a237
cmp rcx, 6
jne 0x14003a190
mov dword [rsp + 0x20], r13d
mov r9, r12
lea r8, str.__s:_d_
xor edx, edx
xor ecx, ecx
call fcn.140039b80
movsxd rdi, eax
test eax, eax
jle 0x14003a237
lea ecx, [rdi + 1]
movsxd rsi, ecx
mov rcx, rsi
call fcn.14006b2ec
mov rbx, rax
test rax, rax
je 0x14003a237
mov r8, rsi
xor edx, edx
mov rcx, rax
call fcn.140097f40
mov r8, rdi
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r12
lea r9, str.__s:_d_
mov rdx, rsi
mov rcx, rbx
call fcn.140039be0
cmp byte [rbx], 0
jne 0x14003a212
mov r8, r15
jmp 0x14003a21f
mov r8, r14
inc r8
cmp byte [rbx + r8], 0
jne 0x14003a215
mov rdx, rbx
lea rcx, [rsp + 0xe0]
call fcn.140021cf0
mov rcx, rbx
call fcn.14006ab90
lea r12, [rsp + 0x190]
call fcn.140001a20
mov rcx, qword [rax]
or rcx, 2
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r15
mov r9, qword [rsp + 0x188]
xor r8d, r8d
xor edx, edx
call fcn.1400752ec
mov edi, eax
test eax, eax
cmovs edi, r14d
test edi, edi
jle 0x14003a2e2
lea ecx, [rdi + 1]
movsxd rsi, ecx
mov rcx, rsi
call fcn.14006b2ec
mov rbx, rax
test rax, rax
je 0x14003a2e2
mov r8, rsi
xor edx, edx
mov rcx, rax
call fcn.140097f40
movsxd r8, edi
mov qword [rsp + 0x20], r12
mov r9, qword [rsp + 0x188]
mov rdx, rsi
mov rcx, rbx
call fcn.140001a30
cmp byte [rbx], 0
jne 0x14003a2bb
mov r8, r15
jmp 0x14003a2ca
mov r8, r14
nop
inc r8
cmp byte [rbx + r8], 0
jne 0x14003a2c0
mov rdx, rbx
lea rcx, [rsp + 0xe0]
call fcn.140021cf0
mov rcx, rbx
call fcn.14006ab90
mov r8d, 2
lea rdx, [0x1400a1e98]
lea rcx, [rsp + 0xe0]
call fcn.140021cf0
mov rcx, qword [0x1400cd480]
test rcx, rcx
je 0x14003a751
mov qword [rsp + 0xb8], 7
mov qword [rsp + 0xb0], r15
mov word [rsp + 0xa0], r15w
lea rdx, [rsp + 0xa0]
call fcn.1400394d0
lea rsi, [rsp + 0xa0]
cmp qword [rsp + 0xb8], 8
cmovae rsi, qword [rsp + 0xa0]
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
xor r9d, r9d
lea edx, [r9 + 4]
lea r8d, [r9 + 1]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
mov qword [rsp + 0x48], rax
cmp rax, 0xffffffffffffffff
je 0x14003a70e
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r12d, eax
cmp eax, dword [0x1400cd490]
jb 0x14003a6fb
cmp byte [0x1400cd494], 0
je 0x14003a6fb
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov byte [rsp + 0x40], 0
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [r9 + 1]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r15, rax
cmp rax, 0xffffffffffffffff
je 0x14003a5f7
xorps xmm0, xmm0
cvtsi2sd xmm0, r12
mulsd xmm0, qword [0x1400a1f08]
cvttsd2si rbx, xmm0
lea ecx, [rbx + 1]
mov r13d, ecx
call fcn.14006b2ec
mov rdi, rax
test rax, rax
je 0x14003a5ee
mov r8d, r13d
xor edx, edx
mov rcx, rax
call fcn.140097f40
xor r13d, r13d
mov dword [rsp + 0x44], r13d
sub r12d, ebx
xor r9d, r9d
xor r8d, r8d
mov edx, r12d
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov qword [rsp + 0x20], r13
lea r9, [rsp + 0x44]
mov r8d, ebx
mov rdx, rdi
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
setne bl
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test bl, bl
je 0x14003a5d1
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [rsp + 0x44]
mov byte [rax + rdi], r13b
mov qword [rsp + 0x98], reloc.WS2_32.dll_ntohs
xor r15d, r15d
mov qword [rsp + 0x90], r15
mov byte [rsp + 0x80], r13b
cmp byte [rdi], r13b
jne 0x14003a4b6
mov r8d, r15d
jmp 0x14003a4c9
mov r8, r14
nop dword [rax]
inc r8
cmp byte [rdi + r8], r13b
jne 0x14003a4c0
mov rdx, rdi
lea rcx, [rsp + 0x80]
call fcn.140020170
nop
mov r9d, 2
xor r8d, r8d
lea rdx, [0x1400a1e98]
lea rcx, [rsp + 0x80]
call fcn.140039a60
lea r8, [rax + 2]
mov r9, r14
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x80]
call fcn.140039b20
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
xor r9d, r9d
lea edx, [r9 + 4]
lea r8d, [r9 + 1]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
mov qword [rsp + 0x48], rax
cmp rax, 0xffffffffffffffff
je 0x14003a5b7
mov dword [rsp + 0x50], r15d
mov dword [rsp + 0x20], r15d
mov r9d, dword [rsp + 0x70]
xor r8d, r8d
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockFile]
lea rdx, [rsp + 0x60]
cmp qword [rsp + 0x78], 0x10
cmovae rdx, qword [rsp + 0x60]
mov qword [rsp + 0x20], r15
lea r9, [rsp + 0x50]
mov r8d, dword [rsp + 0x70]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov dword [rsp + 0x20], r15d
mov r9d, dword [rsp + 0x70]
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_UnlockFile]
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0x48]
call fcn.1400398b0
lea rcx, [rsp + 0x60]
call fcn.140009430
nop
lea rcx, [rsp + 0x80]
call fcn.140009430
jmp 0x14003a5d9
mov byte [rsp + 0x40], 1
xor r15d, r15d
mov rcx, rdi
call fcn.14006ab90
cmp byte [rsp + 0x40], 0
je 0x14003a70e
jmp 0x14003a5fa
mov rcx, r15
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor r15d, r15d
mov qword [rsp + 0x98], reloc.WS2_32.dll_ntohs
mov qword [rsp + 0x90], r15
mov byte [rsp + 0x80], 0
mov r9, r14
xor r8d, r8d
mov rdx, qword [0x1400cd480]
lea rcx, [rsp + 0x80]
call fcn.140020040
nop
mov r8d, 9
lea rdx, str..archived
lea rcx, [rsp + 0x80]
call fcn.140021cf0
mov qword [rsp + 0x78], 7
mov qword [rsp + 0x70], r15
mov word [rsp + 0x60], r15w
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x80]
call fcn.1400394d0
lea rdx, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
cmovae rdx, qword [rsp + 0x60]
mov r8d, 1
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
xor r9d, r9d
lea edx, [r9 + 4]
lea r8d, [r9 + 1]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsp + 0x48], rax
cmp rax, 0xffffffffffffffff
je 0x14003a6e1
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0x48]
call fcn.1400398b0
nop
lea rcx, [rsp + 0x60]
call fcn.14002b110
nop
lea rcx, [rsp + 0x80]
call fcn.140009430
jmp 0x14003a70e
lea rdx, [rsp + 0xe0]
lea rcx, [rsp + 0x48]
call fcn.1400398b0
nop
mov r8, qword [rsp + 0xb8]
cmp r8, 8
jb 0x14003a734
inc r8
mov rdx, qword [rsp + 0xa0]
lea rcx, [rsp + 0xa0]
call fcn.140021e40
mov qword [rsp + 0xb8], 7
mov qword [rsp + 0xb0], r15
mov word [rsp + 0xa0], r15w
mov rcx, qword [0x1400cd498]
test rcx, rcx
je 0x14003a764
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
nop
lea rcx, [rsp + 0xc0]
call fcn.140009430
nop
lea rcx, [rsp + 0xe0]
call fcn.140009430
nop
lea rcx, [rsp + 0x100]
call fcn.140009430
nop
mov rcx, qword [rsp + 0x120]
xor rcx, rsp
call fcn.14006ab70
add rsp, 0x130
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret