Function at 0x43cf00
Capabilities:
Read file on windows

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov r13d, dword [rcx + 0x35c]
mov rbx, rcx
test r13d, r13d
jne 0x43d0a0
mov r12, qword [rcx + 0x28]
test r12, r12
je 0x43d210
sub r12d, dword [rcx + 0x30]
mov edx, dword [rbx + 0x40]
mov eax, dword [rbx + 0x48]
cmp edx, 0xffff
jbe 0x43cf4a
sub edx, 0x10000
cmp eax, edx
cmovb rax, rdx
cmp byte [rbx + 0x44], 0
jne 0x43cf84
mov dword [rbx + 0x80], 0
cmp qword [rbx + 0x28], 0
je 0x43d2b0
mov rdx, qword [rbx + 0x38]
add rax, qword [rbx + 0x30]
cmp rax, rdx
jb 0x43d228
mov qword [rbx + 0x28], rdx
mov dword [rbx + 0x80], 1
lea rbp, [rsp + 0x24]
lea rdi, [rsp + 0x20]
mov rcx, rbx
mov r8, rbp
mov rdx, rdi
call fcn.00439ad0
test eax, eax
je 0x43d1f0
movzx eax, byte [rbx + 0x44]
test al, al
jne 0x43d290
mov rdx, qword [rbx + 0x28]
test rdx, rdx
je 0x43d0c0
mov r8d, dword [rsp + 0x24]
mov esi, edx
sub esi, dword [rbx + 0x30]
test r8d, r8d
je 0x43d0de
mov dword [rbx + 0x80], 0
test rdx, rdx
je 0x43d260
mov rdx, qword [rbx + 0x38]
mov eax, esi
add rax, qword [rbx + 0x30]
cmp rax, rdx
jb 0x43d348
mov qword [rbx + 0x28], rdx
mov dword [rbx + 0x80], 1
test rdx, rdx
je 0x43d390
lea rax, [rdx + 6]
cmp rax, qword [rbx + 0x38]
jbe 0x43d248
mov dword [rbx + 0x80], 1
mov rcx, rbx
call fcn.00438350
mov rcx, rbx
mov r13d, eax
call fcn.00438350
mov edx, r13d
and edx, eax
cmp edx, 0xffffffff
je 0x43d1f0
test eax, eax
mov eax, 0xfffffffe
mov dword [rbx + 0x58], esi
cmovne r13d, eax
mov eax, dword [rsp + 0x20]
mov dword [rbx + 0x35c], r13d
mov dword [rbx + 0x5c], eax
mov dword [rbx + 0x60], r13d
cmp byte [rbx + 0x44], 0
jne 0x43d0a0
mov dword [rbx + 0x80], 0
cmp qword [rbx + 0x28], 0
je 0x43d300
mov rax, qword [rbx + 0x38]
add r12, qword [rbx + 0x30]
cmp r12, rax
jb 0x43d238
mov qword [rbx + 0x28], rax
mov dword [rbx + 0x80], 1
cmp r13d, 0xffffffff
mov eax, 0
cmove r13d, eax
mov eax, r13d
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov rcx, qword [rbx + 0x18]
call sub.msvcrt.dll_ftell
sub eax, dword [rbx + 0x20]
mov esi, eax
movzx eax, byte [rbx + 0x44]
mov ecx, dword [rsp + 0x24]
test ecx, ecx
jne 0x43d1c8
test al, al
je 0x43d11a
mov r8, rbp
mov rdx, rdi
mov rcx, rbx
call fcn.00439ad0
test eax, eax
movzx eax, byte [rbx + 0x44]
je 0x43d1c8
test al, al
jne 0x43d150
mov rax, qword [rbx + 0x28]
test rax, rax
je 0x43d0c0
mov edx, dword [rsp + 0x24]
mov esi, eax
sub esi, dword [rbx + 0x30]
test edx, edx
jne 0x43d358
cmp qword [rbx + 0x28], 0
mov eax, dword [rsp + 0x20]
mov dword [rbx + 0x80], 0
je 0x43d170
mov rdx, qword [rbx + 0x38]
add rax, qword [rbx + 0x30]
cmp rax, rdx
jb 0x43d160
mov qword [rbx + 0x28], rdx
mov dword [rbx + 0x80], 1
jmp 0x43d0e2
xor esi, esi
jmp 0x43d0d2
mov qword [rbx + 0x28], rax
jmp 0x43d0e2
mov edx, eax
add edx, dword [rbx + 0x20]
jb 0x43d1b0
test eax, eax
js 0x43d1b0
mov rcx, qword [rbx + 0x18]
xor r8d, r8d
call sub.msvcrt.dll_fseek
test eax, eax
je 0x43d0e2
mov edx, dword [rbx + 0x20]
mov rcx, qword [rbx + 0x18]
mov r8d, 2
mov dword [rbx + 0x80], 1
call sub.msvcrt.dll_fseek
jmp 0x43d0e2
mov dword [rbx + 0x80], 1
mov edx, 0x7fffffff
jmp 0x43d17b
mov rdx, qword [rbx + 0x28]
test al, al
jne 0x43d004
mov dword [rbx + 0x80], 0
test rdx, rdx
jne 0x43cfe3
jmp 0x43d260
mov dword [rbx + 0x84], 0x24
mov r13d, 0xffffffff
mov dword [rbx + 0x35c], 0xffffffff
jmp 0x43d066
mov rcx, qword [rcx + 0x18]
call sub.msvcrt.dll_ftell
sub eax, dword [rbx + 0x20]
mov r12d, eax
jmp 0x43cf30
mov qword [rbx + 0x28], rax
jmp 0x43cf84
mov qword [rbx + 0x28], r12
jmp 0x43d0a0
mov ecx, dword [rdx]
mov dword [rsp + 0x2a], ecx
movzx edx, word [rdx + 4]
mov qword [rbx + 0x28], rax
mov word [rsp + 0x2e], dx
jmp 0x43d025
mov edx, esi
add edx, dword [rbx + 0x20]
jb 0x43d3e1
test esi, esi
js 0x43d3e1
mov rcx, qword [rbx + 0x18]
xor r8d, r8d
call sub.msvcrt.dll_fseek
test eax, eax
jne 0x43d3c0
mov rdx, qword [rbx + 0x28]
jmp 0x43d004
mov esi, dword [rsp + 0x24]
test esi, esi
je 0x43d0de
mov rdx, qword [rbx + 0x28]
xor esi, esi
jmp 0x43d004
mov edx, eax
add edx, dword [rbx + 0x20]
jb 0x43d378
test eax, eax
js 0x43d378
mov rcx, qword [rbx + 0x18]
xor r8d, r8d
call sub.msvcrt.dll_fseek
test eax, eax
je 0x43cf84
mov edx, dword [rbx + 0x20]
mov rcx, qword [rbx + 0x18]
mov r8d, 2
mov dword [rbx + 0x80], 1
call sub.msvcrt.dll_fseek
jmp 0x43cf84
mov edx, r12d
add edx, dword [rbx + 0x20]
jb 0x43d360
test r12d, r12d
js 0x43d360
mov rcx, qword [rbx + 0x18]
xor r8d, r8d
call sub.msvcrt.dll_fseek
test eax, eax
je 0x43d339
mov edx, dword [rbx + 0x20]
mov rcx, qword [rbx + 0x18]
mov r8d, 2
mov dword [rbx + 0x80], 1
call sub.msvcrt.dll_fseek
mov r13d, dword [rbx + 0x35c]
jmp 0x43d0a0
mov qword [rbx + 0x28], rax
mov rdx, rax
jmp 0x43d004
mov rdx, rax
jmp 0x43cfd0
mov dword [rbx + 0x80], 1
mov edx, 0x7fffffff
jmp 0x43d30d
mov dword [rbx + 0x80], 1
mov edx, 0x7fffffff
jmp 0x43d2c3
mov r9, qword [rbx + 0x18]
lea rcx, [rsp + 0x2a]
mov r8d, 1
mov edx, 6
call sub.msvcrt.dll_fread
cmp rax, 1
jne 0x43d01b
jmp 0x43d025
mov edx, dword [rbx + 0x20]
mov rcx, qword [rbx + 0x18]
mov r8d, 2
mov dword [rbx + 0x80], 1
call sub.msvcrt.dll_fseek
jmp 0x43d287
mov dword [rbx + 0x80], 1
mov edx, 0x7fffffff
jmp 0x43d273