Function at 0x140004cb0
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
mov rax, qword [0x14003f068]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov r15d, ecx
mov qword [rsp + 0x20], rdx
mov ecx, 0x30032
mov r12, r8
call fcn.140012e04
xor r14d, r14d
mov rsi, rax
test rax, rax
jne 0x140004cfb
or eax, 0xffffffff
jmp 0x140004fce
mov rdx, rsi
mov ecx, r15d
call fcn.1400047cc
mov r13, rax
cmp rax, 0xffffffffffffffff
je 0x140004fbf
mov r8d, 0x400
mov rdx, rsi
mov ecx, r15d
call fcn.14001d90c
mov ebp, eax
test eax, eax
js 0x140004fbf
movzx ecx, byte [rsi + 2]
mov rdi, rsi
movzx r8d, byte [rsi + 3]
movzx eax, byte [rsi]
shl r8d, 8
or r8d, ecx
movzx ecx, byte [rsi + 1]
shl r8d, 8
or r8d, ecx
shl r8d, 8
or r8d, eax
cmp r8d, 0x2014b50
jne 0x140004fbf
cmp ebp, 0x2e
jge 0x140004d98
movsxd rbx, ebp
mov rdx, rdi
mov r8, rbx
mov rcx, rsi
call fcn.14000b4e0
lea rdx, [rbx + rsi]
mov r8d, 0x400
mov ecx, r15d
mov rdi, rax
call fcn.14001d90c
test eax, eax
jle 0x140004fbf
add ebp, eax
movzx eax, byte [rdi + 0x20]
movzx edx, byte [rdi + 0x21]
movzx ecx, byte [rdi + 0x1f]
movzx ebx, byte [rdi + 0x1d]
shl ebx, 8
shl edx, 8
or edx, eax
shl ecx, 8
movzx eax, byte [rdi + 0x1e]
or ecx, eax
movzx eax, byte [rdi + 0x1c]
or ebx, eax
add edx, ecx
add ebx, 0x2e
add ebx, edx
lea eax, [rbx + 4]
cmp ebp, eax
jge 0x140004e11
cmp rdi, rsi
je 0x140004de3
movsxd r8, ebp
mov rdx, rdi
mov rcx, rsi
call fcn.14000b4e0
mov rdi, rax
mov eax, 0x400
movsxd rdx, ebp
mov r8d, ebx
mov ecx, r15d
sub r8d, ebp
add r8d, 4
cmp r8d, eax
cmovl r8d, eax
add rdx, rsi
call fcn.14001d90c
test eax, eax
jle 0x140004fbf
add ebp, eax
mov rcx, r12
call fcn.140012cb0
movzx edx, byte [rdi + 0x1d]
movzx ecx, byte [rdi + 0x1c]
shl rdx, 8
or rdx, rcx
cmp rdx, rax
jne 0x140004e48
mov rcx, r12
call fcn.140012cb0
mov r8, rax
lea rcx, [rdi + 0x2e]
mov rdx, r12
call fcn.14000bae0
test eax, eax
je 0x140004e78
mov eax, ebx
sub ebp, ebx
add rdi, rax
movzx eax, byte [rdi + 2]
movzx ecx, byte [rdi + 3]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi + 1]
shl ecx, 8
or ecx, eax
movzx eax, byte [rdi]
shl ecx, 8
or ecx, eax
cmp ecx, 0x2014b50
jmp 0x140004d5d
movzx eax, byte [rdi + 0x2c]
xor r8d, r8d
movzx edx, byte [rdi + 0x2d]
mov ecx, r15d
shl rdx, 8
or rdx, rax
movzx eax, byte [rdi + 0x2b]
shl rdx, 8
or rdx, rax
movzx eax, byte [rdi + 0x2a]
shl rdx, 8
or rdx, rax
add rdx, r13
call fcn.140019fbc
test rax, rax
js 0x140004fbf
mov r8d, 0x1e
lea rdx, [rsp + 0x28]
mov ecx, r15d
call fcn.14001d90c
test eax, eax
js 0x140004fbf
movzx eax, byte [rsp + 0x2a]
movzx ecx, byte [rsp + 0x2b]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x29]
shl ecx, 8
or ecx, eax
movzx eax, byte [rsp + 0x28]
shl ecx, 8
or ecx, eax
cmp ecx, 0x4034b50
jne 0x140004fbf
movzx eax, byte [rdi + 0x1a]
movzx ecx, byte [rdi + 0x1b]
mov r9, qword [rsp + 0x20]
movzx edx, byte [rsp + 0x43]
shl rcx, 8
or rcx, rax
shl edx, 8
movzx eax, byte [rdi + 0x19]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdi + 0x18]
shl rcx, 8
or rcx, rax
mov qword [r9], rcx
movzx eax, byte [rdi + 0x16]
movzx ecx, byte [rdi + 0x17]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdi + 0x15]
shl rcx, 8
or rcx, rax
movzx eax, byte [rdi + 0x14]
shl rcx, 8
or rcx, rax
mov qword [r9 + 8], rcx
movzx eax, byte [rdi + 0x2c]
movzx r8d, byte [rdi + 0x2d]
movzx ecx, byte [rsp + 0x45]
shl r8, 8
or r8, rax
shl ecx, 8
movzx eax, byte [rdi + 0x2b]
shl r8, 8
or r8, rax
movzx eax, byte [rdi + 0x2a]
shl r8, 8
or r8, rax
movzx eax, byte [rsp + 0x42]
or rdx, rax
movzx eax, byte [rsp + 0x44]
or rcx, rax
add rdx, r13
add rcx, 0x1e
lea rax, [r8 + rdx]
add rax, rcx
mov qword [r9 + 0x10], rax
movzx ecx, byte [rdi + 0xb]
movzx eax, byte [rdi + 0xa]
shl ecx, 8
or ecx, eax
mov dword [r9 + 0x18], ecx
jmp 0x140004fc3
or r14d, 0xffffffff
mov rcx, rsi
call fcn.140012df0
mov eax, r14d
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.14000ac80
mov rbx, qword [rsp + 0xa8]
add rsp, 0x50
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret