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

Disassembly:
push rbp
push r13
push rdi
push rsi
push rbx
add rsp, 0xffffffffffffff80
mov rbp, rsp
mov rbx, rcx
mov dword [rbp + 0x44], edx
mov esi, r8d
mov dword [rbp + 0x68], 0xffffffff
mov qword [rbp + 0x60], 0
mov dword [rbp + 0x58], 0x18
mov eax, dword [rbp + 0x44]
and eax, 3
cmp eax, 2
ja 0x43b097
mov eax, dword [rbp + 0x44]
and eax, 1
mov ecx, dword [rbp + 0x44]
and ecx, 8
test ecx, eax
je 0x43b09f
or eax, 0xffffffff
jmp 0x43b2f4
mov eax, dword [rbp + 0x44]
test eax, 3
je 0x43b0d2
mov edi, 0x40000000
mov rcx, rbx
lea rdx, [0x0043b304]
call fcn.0041ad70
test eax, eax
je 0x43b0c9
mov esi, 1
mov r13d, 2
jmp 0x43b0df
mov edi, 0x80000000
mov r13d, 3
mov eax, dword [rbp + 0x44]
cmp eax, 0x10a
jne 0x43b18f
mov rcx, rbx
mov edx, edi
or edx, 0x80000000
mov r8d, esi
lea r9, [rbp + 0x58]
mov dword [rsp + 0x20], 3
mov dword [rsp + 0x28], 0x80
mov qword [rsp + 0x30], 0
call sub.kernel32.dll_CreateFileW_1
mov qword [rbp + 0x48], rax
mov rax, qword [rbp + 0x48]
cmp rax, 0xffffffffffffffff
jne 0x43b1ea
mov rcx, rbx
mov edx, edi
mov r8d, esi
lea r9, [rbp + 0x58]
mov dword [rsp + 0x20], r13d
mov dword [rsp + 0x28], 0x80
mov qword [rsp + 0x30], 0
call sub.kernel32.dll_CreateFileW_1
mov qword [rbp + 0x48], rax
mov rax, qword [rbp + 0x48]
cmp rax, 0xffffffffffffffff
jne 0x43b1ea
call sub.kernel32.dll_GetLastError_2
mov dword [0x00447e74], eax
cmp dword [0x00447e74], 0x6e
jne 0x43b187
mov dword [0x00447e74], 2
or eax, 0xffffffff
jmp 0x43b2f4
mov rcx, rbx
mov edx, edi
mov r8d, esi
lea r9, [rbp + 0x58]
mov dword [rsp + 0x20], r13d
mov dword [rsp + 0x28], 0x80
mov qword [rsp + 0x30], 0
call sub.kernel32.dll_CreateFileW_1
mov qword [rbp + 0x48], rax
mov rax, qword [rbp + 0x48]
cmp rax, 0xffffffffffffffff
jne 0x43b1ea
call sub.kernel32.dll_GetLastError_2
mov dword [0x00447e74], eax
cmp dword [0x00447e74], 0x6e
jne 0x43b1e2
mov dword [0x00447e74], 2
or eax, 0xffffffff
jmp 0x43b2f4
mov rcx, qword [rbp + 0x48]
mov edx, 8
call sub.msvcrt.dll__open_osfhandle
mov ebx, eax
mov eax, dword [rbp + 0x44]
test eax, 8
je 0x43b2eb
mov ecx, ebx
call fcn.004279f0
test eax, eax
jne 0x43b2eb
mov rcx, qword [rbp + 0x48]
xor rdx, rdx
call sub.kernel32.dll_GetFileSize_1
test eax, eax
je 0x43b2eb
mov word [rbp + 0x7e], 0
mov dword [rbp + 0x74], 0xffffffff
mov rcx, qword [rbp + 0x48]
or edx, 0xffffffff
lea r8, [rbp + 0x74]
mov r9d, 2
call sub.kernel32.dll_SetFilePointer_1
mov r13d, eax
call sub.kernel32.dll_GetLastError_2
mov dword [0x00447e74], eax
cmp r13d, 0xffffffff
jne 0x43b27f
cmp dword [0x00447e74], 0
je 0x43b27f
cmp ebx, 0xffffffff
je 0x43b27a
mov ecx, ebx
call sub.msvcrt.dll__close
or eax, 0xffffffff
jmp 0x43b2f4
mov rcx, qword [rbp + 0x48]
lea rdx, [rbp + 0x7e]
mov r8d, 1
lea r9, [rbp + 0x78]
mov qword [rsp + 0x20], 0
call sub.kernel32.dll_ReadFile_1
mov r13d, eax
test r13d, r13d
jne 0x43b2c6
mov dword [rbp + 0x74], 0
mov rcx, qword [rbp + 0x48]
xor rdx, rdx
lea r8, [rbp + 0x74]
mov r9d, 2
call sub.kernel32.dll_SetFilePointer_1
cmp word [rbp + 0x7e], 0x1a
jne 0x43b2eb
mov dword [rbp + 0x74], 0xffffffff
mov rcx, qword [rbp + 0x48]
or edx, 0xffffffff
lea r8, [rbp + 0x74]
mov r9d, 2
call sub.kernel32.dll_SetFilePointer_1
mov ecx, ebx
call fcn.0043b4a0
mov eax, ebx
lea rsp, [rbp + 0x80]
pop rbx
pop rsi
pop rdi
pop r13
pop rbp
ret