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

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x130
mov qword [rsp + reloc.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
mov r12, r9
mov rbp, r8
mov r13, rdx
mov r15, rcx
mov rcx, r9
call fcn.140048290
mov rsi, rax
mov rcx, rbp
call fcn.140048290
mov rdi, rax
mov rcx, r13
call fcn.140048290
mov rbx, rax
mov rcx, r15
call fcn.140048290
mov r9, rax
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rbx
lea r8, str.wsps:__s____s____s____s_
mov edx, 0xa
lea rcx, [0x1400d1530]
call fcn.140048fc0
test r13, r13
je 0x140039641
test rbp, rbp
je 0x140039641
test r12, r12
je 0x140039641
xor r14d, r14d
lea edx, [r14 + 1]
lea rcx, [rsp + 0x100]
call fcn.140047670
nop
lea edx, [r14 + 1]
lea rcx, [rsp + 0xd8]
call fcn.140047670
nop
lea edx, [r14 + 1]
lea rcx, [rsp + 0xa8]
call fcn.140047670
nop
test r15, r15
je 0x14003903f
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
or r9d, 0xffffffff
mov r8, r15
xor edx, edx
lea rcx, [rsp + 0x100]
call fcn.140047bc0
mov rbx, rax
mov qword [rsp + 0x78], rax
test rax, rax
jne 0x140039046
mov rcx, qword [rsp + 0x58]
call fcn.14004ba10
mov ebx, eax
lea rdi, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0xa8], rdi
lea rcx, [rsp + 0xa8]
call fcn.140047880
nop
mov qword [rsp + 0xd8], rdi
lea rcx, [rsp + 0xd8]
call fcn.140047880
nop
mov qword [rsp + 0x100], rdi
lea rcx, [rsp + 0x100]
call fcn.140047880
mov eax, ebx
jmp 0x140039658
xor ebx, ebx
mov qword [rsp + 0x78], rbx
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
or r9d, 0xffffffff
mov r8, r13
xor edx, edx
lea rcx, [rsp + 0xd8]
call fcn.140047bc0
mov rdi, rax
mov qword [rsp + 0x68], rax
test rax, rax
jne 0x1400390ce
mov rcx, qword [rsp + 0x58]
call fcn.14004ba10
mov ebx, eax
lea rdi, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0xa8], rdi
lea rcx, [rsp + 0xa8]
call fcn.140047880
nop
mov qword [rsp + 0xd8], rdi
lea rcx, [rsp + 0xd8]
call fcn.140047880
nop
mov qword [rsp + 0x100], rdi
lea rcx, [rsp + 0x100]
call fcn.140047880
mov eax, ebx
jmp 0x140039658
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
or r9d, 0xffffffff
mov r8, rbp
xor edx, edx
lea rcx, [rsp + 0xa8]
call fcn.140047bc0
mov qword [rsp + 0x80], rax
test rax, rax
jne 0x140039156
mov rcx, qword [rsp + 0x58]
call fcn.14004ba10
mov ebx, eax
lea rdi, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0xa8], rdi
lea rcx, [rsp + 0xa8]
call fcn.140047880
nop
mov qword [rsp + 0xd8], rdi
lea rcx, [rsp + 0xd8]
call fcn.140047880
nop
mov qword [rsp + 0x100], rdi
lea rcx, [rsp + 0x100]
call fcn.140047880
mov eax, ebx
jmp 0x140039658
mov edx, 0x7fffffff
mov rcx, rax
call fcn.140047d40
mov rsi, rax
mov qword [rsp + 0x98], rax
mov edx, 0x7fffffff
mov rcx, rdi
call fcn.140047d40
mov rdi, rax
mov qword [rsp + 0xa0], rax
mov edx, 0x7fffffff
mov rcx, rbx
call fcn.140047d40
mov qword [rsp + 0xd0], rax
lea ecx, [rax + rdi]
lea esi, [rcx + rsi + 0x10]
xor edi, edi
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov r13, rax
mov qword [rsp + 0x50], rax
cmp rax, 0xffffffffffffffff
jne 0x1400391ed
mov edi, 0x220f1f07
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x1400395c7
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
cmp eax, 0xffffffff
jne 0x140039211
mov edi, 0x220f1f08
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x1400395b9
lea eax, [rbx + rsi]
mov dword [rsp + 0x60], eax
lea rdx, [rsp + 0x168]
mov ecx, eax
call fcn.1400386a0
mov r12, rax
test rax, rax
jne 0x14003923c
mov edi, 0x220f1e01
lea ebx, [rax + 0xe]
jmp 0x1400395b9
mov byte [rax], dil
xor esi, esi
mov qword [rsp + 0x70], rsi
xor ebp, ebp
mov qword [rsp + 0x90], rbp
xor eax, eax
mov qword [rsp + 0x88], rax
xor r13d, r13d
mov qword [rsp + 0x48], r13
test ebx, ebx
je 0x1400393ae
xor r14d, r14d
lea rdx, [rsp + 0x40]
mov ecx, ebx
call fcn.1400386a0
mov rsi, rax
test rax, rax
jne 0x140039293
mov edi, 0x220f1e01
lea ebx, [rbp + 0xe]
mov r13, qword [rsp + 0x50]
jmp 0x1400395b1
mov dword [rsp + 0x168], ebx
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x168]
mov r8d, ebx
mov rdx, rax
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x1400392ce
mov edi, 0x220f1f09
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x140039396
cmp dword [rsp + 0x168], ebx
je 0x1400392e3
mov edi, 0x220f1f09
xor ebx, ebx
jmp 0x140039396
mov r14d, 1
xor r9d, r9d
mov r8d, dword [rsp + 0x40]
mov rdx, rsi
mov rcx, r12
call fcn.140038920
mov byte [rbx + r12], dil
test r15, r15
je 0x140039370
cmp word [r15], di
je 0x140039370
mov r8, qword [rsp + 0x78]
lea rdx, [rsp + 0x90]
mov rcx, r12
call fcn.140038360
mov qword [rsp + 0x70], rax
test rax, rax
je 0x14003935f
mov rbp, qword [rsp + 0x90]
mov qword [rsp + 0x48], rbp
mov r8, qword [rsp + 0x68]
lea rdx, [rsp + 0x48]
mov rcx, rax
call fcn.140038530
mov qword [rsp + 0x88], rax
mov ebx, dword [rsp + 0x168]
mov r13, qword [rsp + 0x48]
jmp 0x140039396
mov ebx, dword [rsp + 0x168]
mov rbp, qword [rsp + 0x90]
jmp 0x140039396
mov r8, qword [rsp + 0x68]
lea rdx, [rsp + 0x48]
mov rcx, r12
call fcn.140038530
mov qword [rsp + 0x88], rax
mov ebx, dword [rsp + 0x168]
mov r13, qword [rsp + 0x48]
mov rcx, rsi
call fcn.140038760
test r14d, r14d
je 0x1400395ac
mov rsi, qword [rsp + 0x70]
jmp 0x1400393b5
mov ebx, dword [rsp + 0x168]
xor r14d, r14d
mov edx, 0x7fffffff
mov rcx, r12
call fcn.140047d40
mov qword [rsp + 0x70], rax
test r13, r13
je 0x140039428
mov rbp, qword [rsp + 0x88]
test rbp, rbp
cmove rbp, r13
mov esi, ebp
sub esi, r13d
mov r15, qword [rsp + 0x98]
add esi, r15d
mov rdx, rax
sub rdx, r13
lea r9, [rdx + r12 + 1]
sub r13, r12
movsxd rdx, dword [rsp + 0x60]
mov dword [rsp + 0x20], esi
mov r8, r13
mov rcx, r12
call fcn.14004bb60
mov r8, r15
mov rdx, qword [rsp + 0x80]
mov rcx, rbp
call sub.MSVCR90.dll_memcpy
jmp 0x1400394f9
test rsi, rsi
jne 0x14003943e
test r15, r15
je 0x14003943e
cmp word [r15], r14w
je 0x14003943e
lea r13d, [rsi + 1]
jmp 0x140039441
xor r13d, r13d
test rbp, rbp
jne 0x14003944a
lea rbp, [rax + r12]
movzx r15d, byte [rbp]
mov rcx, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa0]
lea esi, [rdx + rcx + 3]
test r13d, r13d
je 0x140039474
mov rcx, qword [rsp + 0xd0]
lea esi, [rsi + rcx + 4]
sub rax, rbp
lea r9, [rax + r12 + 1]
mov r8, rbp
sub r8, r12
movsxd rdx, dword [rsp + 0x60]
mov dword [rsp + 0x20], esi
mov rcx, r12
call fcn.14004bb60
test r13d, r13d
je 0x1400394cb
lea eax, [rsi + 1]
movsxd rdx, eax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x78]
lea r8, str._r_n__s__r_n_s_s
mov rcx, rbp
call fcn.1400305f0
jmp 0x1400394f2
lea eax, [rsi + 1]
movsxd rdx, eax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x20], rax
mov r9, qword [rsp + 0x68]
lea r8, str._r_n_s_s
mov rcx, rbp
call fcn.1400305f0
movsxd rax, esi
mov byte [rax + rbp], r15b
mov rcx, qword [rsp + 0x70]
add ecx, esi
lea rdx, [rsp + 0x168]
call fcn.1400386a0
mov rsi, rax
test rax, rax
jne 0x140039527
mov edi, 0x220f1e01
lea ebx, [rax + 0xe]
mov r13, qword [rsp + 0x50]
jmp 0x1400395b1
mov r9d, 1
mov ebp, dword [rsp + 0x168]
mov r8d, ebp
mov rdx, r12
mov rcx, rax
call fcn.140038920
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov r13, qword [rsp + 0x50]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
mov qword [rsp + 0x20], r14
lea r9, [rsp + 0x40]
mov r8d, ebp
mov rdx, rsi
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x140039584
mov edi, 0x220f1f0a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x1400395a2
cmp ebp, dword [rsp + 0x40]
je 0x140039593
mov edi, 0x220f1f0a
xor ebx, ebx
jmp 0x1400395a2
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov r14d, 1
mov rcx, rsi
call fcn.140038760
jmp 0x1400395b1
mov r13, qword [rsp + 0x50]
mov rcx, r12
call fcn.140038760
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r14d, r14d
jne 0x1400395d8
mov edx, ebx
mov ecx, edi
call fcn.14004b9a0
mov rcx, rax
call fcn.14004ba10
mov r9d, r14d
lea r8, str.wsps_ld
mov edx, 0xa
lea rcx, [0x1400d1530]
call fcn.140049070
nop
lea rdi, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0xa8], rdi
lea rcx, [rsp + 0xa8]
call fcn.140047880
nop
mov qword [rsp + 0xd8], rdi
lea rcx, [rsp + 0xd8]
call fcn.140047880
nop
mov qword [rsp + 0x100], rdi
lea rcx, [rsp + 0x100]
call fcn.140047880
mov eax, r14d
jmp 0x140039658
mov edx, 0x57
mov ecx, 0x220f1f01
call fcn.14004b9a0
mov rcx, rax
call fcn.14004ba10
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret