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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x80
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov rax, qword [0x14016ca00]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov r12d, r8d
mov rdi, rdx
mov r14, rcx
lea rcx, [rsp + 0x38]
call fcn.14006d290
nop
mov dword [rsp + 0x20], 3
mov r9d, 1
mov r8d, 0x80000000
mov rdx, rdi
lea rcx, [rsp + 0x38]
call fcn.14006fad0
test al, al
jne 0x14003a66c
mov ecx, 0x800
call fcn.1400bbc88
mov rbp, rax
mov ecx, 0x800
call fcn.1400bbc88
mov rbx, rax
test rbp, rbp
je 0x14003a96c
test rax, rax
je 0x14003a664
xor edx, edx
mov r8d, 0x800
mov rcx, rbp
call fcn.1400c2130
lea rax, [0x14012a290]
mov qword [rsp + 0x20], rax
lea r9, str.RC::RCResourceLoaderBase::LoadFromFile
lea r8, str._s__:__s
mov edx, 0x400
mov rcx, rbp
call fcn.140007140
xor edx, edx
mov r8d, 0x800
mov rcx, rbx
call fcn.1400c2130
lea rdx, [rsp + 0x50]
mov rcx, r14
call fcn.14003b000
nop
cmp qword [rax + 0x18], 8
jb 0x14003a612
mov rax, qword [rax]
cmp qword [rdi + 0x18], 8
jb 0x14003a61c
mov rdi, qword [rdi]
mov qword [rsp + 0x20], rax
mov r9, rdi
mov r8, rbp
mov edx, 0x400
mov rcx, rbx
call fcn.140007140
nop
cmp qword [rsp + 0x68], 8
jb 0x14003a647
mov rcx, qword [rsp + 0x50]
call fcn.1400bd20c
mov qword [rsp + 0x68], 7
xor esi, esi
mov qword [rsp + 0x60], rsi
mov word [rsp + 0x50], si
mov rcx, rbx
call fcn.140015100
mov rcx, rbp
jmp 0x14003a967
xor esi, esi
mov ebp, esi
mov rbx, qword [rsp + 0x38]
test rbx, rbx
je 0x14003a6ad
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x14003a6ad
lea rdx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r15d, eax
cmp eax, 0xffffffff
jne 0x14003a6a0
call qword [sym.imp.KERNEL32.dll_GetLastError]
test eax, eax
jne 0x14003a6ad
mov ebp, dword [rsp + 0x48]
shl rbp, 0x20
add rbp, r15
jne 0x14003a6b6
test r12d, r12d
je 0x14003a979
lea r15d, [r12 + rbp]
mov edx, r15d
mov rcx, r14
call fcn.14003aec0
test al, al
jne 0x14003a7b4
mov ecx, 0x800
call fcn.1400bbc88
mov r15, rax
mov ecx, 0x800
call fcn.1400bbc88
mov rbx, rax
test r15, r15
je 0x14003a96c
test rax, rax
je 0x14003a7ac
xor edx, edx
mov r8d, 0x800
mov rcx, r15
call fcn.1400c2130
lea rax, [0x140129d68]
mov qword [rsp + 0x20], rax
lea r9, str.RC::RCResourceLoaderBase::LoadFromFile
lea r8, str._s__:__s
mov edx, 0x400
mov rcx, r15
call fcn.140007140
xor edx, edx
mov r8d, 0x800
mov rcx, rbx
call fcn.1400c2130
lea rdx, [rsp + 0x50]
mov rcx, r14
call fcn.14003b000
nop
cmp qword [rax + 0x18], 8
jb 0x14003a758
mov rax, qword [rax]
cmp qword [rdi + 0x18], 8
jb 0x14003a762
mov rdi, qword [rdi]
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], rax
mov r9, rdi
mov r8, r15
mov edx, 0x400
mov rcx, rbx
call fcn.140007140
nop
cmp qword [rsp + 0x68], 8
jb 0x14003a791
mov rcx, qword [rsp + 0x50]
call fcn.1400bd20c
mov qword [rsp + 0x68], 7
mov qword [rsp + 0x60], rsi
mov word [rsp + 0x50], si
mov rcx, rbx
call fcn.140015100
mov rcx, r15
jmp 0x14003a967
mov dword [rsp + 0x30], esi
mov rax, qword [r14]
mov rcx, r14
call qword [rax + 0x28]
test rbx, rbx
je 0x14003a8cc
test rax, rax
je 0x14003a7f8
cmp qword [rbx], 0xffffffffffffffff
je 0x14003a7f8
mov dword [rsp + 0x30], esi
mov qword [rsp + 0x20], rsi
lea r9, [rsp + 0x30]
mov r8d, r15d
mov rdx, rax
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
setne sil
mov rcx, qword [rbx]
cmp rcx, 0xffffffffffffffff
je 0x14003a812
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x14003a812
mov qword [rbx], 0xffffffffffffffff
test sil, sil
je 0x14003a8cc
mov ecx, 0x800
call fcn.1400bbc88
mov rsi, rax
mov ecx, 0x800
call fcn.1400bbc88
mov rbx, rax
test rsi, rsi
je 0x14003a8b8
test rax, rax
je 0x14003a8b0
xor edx, edx
mov r8d, 0x800
mov rcx, rsi
call fcn.1400c2130
lea rax, [0x14012a310]
mov qword [rsp + 0x20], rax
lea r9, str.RC::RCResourceLoaderBase::LoadFromFile
lea r8, str._s__:__s
mov edx, 0x400
mov rcx, rsi
call fcn.140007140
xor edx, edx
mov r8d, 0x800
mov rcx, rbx
call fcn.1400c2130
cmp qword [rdi + 0x18], 8
jb 0x14003a890
mov rdi, qword [rdi]
mov dword [rsp + 0x20], r15d
mov r9, rdi
mov r8, rsi
mov edx, 0x400
mov rcx, rbx
call fcn.140007140
mov rcx, rbx
call fcn.140014e90
mov rcx, rsi
call fcn.1400bd2dc
test rbx, rbx
je 0x14003a8c5
mov rcx, rbx
call fcn.1400bd2dc
mov bl, 1
jmp 0x14003a97b
mov rcx, r14
call fcn.14003af70
mov ecx, 0x800
call fcn.1400bbc88
mov rsi, rax
mov ecx, 0x800
call fcn.1400bbc88
mov rbx, rax
test rsi, rsi
je 0x14003a96c
test rax, rax
je 0x14003a964
xor edx, edx
mov r8d, 0x800
mov rcx, rsi
call fcn.1400c2130
lea rax, [0x140129748]
mov qword [rsp + 0x20], rax
lea r9, str.RC::RCResourceLoaderBase::LoadFromFile
lea r8, str._s__:__s
mov edx, 0x400
mov rcx, rsi
call fcn.140007140
xor edx, edx
mov r8d, 0x800
mov rcx, rbx
call fcn.1400c2130
cmp qword [rdi + 0x18], 8
jb 0x14003a949
mov rdi, qword [rdi]
mov r9, rdi
mov r8, rsi
mov edx, 0x400
mov rcx, rbx
call fcn.140007140
mov rcx, rbx
call fcn.140015100
mov rcx, rsi
call fcn.1400bd2dc
test rbx, rbx
je 0x14003a979
mov rcx, rbx
call fcn.1400bd2dc
xor bl, bl
lea rcx, [rsp + 0x38]
call fcn.14006fa80
movzx eax, bl
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1400bcae0
add rsp, 0x80
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret