Function at 0x140151aa0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rdx, qword [rsp + 0xb0]
xor r13d, r13d
mov ebp, r9d
mov rax, qword [rdx + 0xd0]
mov r9d, dword [rdx + 0x18]
mov esi, dword [rdx + 0xd8]
mov ebx, dword [rdx + 0xdc]
mov qword [rsp + 0x48], rax
mov rax, qword [rdx + 0xf8]
mov r14, rcx
mov ecx, dword [rdx + 0xe0]
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x30], r9d
mov r12d, r13d
lea r15d, [r13 + 1]
mov dword [rsp + 0xa8], ecx
test ebp, ebp
jle 0x140151b75
add ebp, 0x20
movsxd rdi, ebp
mov rcx, rdi
call fcn.1401bee78
mov r12, rax
test rax, rax
je 0x140151b3e
mov r9, qword [r14]
lea eax, [rbp - 0x20]
mov edx, r15d
movsxd r8, eax
mov rcx, r12
call fcn.1401c1e14
mov ecx, dword [rsp + 0xa8]
mov rdx, qword [rsp + 0xb0]
mov r8d, dword [rsp + 0xa0]
xor eax, eax
mov qword [rdi + r12 - 0x20], rax
mov qword [rdi + r12 - 0x18], rax
mov qword [rdi + r12 - 0x10], rax
mov qword [rdi + r12 - 8], rax
mov rax, qword [rsp + 0x40]
mov rdi, r12
jmp 0x140151b7d
mov rdi, qword [rsp + 0xb0]
test r8d, r8d
jle 0x140152203
nop word [rax + rax]
mov r15d, r13d
mov qword [rsp + 0x38], rax
test ecx, ecx
jne 0x140151c51
cmp ebx, 0xb
jge 0x140151c40
mov rcx, qword [r14]
call fcn.1401c1a94
test eax, eax
je 0x140151bc4
test ebx, ebx
je 0x140152067
mov ebx, 0xb
jmp 0x140151c40
test r12, r12
je 0x140151bd9
dec ebp
js 0x140152067
movzx eax, byte [rdi]
inc rdi
jmp 0x140151be1
mov rcx, qword [r14]
call fcn.1401c3f28
mov rcx, qword [rsp + 0x48]
movzx eax, al
movzx edx, byte [rax + rcx]
mov ecx, ebx
add ebx, 8
shl edx, cl
or esi, edx
cmp ebx, 0xb
jge 0x140151c40
mov rcx, qword [r14]
call fcn.1401c1a94
test eax, eax
je 0x140151c0e
mov ebx, 0xb
jmp 0x140151c40
test r12, r12
je 0x140151c23
dec ebp
js 0x140152067
movzx eax, byte [rdi]
inc rdi
jmp 0x140151c2b
mov rcx, qword [r14]
call fcn.1401c3f28
mov rcx, qword [rsp + 0x48]
movzx eax, al
movzx edx, byte [rax + rcx]
mov ecx, ebx
shl edx, cl
or esi, edx
add ebx, 8
test esi, 0x7ff
je 0x140151c51
dec ebx
shr esi, 1
jmp 0x140151ba0
cmp ebx, 8
jge 0x140151ca3
mov rcx, qword [r14]
call fcn.1401c1a94
test eax, eax
je 0x140151c71
test ebx, ebx
je 0x140152067
mov ebx, 8
jmp 0x140151ca3
test r12, r12
je 0x140151c86
dec ebp
js 0x140152067
movzx eax, byte [rdi]
inc rdi
jmp 0x140151c8e
mov rcx, qword [r14]
call fcn.1401c3f28
mov rcx, qword [rsp + 0x48]
movzx eax, al
movzx edx, byte [rax + rcx]
mov ecx, ebx
shl edx, cl
or esi, edx
add ebx, 8
test sil, sil
jne 0x140151cb0
sub ebx, 8
shr esi, 8
jmp 0x140151c51
test sil, 1
jne 0x140151cc0
shr esi, 1
dec ebx
test sil, 1
je 0x140151cb6
dec ebx
shr esi, 1
xor edx, edx
mov dword [rsp + 0xa8], edx
nop dword [rax]
cmp ebx, 0xc
jge 0x140151d70
mov rcx, qword [r14]
call fcn.1401c1a94
test eax, eax
je 0x140151cf4
test ebx, ebx
je 0x1401520db
mov ebx, 0xc
jmp 0x140151d70
test r12, r12
je 0x140151d09
dec ebp
js 0x1401520db
movzx eax, byte [rdi]
inc rdi
jmp 0x140151d11
mov rcx, qword [r14]
call fcn.1401c3f28
mov rcx, qword [rsp + 0x48]
movzx eax, al
movzx edx, byte [rax + rcx]
mov ecx, ebx
add ebx, 8
shl edx, cl
or esi, edx
cmp ebx, 0xc
jge 0x140151d70
mov rcx, qword [r14]
call fcn.1401c1a94
test eax, eax
je 0x140151d3e
mov ebx, 0xc
jmp 0x140151d70
test r12, r12
je 0x140151d53
dec ebp
js 0x1401520db
movzx eax, byte [rdi]
inc rdi
jmp 0x140151d5b
mov rcx, qword [r14]
call fcn.1401c3f28
mov rcx, qword [rsp + 0x48]
movzx eax, al
movzx edx, byte [rax + rcx]
mov ecx, ebx
shl edx, cl
or esi, edx
add ebx, 8
mov eax, esi
lea rcx, [0x140000000]
lea rdx, [rcx + 0x237ba0]
and eax, 0xfff
movzx ecx, byte [rdx + rax*4 + 1]
lea rdx, [rdx + rax*4]
sub ebx, ecx
shr esi, cl
movzx ecx, byte [rdx]
sub ecx, 7
je 0x140151db7
sub ecx, 2
je 0x140151da8
sub ecx, 2
jne 0x140151f04
movzx eax, word [rdx + 2]
add r15d, eax
add r13d, eax
jmp 0x140151cd0
movzx eax, word [rdx + 2]
mov rcx, qword [rsp + 0x38]
add eax, r13d
add rcx, 4
mov dword [rcx - 4], eax
movzx eax, word [rdx + 2]
mov edx, dword [rsp + 0x30]
add r15d, eax
xor r8d, r8d
mov qword [rsp + 0x38], rcx
mov r13d, r8d
cmp r15d, edx
jge 0x140151f50
nop dword [rax]
cmp ebx, 0xd
jge 0x140151e90
mov rcx, qword [r14]
call fcn.1401c1a94
test eax, eax
je 0x140151e14
test ebx, ebx
je 0x1401520db
mov ebx, 0xd
jmp 0x140151e90
test r12, r12
je 0x140151e29
dec ebp
js 0x1401520db
movzx eax, byte [rdi]
inc rdi
jmp 0x140151e31
mov rcx, qword [r14]
call fcn.1401c3f28
mov rcx, qword [rsp + 0x48]
movzx eax, al
movzx edx, byte [rax + rcx]
mov ecx, ebx
add ebx, 8
shl edx, cl
or esi, edx
cmp ebx, 0xd
jge 0x140151e90
mov rcx, qword [r14]
call fcn.1401c1a94
test eax, eax
je 0x140151e5e
mov ebx, 0xd
jmp 0x140151e90
test r12, r12
je 0x140151e73
dec ebp
js 0x1401520db
movzx eax, byte [rdi]
inc rdi
jmp 0x140151e7b
mov rcx, qword [r14]
call fcn.1401c3f28
mov rcx, qword [rsp + 0x48]
movzx eax, al
movzx edx, byte [rax + rcx]
mov ecx, ebx
shl edx, cl
or esi, edx
add ebx, 8
mov eax, esi
lea rcx, [0x140000000]
and eax, 0x1fff
lea rdx, [rcx + 0x23bba0]
movzx ecx, byte [rdx + rax*4 + 1]
lea rdx, [rdx + rax*4]
movzx eax, byte [rdx]
sub ebx, ecx
shr esi, cl
cmp al, 8
je 0x140151ed0
cmp al, 9
jbe 0x140151f2d
cmp al, 0xb
ja 0x140151f15
movzx eax, word [rdx + 2]
add r15d, eax
add r13d, eax
jmp 0x140151df0
movzx eax, word [rdx + 2]
mov rcx, qword [rsp + 0x38]
add eax, r13d
add rcx, 4
mov dword [rcx - 4], eax
movzx eax, word [rdx + 2]
mov edx, dword [rsp + 0x30]
add r15d, eax
xor r8d, r8d
mov qword [rsp + 0x38], rcx
mov r13d, r8d
cmp r15d, edx
jl 0x140151cd0
jmp 0x140151f4d
dec ecx
jne 0x140151f2d
mov dword [rsp + 0xa8], 1
jmp 0x140151f2d
mov ecx, dword [rsp + 0xa8]
cmp al, 0xc
mov eax, 1
cmove ecx, eax
mov dword [rsp + 0xa8], ecx
mov rcx, qword [rsp + 0x38]
mov edx, dword [rsp + 0x30]
test r13d, r13d
je 0x140151f4a
mov dword [rcx], r13d
add rcx, 4
xor r8d, r8d
mov r13d, r8d
jmp 0x140151f4d
xor r8d, r8d
cmp r15d, edx
mov r10, qword [rsp + 0x40]
je 0x140151fb3
cmp r15d, edx
jle 0x140151f75
nop dword [rax]
cmp rcx, r10
jbe 0x140151f72
sub r15d, dword [rcx - 4]
sub rcx, 4
cmp r15d, edx
jg 0x140151f60
cmp r15d, edx
jge 0x140151fa2
test r15d, r15d
movzx eax, cl
cmovs r15d, r8d
sub al, r10b
test al, 4
je 0x140151f92
mov dword [rcx], r13d
add rcx, 4
mov r13d, r8d
sub r13d, r15d
add r13d, edx
add rcx, 4
mov dword [rcx - 4], r13d
jmp 0x140151fb3
jle 0x140151fb3
lea eax, [rdx + r13]
add rcx, 8
mov dword [rcx - 8], eax
mov dword [rcx - 4], r8d
mov r8, rcx
mov rcx, qword [rsp + 0x98]
mov r9d, edx
mov rdx, r10
call fcn.140151750
cmp word [rsp + 0xc0], 0
je 0x14015202e
mov eax, dword [rsp + 0xd8]
mov rcx, qword [rsp + 0xb8]
or edx, 0xffffffff
mov r9d, 1
test eax, eax
je 0x14015201c
mov r15d, dword [rsp + 0xd0]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0xc8]
mov r8d, r15d
mov dword [rsp + 0x20], eax
call fcn.140061930
inc r15d
mov dword [rsp + 0xd0], r15d
jmp 0x140152025
or r8d, 0xffffffff
call fcn.1400615b0
test ax, ax
jne 0x14015222d
mov r8d, dword [rsp + 0xa0]
mov rdx, qword [rsp + 0xb0]
xor r13d, r13d
sub r8d, dword [rdx + 0x14]
mov dword [rsp + 0xa0], r8d
test r8d, r8d
jle 0x140152203
mov rax, qword [rsp + 0x40]
mov ecx, dword [rsp + 0xa8]
jmp 0x140151b90
mov r9d, dword [rsp + 0x30]
mov r10, qword [rsp + 0x40]
test r9d, r9d
je 0x14015216b
mov rcx, qword [rsp + 0x38]
jns 0x140152098
cmp rcx, r10
jbe 0x140152093
sub r15d, dword [rcx - 4]
sub rcx, 4
cmp r15d, r9d
jg 0x140152081
mov qword [rsp + 0x38], rcx
cmp r15d, r9d
jge 0x1401520cb
test r15d, r15d
mov edx, 0
movzx eax, cl
cmovs r15d, edx
sub al, r10b
test al, 4
je 0x1401520b9
mov dword [rcx], edx
add rcx, 4
mov eax, r9d
sub eax, r15d
add rcx, 4
mov dword [rcx - 4], eax
jmp 0x140152166
jle 0x14015216b
mov dword [rcx], r9d
xor edx, edx
jmp 0x14015215f
mov rcx, qword [rsp + 0x38]
test r13d, r13d
je 0x1401520f8
mov dword [rcx], r13d
add rcx, 4
xor edx, edx
mov r13d, edx
mov qword [rsp + 0x38], rcx
jmp 0x1401520fa
xor edx, edx
mov r9d, dword [rsp + 0x30]
mov r10, qword [rsp + 0x40]
cmp r15d, r9d
je 0x14015216b
jle 0x14015212a
nop dword [rax + rax]
cmp rcx, r10
jbe 0x140152122
sub r15d, dword [rcx - 4]
sub rcx, 4
cmp r15d, r9d
jg 0x140152110
mov qword [rsp + 0x38], rcx
cmp r15d, r9d
jge 0x140152157
test r15d, r15d
movzx eax, cl
cmovs r15d, edx
sub al, r10b
test al, 4
je 0x140152147
mov dword [rcx], r13d
add rcx, 4
mov r13d, edx
sub r13d, r15d
add r13d, r9d
add rcx, 4
mov dword [rcx - 4], r13d
jmp 0x140152166
jle 0x14015216b
lea eax, [r9 + r13]
mov dword [rcx], eax
mov dword [rcx + 4], edx
add rcx, 8
mov qword [rsp + 0x38], rcx
mov r8, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x98]
mov rdx, r10
call fcn.140151750
cmp word [rsp + 0xc0], 0
je 0x1401521ce
mov eax, dword [rsp + 0xd8]
mov rcx, qword [rsp + 0xb8]
or edx, 0xffffffff
mov r9d, 1
test eax, eax
je 0x1401521c5
mov r8d, dword [rsp + 0xd0]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0xc8]
mov dword [rsp + 0x20], eax
call fcn.140061930
jmp 0x1401521ce
or r8d, 0xffffffff
call fcn.1400615b0
mov rcx, qword [rsp + 0xb0]
mov eax, dword [rsp + 0xa8]
mov dword [rcx + 0xdc], ebx
mov dword [rcx + 0xd8], esi
mov dword [rcx + 0xe0], eax
test r12, r12
je 0x1401521fc
mov rcx, r12
call fcn.1401be23c
mov eax, 4
jmp 0x14015222d
mov eax, dword [rsp + 0xa8]
mov dword [rdx + 0xdc], ebx
mov dword [rdx + 0xd8], esi
mov dword [rdx + 0xe0], eax
test r12, r12
je 0x140152229
mov rcx, r12
call fcn.1401be23c
movzx eax, r13w
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret