Function at 0x140095d00
Capabilities:
Get file size
Read file on windows
Write file on windows

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1fd0]
mov eax, 0x20d0
call fcn.1400bf810
sub rsp, rax
mov qword [rbp - 0x50], 0xfffffffffffffffe
mov qword [rsp + 0x2120], rbx
mov rax, qword [0x1401080e0]
xor rax, rsp
mov qword [rbp + 0x1fc0], rax
mov rdi, rdx
mov r15, rcx
xor r14d, r14d
mov r13d, r14d
mov rbx, qword [0x140108018]
mov qword [rsp + 0x40], rbx
or rsi, 0xffffffffffffffff
mov qword [rsp + 0x50], rbx
mov dword [rsp + 0x48], r14d
mov dword [rsp + 0x4c], r14d
add rcx, 8
mov edx, dword [r15 + 0x5c4]
call fcn.140077180
mov rcx, rax
lea rdx, [rsp + 0x58]
call fcn.1400768e8
nop
lea r12, [rdi + 8]
mov qword [rsp + 0x30], r14
mov dword [rsp + 0x28], r14d
lea r8d, [r14 + 3]
mov dword [rsp + 0x20], r8d
xor r9d, r9d
mov edx, 0x80000000
mov rcx, qword [r12]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r14, rax
cmp rax, rsi
jne 0x140095e72
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, [rbp - 0x70]
call fcn.140069538
nop
lea rcx, [rdi + 0x20]
mov rdx, rax
call fcn.140068904
nop
mov rcx, qword [rbp - 0x70]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140108010]
je 0x140095e02
lock add dword [rcx], esi
jg 0x140095e02
mov rcx, qword [rbp - 0x70]
add rcx, 0xfffffffffffffff4
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
mov r8, qword [r12]
lea rdx, str.Error_opening_file__s.
lea rcx, [rsp + 0x40]
call fcn.140069514
mov rbx, qword [rsp + 0x40]
cmp dword [rbx - 0xc], 0
jl 0x140095e32
mov qword [rsp + 0x78], rbx
lock inc dword [rbx - 0xc]
mov rbx, qword [rsp + 0x40]
jmp 0x140095e56
mov rax, qword [0x140108018]
mov qword [rsp + 0x78], rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8, rbx
mov edx, eax
lea rcx, [rsp + 0x78]
call fcn.140067304
lea rcx, [r15 + 0x5d8]
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x78]
call fcn.14006caa0
jmp 0x1400961f7
cmp dword [rdi + 0x18], 0
je 0x1400961d2
mov r8, qword [r12]
lea rdx, str.Copying_file__s.
lea rcx, [rsp + 0x40]
call fcn.140069514
mov rbx, qword [rsp + 0x40]
cmp dword [rbx - 0xc], 0
jl 0x140095eac
mov qword [rsp + 0x70], rbx
lock inc dword [rbx - 0xc]
mov rbx, qword [rsp + 0x40]
jmp 0x140095ed0
mov rax, qword [0x140108018]
mov qword [rsp + 0x70], rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8, rbx
mov edx, eax
lea rcx, [rsp + 0x70]
call fcn.140067304
add r15, 0x5d8
xor r9d, r9d
xor r8d, r8d
lea rdx, [rsp + 0x70]
mov rcx, r15
call fcn.14006caa0
lea rdx, [rbp - 0x58]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x140095fb1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, [rbp - 0x80]
call fcn.140069538
nop
lea rcx, [rdi + 0x20]
mov rdx, rax
call fcn.140068904
nop
mov rcx, qword [rbp - 0x80]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140108010]
je 0x140095f42
lock add dword [rcx], 0xffffffff
jg 0x140095f42
mov rcx, qword [rbp - 0x80]
add rcx, 0xfffffffffffffff4
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
mov r8, qword [r12]
lea rdx, str.Couldnt_get_file_size_of__s
lea rcx, [rsp + 0x40]
call fcn.140069514
mov rbx, qword [rsp + 0x40]
cmp dword [rbx - 0xc], 0
jl 0x140095f72
mov qword [rsp + 0x60], rbx
lock inc dword [rbx - 0xc]
mov rbx, qword [rsp + 0x40]
jmp 0x140095f96
mov rax, qword [0x140108018]
mov qword [rsp + 0x60], rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8, rbx
mov edx, eax
lea rcx, [rsp + 0x60]
call fcn.140067304
lea rdx, [rsp + 0x60]
xor r9d, r9d
xor r8d, r8d
mov rcx, r15
call fcn.14006caa0
mov rcx, r14
jmp 0x1400961f0
lea r8, [0x1400c7534]
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 0x68]
call fcn.140068a74
nop
mov r8, rdi
mov rdx, rax
lea rcx, [rbp - 0x60]
call fcn.140074ae0
nop
mov rdx, rax
lea rcx, [rsp + 0x50]
call fcn.140068904
nop
mov rcx, qword [rbp - 0x60]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140108010]
je 0x14009600e
lock add dword [rcx], 0xffffffff
jg 0x140096009
mov rcx, qword [rbp - 0x60]
add rcx, 0xfffffffffffffff4
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rbp - 0x68]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140108010]
je 0x140096037
lock add dword [rcx], 0xffffffff
jg 0x140096032
mov rcx, qword [rbp - 0x68]
add rcx, 0xfffffffffffffff4
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
mov rbx, qword [rsp + 0x40]
and qword [rsp + 0x30], 0
and dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 2
xor r9d, r9d
mov edx, 0x40000000
lea r8d, [r9 + 1]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
jne 0x14009610f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, [rbp - 0x78]
call fcn.140069538
nop
lea rcx, [rdi + 0x20]
mov rdx, rax
call fcn.140068904
nop
mov rcx, qword [rbp - 0x78]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140108010]
je 0x1400960b0
lock add dword [rcx], esi
jg 0x1400960b0
mov rcx, qword [rbp - 0x78]
add rcx, 0xfffffffffffffff4
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
mov r8, qword [rsp + 0x50]
lea rdx, str.Error_creating_file__s.
lea rcx, [rsp + 0x40]
call fcn.140069514
mov rbx, qword [rsp + 0x40]
cmp dword [rbx - 0xc], 0
jl 0x1400960e1
mov qword [rsp + 0x68], rbx
lock inc dword [rbx - 0xc]
mov rbx, qword [rsp + 0x40]
jmp 0x140096105
mov rax, qword [0x140108018]
mov qword [rsp + 0x68], rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r8, rbx
mov edx, eax
lea rcx, [rsp + 0x68]
call fcn.140067304
lea rdx, [rsp + 0x68]
jmp 0x140095f9b
xor edi, edi
jmp 0x140096197
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x48]
mov r8d, 0x400
lea rdx, [rbp - 0x40]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400961a9
mov r8d, dword [rsp + 0x48]
test r8d, r8d
je 0x1400961a9
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x4c]
lea rdx, [rbp - 0x40]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1400961a9
mov eax, dword [rsp + 0x4c]
cmp dword [rsp + 0x48], eax
jne 0x1400961a9
add rdi, rax
xorps xmm1, xmm1
cvtsi2ss xmm1, rdi
mulss xmm1, dword [0x1400cdaec]
xorps xmm0, xmm0
cvtsi2ss xmm0, qword [rbp - 0x58]
divss xmm1, xmm0
cvttss2si edx, xmm1
xor r8d, r8d
mov rcx, r15
call fcn.14006ca50
mov rcx, r15
call fcn.14006c984
test al, al
je 0x140096116
jmp 0x1400961d8
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
or rdi, 0xffffffffffffffff
mov r14, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rsi, rdi
lea rdx, [rsp + 0x50]
mov rcx, r12
call fcn.140068904
mov r13d, 1
cmp r14, 0xffffffffffffffff
je 0x1400961e7
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp rsi, 0xffffffffffffffff
je 0x1400961f7
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
nop
mov rcx, qword [rsp + 0x58]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140108010]
je 0x140096222
lock add dword [rcx], 0xffffffff
jg 0x14009621d
mov rcx, qword [rsp + 0x58]
add rcx, 0xfffffffffffffff4
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
mov rbx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
add rcx, 0xfffffffffffffff4
cmp rcx, qword [0x140108010]
je 0x140096244
lock add dword [rcx], 0xffffffff
jg 0x14009623f
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
mov rbx, qword [rsp + 0x40]
lea rcx, [rbx - 0xc]
cmp rcx, qword [0x140108010]
je 0x14009625c
lock add dword [rcx], 0xffffffff
jg 0x14009625c
call sub.MSVCR120.dll_void___cdecl_operator_delete___void____ptr64_
mov eax, r13d
mov rcx, qword [rbp + 0x1fc0]
xor rcx, rsp
call fcn.1400bf530
mov rbx, qword [rsp + 0x2120]
add rsp, 0x20d0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret