Function at 0x140018300
Capabilities:
Read file on windows

Disassembly:
push rbp
push rbx
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x60
cmp byte [rcx + 0x64], 0
mov rbx, rcx
jne 0x14001833d
xorps xmm0, xmm0
ucomisd xmm0, qword [rcx + 0xa0]
jne 0x140018338
movsd xmm0, qword [0x14012f2d8]
ucomisd xmm0, qword [rcx + 0x98]
je 0x14001833d
xor r15b, r15b
jmp 0x140018340
mov r15b, 1
xor r14d, r14d
mov qword [rsp + 0x58], rsi
mov r13d, r14d
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x48], r12
cmp qword [rcx + 0x758], r14
je 0x140018471
mov r12d, dword [rcx + 0x760]
imul r12d, dword [rcx + 0x50]
test r12d, r12d
je 0x14001837c
mov eax, dword [rcx + 0x5c]
imul eax, r12d
jmp 0x140018381
mov eax, 0x1000
mov ecx, eax
call fcn.1400b609c
mov r13, rax
test rax, rax
je 0x140018467
mov rcx, qword [rbx + 0x758]
cmp word [rcx], 0x4d
jne 0x140018475
cmp word [rcx + 0xa], 0x41
jne 0x14001840c
mov ecx, 0x60
call fcn.1400b6058
test rax, rax
je 0x140018467
mov rcx, rax
call fcn.14003e010
mov rdi, rax
test rax, rax
je 0x140018467
mov edx, dword [rbx + 0x50]
mov rcx, rax
call fcn.14003e0f0
mov ecx, eax
mov esi, eax
shr ecx, 0x1f
test cl, cl
je 0x140018403
mov rcx, rdi
call fcn.14003e0c0
mov edx, 0x60
mov rcx, rdi
call fcn.1400b6094
jmp 0x14001883e
mov qword [rbx + 0x768], rdi
jmp 0x140018475
mov ecx, 0x38
call fcn.1400b6058
test rax, rax
je 0x140018467
mov rcx, rax
call fcn.140044b90
mov rdi, rax
test rax, rax
je 0x140018467
mov ecx, 0x9600
call fcn.1400b6058
test rax, rax
je 0x14001845a
mov rdx, rdi
mov rcx, rax
call fcn.14003f2a0
test rax, rax
je 0x14001845a
mov qword [rbx + 0x768], rax
mov qword [rbx + 0x770], rdi
jmp 0x140018475
mov rax, qword [rdi]
mov edx, 1
mov rcx, rdi
call qword [rax]
mov eax, 0x80040202
jmp 0x140018840
mov r12d, dword [rbp + 0x30]
mov esi, r14d
nop dword [rax + rax]
mov rcx, qword [rbx + 0xb0]
lea r9, [rbp + 0x40]
mov r8d, 4
mov dword [rbp + 0x40], r14d
lea rdx, [rbp + 0x38]
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400187a2
cmp dword [rbp + 0x40], 4
jne 0x1400187a2
cmp qword [rbx + 0x758], 0
je 0x140018708
test r12d, r12d
je 0x1400184d5
mov edi, dword [rbp + 0x38]
imul edi, r12d
mov dword [rbp + 0x30], edi
jmp 0x1400184fc
mov rcx, qword [rbx + 0xb0]
lea r9, [rbp + 0x40]
mov r8d, 4
mov dword [rbp + 0x40], r14d
lea rdx, [rbp + 0x30]
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov edi, dword [rbp + 0x30]
test edi, edi
je 0x1400187a7
mov rcx, qword [rbx + 0xb0]
lea r9, [rbp + 0x40]
mov r8d, edi
mov dword [rbp + 0x40], r14d
mov rdx, r13
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1400187a2
cmp dword [rbp + 0x40], edi
jne 0x1400187a2
mov rax, qword [rbx + 0x758]
test r12d, r12d
je 0x140018598
mov r8d, dword [rbx + 0x50]
xor r9d, r9d
mov rcx, qword [rbx + 0xa8]
mov rdx, r13
mov byte [rsp + 0x38], 0
mov byte [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
mov eax, dword [rbp + 0x38]
mov dword [rsp + 0x20], eax
call fcn.1400266e0
mov r8d, dword [rbp + 0x38]
movzx r9d, r15b
mov rdx, qword [rbx + 0xa8]
mov rcx, rbx
call fcn.140018090
mov ecx, eax
mov esi, eax
shr ecx, 0x1f
test cl, cl
je 0x140018480
jmp 0x1400187a7
cmp word [rax], 0x4d
jne 0x140018480
cmp word [rax + 0xa], 0x41
mov r14, qword [rbx + 0x768]
jne 0x140018675
cmp dword [rbp + 0x38], 0
mov rdi, r13
jne 0x1400185e5
mov eax, dword [rbp + 0x30]
lea rdx, [r13 + 1]
dec eax
lea rcx, [r14 + 0x3c]
mov r8d, 0x20
cmp eax, r8d
cmovb r8d, eax
mov dword [r14 + 0x5c], r8d
call fcn.1400b9e30
jmp 0x1400186f3
mov ecx, dword [rbp + 0x30]
test ecx, ecx
je 0x1400186f3
mov eax, dword [rbx + 0x5c]
lea r8, [rbp + 0x40]
mov rdx, qword [rbx + 0xa8]
mov r9, rdi
mov dword [rbp + 0x40], eax
lea rax, [rbp + 0x48]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], ecx
mov rcx, r14
mov dword [rbp + 0x48], 0
call fcn.14003e5d0
mov esi, eax
shr eax, 0x1f
test al, al
jne 0x1400186f3
mov r8d, dword [rbp + 0x40]
test r8d, r8d
je 0x140018656
mov rdx, qword [rbx + 0xa8]
movzx r9d, r15b
mov rcx, rbx
call fcn.140018090
mov esi, eax
shr eax, 0x1f
test al, al
jne 0x14001883e
mov eax, dword [rbp + 0x48]
test eax, eax
je 0x1400186f3
mov ecx, dword [rbp + 0x30]
add rdi, rax
sub ecx, eax
mov dword [rbp + 0x30], ecx
test ecx, ecx
jne 0x1400185f0
jmp 0x1400186f3
mov rdi, qword [rbx + 0x770]
mov rdx, r13
mov r8d, dword [rbp + 0x30]
mov rcx, rdi
call fcn.140045ba0
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x30]
test al, al
jne 0x1400186f3
nop dword [rax + rax]
mov r8d, dword [rbx + 0x50]
xor r9d, r9d
mov rdx, qword [rbx + 0xa8]
mov rcx, r14
mov qword [rsp + 0x20], 0
call fcn.14003f330
test eax, eax
je 0x1400186e6
mov rdx, qword [rbx + 0xa8]
movzx r9d, r15b
mov r8d, eax
mov rcx, rbx
call fcn.140018090
mov esi, eax
shr eax, 0x1f
test al, al
jne 0x14001883e
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x30]
test al, al
je 0x1400186a0
mov eax, esi
shr eax, 0x1f
test al, al
jne 0x1400187a7
xor r14d, r14d
jmp 0x140018480
cmp dword [rbp + 0x38], 0
je 0x1400187a7
xor edx, edx
mov edi, edx
cmp dword [rbx + 0x50], edx
jbe 0x140018771
nop dword [rax + rax]
mov eax, dword [rbp + 0x38]
lea r9, [rbp + 0x40]
mov ecx, edi
mov dword [rbp + 0x40], edx
mov qword [rsp + 0x20], rdx
lea r14d, [rax*4]
mov rax, qword [rbx + 0xa8]
mov r8d, r14d
mov rdx, qword [rax + rcx*8]
mov rcx, qword [rbx + 0xb0]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14001876c
cmp dword [rbp + 0x40], r14d
jne 0x14001876c
inc edi
mov edx, 0
cmp edi, dword [rbx + 0x50]
jb 0x140018720
jmp 0x140018771
mov esi, 0x80040205
mov eax, esi
shr eax, 0x1f
test al, al
jne 0x1400187a7
mov r8d, dword [rbp + 0x38]
movzx r9d, r15b
mov rdx, qword [rbx + 0xa8]
mov rcx, rbx
call fcn.140018090
mov esi, eax
shr eax, 0x1f
test al, al
jne 0x1400187a7
xor r14d, r14d
jmp 0x140018480
mov esi, 0x80040205
mov rax, qword [rbx + 0x758]
test rax, rax
je 0x140018827
test r13, r13
je 0x1400187c7
mov rcx, r13
call fcn.1400b60a4
mov rax, qword [rbx + 0x758]
cmp word [rax], 0x4d
jne 0x140018827
cmp word [rax + 0xa], 0x41
mov rdi, qword [rbx + 0x768]
jne 0x1400187ff
mov rcx, rdi
call fcn.14003eae0
test rdi, rdi
je 0x140018827
mov rcx, rdi
call fcn.14003e0c0
mov edx, 0x60
mov rcx, rdi
call fcn.1400b6094
jmp 0x140018827
test rdi, rdi
je 0x140018811
mov rax, qword [rdi]
mov edx, 1
mov rcx, rdi
call qword [rax]
mov rcx, qword [rbx + 0x770]
test rcx, rcx
je 0x140018827
mov rax, qword [rcx]
mov edx, 1
call qword [rax]
mov eax, esi
shr eax, 0x1f
not al
test al, 1
je 0x14001883e
mov rcx, qword [rbx + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x18]
mov esi, eax
mov eax, esi
mov r12, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x60
pop r15
pop r14
pop r13
pop rbx
pop rbp
ret