Function at 0x140038940
Capabilities:
Get file size
Read file on windows

Disassembly:
mov rax, rsp
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xc0
mov qword [rsp + 0xb8], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov r13, r9
mov r15, r8
mov rbp, rdx
mov r14, rcx
mov r12, qword [rsp + 0x118]
mov rcx, r12
call fcn.140048290
mov rdi, rax
mov rcx, r15
call fcn.140048290
mov rsi, rax
mov rcx, rbp
call fcn.140048290
mov rbx, rax
mov rcx, r14
call fcn.140048290
mov r9, rax
mov qword [rsp + 0x40], rdi
mov edi, dword [rsp + 0x110]
mov dword [rsp + 0x38], edi
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x20], rbx
lea r8, str.gsps:__s____s____s___I64x__lu___s_
mov edx, 0xa
lea rcx, [0x1400d1530]
call fcn.140048fc0
test r13, r13
je 0x140038e00
test edi, edi
je 0x140038e00
test rbp, rbp
je 0x140038dcb
cmp word [rbp], 0
je 0x140038dcb
test r12, r12
je 0x140038dcb
cmp word [r12], 0
je 0x140038dcb
mov edx, 1
lea rcx, [rsp + 0x90]
call fcn.140047670
nop
mov edx, 1
lea rcx, [rsp + 0x68]
call fcn.140047670
nop
test r14, r14
je 0x140038aa8
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
or r9d, 0xffffffff
mov r8, r14
xor edx, edx
lea rcx, [rsp + 0x90]
call fcn.140047bc0
test rax, rax
jne 0x140038aa8
mov rcx, qword [rsp + 0x58]
call fcn.14004ba10
mov ebx, eax
lea rdi, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0x68], rdi
lea rcx, [rsp + 0x68]
call fcn.140047880
nop
mov qword [rsp + 0x90], rdi
lea rcx, [rsp + 0x90]
call fcn.140047880
mov eax, ebx
jmp 0x140038e17
lea rax, [rsp + 0x58]
mov qword [rsp + 0x20], rax
or r9d, 0xffffffff
mov r8, rbp
xor edx, edx
lea rcx, [rsp + 0x68]
call fcn.140047bc0
test rax, rax
jne 0x140038b09
mov rcx, qword [rsp + 0x58]
call fcn.14004ba10
mov ebx, eax
lea rdi, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0x68], rdi
lea rcx, [rsp + 0x68]
call fcn.140047880
nop
mov qword [rsp + 0x90], rdi
lea rcx, [rsp + 0x90]
call fcn.140047880
mov eax, ebx
jmp 0x140038e17
xor esi, esi
mov ebx, esi
mov qword [rsp + 0x30], rsi
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], 3
xor r9d, r9d
mov edx, 0x80000000
lea r8d, [rsi + 1]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [rsp + 0x60], rax
cmp rax, 0xffffffffffffffff
jne 0x140038b58
mov ebx, 0x220f1f07
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov r14d, dword [rsp + 0x110]
jmp 0x140038d4e
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
test eax, eax
jne 0x140038b80
mov ebx, 0x220f1f0b
mov edi, 0x103
mov r14d, dword [rsp + 0x110]
jmp 0x140038d3f
cmp edi, 0xffffffff
jne 0x140038b9f
mov ebx, 0x220f1f08
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov r14d, dword [rsp + 0x110]
jmp 0x140038d3f
lea ecx, [rdi + 1]
lea rdx, [rsp + 0x50]
call fcn.1400386a0
mov r12, rax
xor edx, edx
mov ecx, dword [rsp + 0x50]
call fcn.1400386a0
mov rbp, rax
test r12, r12
je 0x140038d13
test rax, rax
je 0x140038d13
mov dword [rsp + 0x108], edi
mov qword [rsp + 0x20], rsi
lea r9, [rsp + 0x108]
mov r8d, edi
mov rdx, r12
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x140038c12
mov ebx, 0x220f1f09
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov r14d, dword [rsp + 0x110]
jmp 0x140038d25
cmp dword [rsp + 0x108], edi
je 0x140038c2f
mov ebx, 0x220f1f09
mov edi, esi
mov r14d, dword [rsp + 0x110]
jmp 0x140038d25
xor r9d, r9d
mov r8d, dword [rsp + 0x50]
mov rdx, r12
mov rcx, rbp
call fcn.140038920
mov byte [rdi + rbp], bl
mov rax, rbp
mov qword [rsp + 0x50], rsi
test r14, r14
je 0x140038c6d
cmp word [r14], bx
je 0x140038c6d
mov r8, qword [rsp + 0x98]
lea rdx, [rsp + 0x50]
mov rcx, rbp
call fcn.140038360
test rax, rax
jne 0x140038c89
mov ebx, 0x220f1f0b
mov edi, 0x103
mov r14d, dword [rsp + 0x110]
jmp 0x140038d25
mov r8, qword [rsp + 0x70]
lea rdx, [rsp + 0x50]
mov rcx, rax
call fcn.140038530
mov r9, rax
test rax, rax
jne 0x140038cc0
cmp qword [rsp + 0x50], rbx
setne bl
add ebx, 0x220f1f0c
mov edi, 0x103
mov r14d, dword [rsp + 0x110]
jmp 0x140038d25
mov rax, qword [rsp + 0x50]
mov byte [rax], bl
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0xffffffff
xor r8d, r8d
mov r14d, dword [rsp + 0x110]
mov edx, r14d
mov rcx, r13
call fcn.140047da0
test eax, eax
jne 0x140038d0a
mov rdi, qword [rsp + 0x58]
mov ebx, 0x220f1f06
mov eax, 0x220f1f0e
cmp edi, 0x7a
cmove ebx, eax
jmp 0x140038d25
mov edi, dword [rsp + 0x108]
jmp 0x140038d25
mov ebx, 0x220f1e01
mov edi, 0xe
mov r14d, dword [rsp + 0x110]
test r12, r12
je 0x140038d32
mov rcx, r12
call fcn.140038760
test rbp, rbp
je 0x140038d3f
mov rcx, rbp
call fcn.140038760
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
je 0x140038d79
test r15, r15
jne 0x140038d5a
mov word [r13], si
jmp 0x140038d68
mov edx, r14d
mov r8, r15
mov rcx, r13
call entry0
mov edx, edi
mov ecx, ebx
call fcn.14004b9a0
mov rcx, rax
call fcn.14004ba10
test ebx, ebx
sete sil
mov r9d, esi
lea r8, str.gsps_ld
mov edx, 0xa
lea rcx, [0x1400d1530]
call fcn.140049070
nop
lea rdi, vtable.CAhnI2s_Memory.0
mov qword [rsp + 0x68], rdi
lea rcx, [rsp + 0x68]
call fcn.140047880
nop
mov qword [rsp + 0x90], rdi
lea rcx, [rsp + 0x90]
call fcn.140047880
mov eax, esi
jmp 0x140038e17
test r15, r15
jne 0x140038dd9
xor esi, esi
mov word [r13], si
jmp 0x140038de7
mov rdx, rdi
mov r8, r15
mov rcx, r13
call entry0
mov edx, 0x57
mov ecx, 0x220f1f01
call fcn.14004b9a0
mov rcx, rax
call fcn.14004ba10
jmp 0x140038e17
mov edx, 0x57
mov ecx, 0x220f1f01
call fcn.14004b9a0
mov rcx, rax
call fcn.14004ba10
lea r11, [rsp + 0xc0]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret