Function at 0x180089050
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x30
xor ebx, ebx
movsxd rbp, r8d
xor r15d, r15d
mov rsi, rdx
mov rdi, rcx
mov r13, rcx
test rcx, rcx
je 0x1800893d5
mov rax, qword [rcx + 0x48]
lea r12, [rcx + 0x48]
test rax, rax
je 0x1800890ae
mov r8, rdx
mov dword [rsp + 0x28], 1
lea edx, [rbx + 2]
mov dword [rsp + 0x20], ebx
mov r9d, ebp
call rax
mov ebx, eax
test eax, eax
jle 0x1800893d7
mov qword [rsp + 0x68], r14
mov rax, qword [rdi + 0x18]
test rax, rax
je 0x1800890c1
mov rdi, rax
jmp 0x1800890b3
mov r14, qword [rsp + 0x60]
mov edx, 0xffffffff
mov r8, qword [0x180109cc8]
test ebx, ebx
js 0x1800893a9
mov rax, qword [rdi + 8]
test rax, rax
je 0x180089109
mov r9, qword [rax + 0x110]
test r9, r9
je 0x180089109
mov r8d, ebp
mov rdx, rsi
mov rcx, rdi
call r9
mov r8, qword [0x180109cc8]
mov ebx, eax
mov edx, 0xffffffff
cmp byte [rdi + 0x6c], 7
jne 0x180089145
test ebx, ebx
jle 0x180089145
test r15d, r15d
jle 0x180089145
lea r9, [rsp + 0x60]
mov dword [rsp + 0x60], r15d
mov r8, rsi
mov edx, r15d
mov rcx, rsi
call fcn.1800d3480
mov ebx, dword [rsp + 0x60]
test eax, eax
mov r8, qword [0x180109cc8]
mov edx, 0xffffffff
cmovne ebx, edx
cmp byte [rdi + 0x6c], 5
jne 0x1800891f7
mov rcx, qword [rdi + 0x20]
mov ebx, 0xfffffffe
test rcx, rcx
je 0x1800891de
test ebp, ebp
jne 0x180089174
movsxd r14, dword [rcx + 0x58]
add r14, qword [rcx + 0x30]
xor ebx, ebx
jmp 0x1800891f7
movsxd rax, dword [rcx + 0x58]
mov ebx, dword [rcx + 0x54]
mov r14, rax
add r14, qword [rcx + 0x30]
test ebx, ebx
jle 0x18008918d
cmp eax, ebx
jl 0x18008918d
mov ebx, dword [rcx + 0x50]
sub ebx, eax
test ebx, ebx
jne 0x180089197
mov ebx, edx
jmp 0x1800891f7
cmp ebp, ebx
cmovl ebx, ebp
xor edx, edx
add eax, ebx
mov dword [rcx + 0x58], eax
mov rcx, qword [rdi + 0x20]
mov eax, dword [rcx + 0x50]
cmp dword [rcx + 0x58], eax
jne 0x1800891c1
mov dword [rcx + 0x58], edx
mov rcx, qword [rdi + 0x20]
mov eax, dword [rcx + 0x50]
cmp dword [rcx + 0x54], eax
jne 0x1800891c1
mov dword [rcx + 0x54], edx
mov rcx, qword [rdi + 0x20]
mov eax, dword [rcx + 0x54]
cmp dword [rcx + 0x58], eax
jne 0x1800891d7
mov dword [rcx + 0x58], edx
mov rax, qword [rdi + 0x20]
mov dword [rax + 0x54], edx
mov r8, qword [0x180109cc8]
test ebx, ebx
jle 0x1800891f7
movsxd r8, ebx
mov rdx, r14
mov rcx, rsi
call fcn.1800dbf60
mov r8, qword [0x180109cc8]
cmp byte [rdi + 0x6c], 4
jne 0x180089214
mov r8d, ebp
mov rdx, rsi
mov rcx, rdi
call fcn.180088490
mov r8, qword [0x180109cc8]
mov ebx, eax
cmp byte [rdi + 0x6c], 6
jne 0x180089238
mov r9, qword [rdi + 0x30]
mov r8, rbp
mov edx, 1
mov rcx, rsi
call fcn.1800ebaa8
mov r8, qword [0x180109cc8]
mov rbx, rax
cmp byte [rdi + 0x6c], 3
jne 0x1800892b5
cmp dword [r13 + 0x64], 0
jne 0x1800892b0
mov rcx, qword [rdi + 0x30]
mov r8d, ebp
and dword [rdi + 0x68], 0xffffffef
mov rdx, rsi
call fcn.18008d4e0
mov edx, eax
test eax, eax
je 0x18008929d
test eax, eax
jns 0x1800892a5
mov rcx, qword [rdi + 0x30]
test rcx, rcx
je 0x18008929d
mov eax, dword [rcx + 0x520]
lea ecx, [rax + 0x147]
test ecx, 0xfffffffb
je 0x18008928e
cmp eax, 0xfffffea9
je 0x18008929d
add eax, 0xfffffffe
cmp eax, 1
ja 0x18008929d
or dword [rdi + 0x68], 0x10
mov ebx, edx
mov r8, qword [0x180109cc8]
jmp 0x1800892b5
mov dword [r13 + 0x64], 1
mov r8, qword [0x180109cc8]
mov ebx, edx
jmp 0x1800892b5
mov ebx, 0xffffffff
cmp byte [rdi + 0x6c], 8
jne 0x180089387
test ebx, ebx
jle 0x180089387
mov r9, qword [rdi + 0x30]
test r9, r9
je 0x180089365
cmp dword [r9 + 0x240], 0
jne 0x180089310
lea rax, [0x180109cc0]
lea rdx, [r9 + 0x230]
test r8, r8
je 0x180089308
mov ecx, dword [rdx]
cmp ecx, dword [rax]
je 0x180089304
add rax, 0x10
cmp qword [rax + 8], 0
jne 0x1800892f3
jmp 0x180089308
lea rdx, [rax + 4]
cmp dword [rdx], 0x357
jne 0x180089365
mov rcx, r9
test rsi, rsi
je 0x18008935c
cmp qword [rcx + 0x238], 0
jne 0x180089343
cmp dword [rcx + 0x240], 0
jne 0x18008932f
xor ecx, ecx
jmp 0x180089357
mov r8d, ebx
mov rdx, rsi
call fcn.1800cb910
xor ecx, ecx
test eax, eax
sete cl
jmp 0x180089350
mov r8d, ebx
mov rdx, rsi
call fcn.18008a7d0
mov ecx, eax
mov r8, qword [0x180109cc8]
cmp ecx, 1
je 0x180089387
mov edx, 0xffffffff
mov ebx, edx
jmp 0x18008938c
movsxd r8, ebx
mov rdx, rsi
mov rcx, r9
call fcn.18008a7d0
mov r8, qword [0x180109cc8]
cmp eax, 1
mov edx, 0xffffffff
cmovne ebx, edx
jmp 0x18008938c
mov edx, 0xffffffff
cmp rdi, r13
je 0x1800893a9
mov rdi, qword [rdi + 0x10]
test ebx, ebx
mov eax, ebx
cmovle eax, r15d
mov r15d, eax
test rdi, rdi
jne 0x1800890d2
mov rax, qword [r12]
mov r14, qword [rsp + 0x68]
test rax, rax
je 0x1800893d5
mov dword [rsp + 0x28], ebx
mov r9d, ebp
mov r8, rsi
mov dword [rsp + 0x20], 0
mov edx, 0x82
mov rcx, r13
call rax
mov ebx, eax
mov eax, ebx
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r13
pop r12
pop rdi
pop rsi
ret