Function at 0x140019900
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x68
mov r13, r8
xor r8d, r8d
mov rbp, rdx
cmp dword [rdx + 0xc], r8d
mov edx, dword [rdx + 0x28]
mov r14, r9
mov rbx, rcx
je 0x140019fc4
xor esi, esi
call fcn.1400fad50
test eax, eax
je 0x140019953
or eax, 0xffffffff
jmp 0x140019fe7
mov edx, dword [rbp + 0x14]
mov ecx, edx
test edx, edx
je 0x140019fd1
dec ecx
je 0x140019bac
dec ecx
je 0x140019b89
mov ecx, dword [rbp + 8]
cmp ecx, 0x10
jne 0x14001997d
cmp edx, 3
je 0x140019987
cmp ecx, 0x20
jne 0x14001994b
cmp edx, 3
jne 0x14001994b
cmp dword [rsp + 0xd8], 0x18
jne 0x14001994b
mov eax, 4
cmp ecx, 0x20
mov ebx, 2
cmove ebx, eax
mov eax, dword [rbp]
imul eax, ecx
add eax, 0x1f
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
shl eax, 2
movsxd rdi, eax
mov qword [rsp + 0x40], rdi
test eax, eax
jle 0x14001994b
mov edx, dword [rbp + 0x28]
mov rcx, qword [rsp + 0xb0]
xor r8d, r8d
call fcn.1400fad50
test eax, eax
jne 0x14001994b
mov esi, dword [rbp + 0x2c]
mov r15d, dword [rbp + 0x30]
mov r12d, dword [rbp + 0x34]
lea rcx, [rdi + 0x200]
lea edx, [rax + 1]
call fcn.1400f97a4
mov rdi, rax
test rax, rax
je 0x140019fe5
movsxd rcx, dword [rbp + 4]
mov qword [rsp + 0x38], 0
test rcx, rcx
je 0x140019b7c
xor edx, edx
movsxd rbp, ebx
mov qword [rsp + 0x30], rdx
nop dword [rax]
nop word [rax + rax]
mov r9, qword [rsp + 0xb0]
mov rbx, rdx
mov rdx, qword [rsp + 0x40]
mov r8d, 1
mov rcx, rdi
call fcn.1400fabdc
mov r9, qword [rsp + 0xb8]
xor r8d, r8d
movsxd rax, dword [r9]
imul rax, rbp
test rax, rax
je 0x140019b50
nop dword [rax]
cmp rbx, r14
jae 0x140019b50
cmp dword [r9 + 8], 0x20
jne 0x140019aba
movzx ecx, byte [rdi + r8 + 3]
movzx eax, byte [rdi + r8 + 2]
mov r10d, 0x100
imul cx, r10w
add cx, ax
movzx eax, byte [rdi + r8]
movzx edx, cx
movzx ecx, byte [rdi + r8 + 1]
shl edx, 0x10
imul cx, r10w
add cx, ax
movzx eax, cx
add edx, eax
jmp 0x140019ad4
movzx ecx, byte [rdi + r8 + 1]
mov eax, 0x100
imul cx, ax
movzx eax, byte [rdi + r8]
add cx, ax
movzx edx, cx
mov ecx, edx
mov eax, esi
and ecx, esi
test esi, esi
js 0x140019aea
nop
test eax, eax
je 0x140019aea
add ecx, ecx
add eax, eax
jns 0x140019ae0
shr ecx, 0x10
mov eax, r15d
shr cx, 8
mov byte [rbx + r13], cl
mov ecx, edx
and ecx, r15d
test r15d, r15d
js 0x140019b0c
test eax, eax
je 0x140019b0c
add ecx, ecx
add eax, eax
jns 0x140019b02
shr ecx, 0x10
and edx, r12d
mov eax, r12d
shr cx, 8
mov byte [rbx + r13 + 1], cl
test r12d, r12d
js 0x140019b2d
test eax, eax
je 0x140019b2d
add edx, edx
add eax, eax
jns 0x140019b23
shr edx, 0x10
add r8, rbp
add rbx, 3
shr dx, 8
mov byte [rbx + r13 - 1], dl
movsxd rax, dword [r9]
imul rax, rbp
cmp r8, rax
jb 0x140019a70
mov rdx, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
movsxd rax, dword [r9 + 4]
add rdx, qword [rsp + 0xd0]
inc rcx
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x38], rcx
cmp rcx, rax
jb 0x140019a30
mov rcx, rdi
call fcn.1400f97e8
jmp 0x140019fe5
mov rax, qword [rsp + 0xd0]
mov r9, r14
mov r8, r13
mov rdx, rbp
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.14001a560
jmp 0x140019fe7
mov edx, 1
mov ecx, 0x8000
call fcn.1400f97a4
mov r15, rax
mov qword [rsp + 0x48], rax
test rax, rax
je 0x14001994b
mov rdx, qword [rsp + 0xc8]
xor edi, edi
xor r14d, r14d
lea rcx, [rdx + r13]
xor ebp, ebp
mov dword [rsp + 0x30], esi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], r14
xor r12d, r12d
mov qword [rsp + 0x38], rcx
nop word [rax + rax]
mov rax, qword [rsp + 0xb8]
cmp r12d, dword [rax + 4]
jge 0x140019fba
cmp rsi, rdx
jae 0x140019fba
cmp r13, rcx
jae 0x140019fba
cmp rdi, r14
jb 0x140019c76
mov rcx, rbx
call fcn.1400fa96c
test eax, eax
je 0x140019c3a
or ebx, 0xffffffff
jmp 0x140019c83
xor edi, edi
xor edx, edx
mov r8d, 0x8000
mov rcx, r15
mov qword [rsp + 0x50], rdi
call fcn.1400f9ab0
lea edx, [rdi + 1]
mov r9, rbx
mov r8d, 0x8000
mov rcx, r15
call fcn.1400fabdc
movsxd r14, eax
mov qword [rsp + 0x58], r14
test eax, eax
jg 0x140019c76
or ebx, 0xffffffff
jmp 0x140019c83
movzx ebx, byte [rdi + r15]
inc rdi
mov qword [rsp + 0x50], rdi
cmp rdi, r14
jb 0x140019cdf
mov r13, qword [rsp + 0xb0]
mov rcx, r13
call fcn.1400fa96c
test eax, eax
je 0x140019ca2
or r13d, 0xffffffff
jmp 0x140019cec
xor edi, edi
xor edx, edx
mov r8d, 0x8000
mov rcx, r15
mov qword [rsp + 0x50], rdi
call fcn.1400f9ab0
lea edx, [rdi + 1]
mov r9, r13
mov r8d, 0x8000
mov rcx, r15
call fcn.1400fabdc
movsxd r14, eax
mov qword [rsp + 0x58], r14
test eax, eax
jg 0x140019cdf
or r13d, 0xffffffff
jmp 0x140019cec
movzx r13d, byte [rdi + r15]
inc rdi
mov qword [rsp + 0x50], rdi
test ebx, ebx
js 0x140019fba
test r13d, r13d
js 0x140019fba
test ebx, ebx
jle 0x140019d55
mov rcx, qword [rsp + 0xc8]
movsxd rax, ebx
add rax, rsi
cmp rax, rcx
jb 0x140019d26
mov ebx, ecx
mov dword [rsp + 0x30], 1
sub ebx, esi
js 0x140019fba
mov edx, r13d
mov r13, qword [rsp + 0xc0]
movsxd rbx, ebx
mov rcx, r13
mov r8, rbx
call fcn.1400f9ab0
add r13, rbx
add rsi, rbx
mov qword [rsp + 0xc0], r13
add rbp, rbx
jmp 0x140019ea3
mov ecx, r13d
test r13d, r13d
je 0x140019f70
dec ecx
je 0x140019fba
dec ecx
je 0x140019ec8
mov rcx, qword [rsp + 0xc8]
movsxd rax, r13d
mov ebx, r13d
add rax, rsi
cmp rax, rcx
jb 0x140019d99
mov ebx, ecx
mov dword [rsp + 0x30], 1
sub ebx, esi
js 0x140019fba
test ebx, ebx
jle 0x140019e61
dec ebx
cmp rdi, r14
jb 0x140019e01
mov rcx, qword [rsp + 0xb0]
call fcn.1400fa96c
test eax, eax
jne 0x140019e59
xor edi, edi
xor edx, edx
mov r8d, 0x8000
mov rcx, r15
mov qword [rsp + 0x50], rdi
call fcn.1400f9ab0
mov r9, qword [rsp + 0xb0]
lea edx, [rdi + 1]
mov r8d, 0x8000
mov rcx, r15
call fcn.1400fabdc
movsxd r14, eax
mov qword [rsp + 0x58], r14
test eax, eax
jle 0x140019e59
mov rcx, qword [rsp + 0xc8]
movzx eax, byte [rdi + r15]
inc rdi
mov qword [rsp + 0x50], rdi
test eax, eax
js 0x140019e59
cmp rsi, rcx
jae 0x140019e59
mov rcx, qword [rsp + 0xc0]
cmp rcx, qword [rsp + 0x38]
jae 0x140019e59
mov byte [rcx], al
inc rcx
inc rbp
inc rsi
mov qword [rsp + 0xc0], rcx
cmp rbp, qword [rsp + 0xd0]
jbe 0x140019e48
inc r12
xor ebp, ebp
test ebx, ebx
jle 0x140019e61
mov rcx, qword [rsp + 0xc8]
jmp 0x140019da1
mov dword [rsp + 0x30], 1
test r13b, 1
je 0x140019e9b
mov rbx, qword [rsp + 0xb0]
lea rcx, [rsp + 0x48]
mov r8d, 1
mov rdx, rbx
call fcn.14001b060
mov r14, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x50]
mov r15, qword [rsp + 0x48]
mov r13, qword [rsp + 0xc0]
jmp 0x140019eab
mov r13, qword [rsp + 0xc0]
mov rbx, qword [rsp + 0xb0]
cmp dword [rsp + 0x30], 0
jne 0x140019fba
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rsp + 0xc8]
jmp 0x140019c00
mov rdx, qword [rsp + 0xb0]
lea rcx, [rsp + 0x48]
mov r8d, 1
call fcn.14001b060
mov rdx, qword [rsp + 0xb0]
lea rcx, [rsp + 0x48]
mov r8d, 1
movsxd rbx, eax
call fcn.14001b060
test ebx, ebx
js 0x140019fb5
test eax, eax
js 0x140019fb5
movsxd rcx, eax
mov rax, rcx
imul rax, qword [rsp + 0xd0]
add rax, rbx
add rsi, rax
cmp rsi, qword [rsp + 0xc8]
jae 0x140019fb5
mov r13, qword [rsp + 0xc0]
mov r14, qword [rsp + 0x58]
mov rdi, qword [rsp + 0x50]
mov r15, qword [rsp + 0x48]
mov rdx, qword [rsp + 0xc8]
add rbp, rbx
mov rbx, qword [rsp + 0xb0]
add r12, rcx
mov rcx, qword [rsp + 0x38]
add r13, rax
mov qword [rsp + 0xc0], r13
jmp 0x140019c00
mov rax, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xc8]
sub rax, rbp
add rsi, rax
cmp rsi, rdx
ja 0x140019fba
mov r13, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0xb0]
xor ebp, ebp
inc r12
add r13, rax
mov qword [rsp + 0xc0], r13
jmp 0x140019c00
mov r15, qword [rsp + 0x48]
mov rcx, r15
call fcn.1400f97e8
jmp 0x140019fe5
call fcn.1400fad50
test eax, eax
jne 0x14001994b
mov r9, rbx
mov r8d, 1
mov rdx, r14
mov rcx, r13
call fcn.1400fabdc
xor eax, eax
add rsp, 0x68
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret