Function at 0x14001a000
Capabilities:
Read file on windows

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r15
mov rbp, rsp
sub rsp, 0x60
mov rbx, rdx
xor r8d, r8d
xor edx, edx
mov rsi, rcx
call fcn.1400fad50
mov edi, 1
lea rcx, [rbp + 0x48]
mov r9, rsi
mov r8d, edi
mov edx, edi
mov byte [rbp + 0x48], 0
mov byte [rbp + 0x40], 0
call fcn.1400fabdc
lea rcx, [rbp + 0x40]
mov r9, rsi
mov r8d, edi
mov edx, edi
call fcn.1400fabdc
movzx eax, byte [rbp + 0x48]
movzx ecx, byte [rbp + 0x40]
mov r15d, 0x100
imul cx, r15w
add cx, ax
mov eax, 0x4d42
cmp cx, ax
je 0x14001a07b
or eax, 0xffffffff
add rsp, 0x60
pop r15
pop rdi
pop rsi
pop rbx
pop rbp
ret
mov qword [rsp + 0x90], r12
mov qword [rsp + 0x58], r13
lea rdx, [rbp + 0x40]
mov qword [rsp + 0x50], r14
xor r14d, r14d
mov rcx, rsi
mov qword [rbx + 0x3c], r14
call fcn.14001b120
lea rcx, [rbp + 0x40]
mov r9, rsi
mov r8, rdi
mov rdx, rdi
mov byte [rbp + 0x40], r14b
mov byte [rbp + 0x48], r14b
call fcn.1400fabdc
lea rcx, [rbp + 0x48]
mov r9, rsi
mov r8, rdi
mov rdx, rdi
call fcn.1400fabdc
lea rcx, [rbp + 0x40]
mov r9, rsi
mov r8, rdi
mov rdx, rdi
mov byte [rbp + 0x40], r14b
mov byte [rbp + 0x48], r14b
call fcn.1400fabdc
lea rcx, [rbp + 0x48]
mov r9, rsi
mov r8, rdi
mov rdx, rdi
call fcn.1400fabdc
lea rdx, [rbp + 0x40]
mov rcx, rsi
call fcn.14001b120
lea rdx, [rbp - 0x2c]
mov rcx, rsi
call fcn.14001b120
cmp dword [rbp - 0x2c], 0xc
mov eax, dword [rbp + 0x40]
mov dword [rbx + 0x28], eax
jne 0x14001a24b
lea rcx, [rbp - 0x40]
mov r9, rsi
mov r8, rdi
mov rdx, rdi
mov byte [rbp - 0x40], r14b
mov byte [rbp - 0x3e], r14b
call fcn.1400fabdc
lea rcx, [rbp - 0x3e]
mov r9, rsi
mov r8, rdi
mov rdx, rdi
call fcn.1400fabdc
lea rcx, [rbp - 0x3d]
mov r9, rsi
mov r8, rdi
mov rdx, rdi
mov byte [rbp - 0x3d], r14b
mov byte [rbp - 0x3f], r14b
call fcn.1400fabdc
lea rcx, [rbp - 0x3f]
mov r9, rsi
mov r8, rdi
mov rdx, rdi
call fcn.1400fabdc
lea rcx, [rbp + 0x40]
mov r9, rsi
mov r8, rdi
mov rdx, rdi
mov byte [rbp + 0x40], r14b
mov byte [rbp + 0x48], r14b
call fcn.1400fabdc
lea rcx, [rbp + 0x48]
mov r9, rsi
mov r8, rdi
mov rdx, rdi
call fcn.1400fabdc
lea rcx, [rbp + 0x48]
mov r9, rsi
mov r8, rdi
mov rdx, rdi
mov byte [rbp + 0x48], r14b
mov byte [rbp + 0x40], r14b
call fcn.1400fabdc
lea rcx, [rbp + 0x40]
mov r9, rsi
mov r8, rdi
mov rdx, rdi
call fcn.1400fabdc
movzx eax, byte [rbp + 0x48]
movzx ecx, byte [rbp - 0x3e]
imul cx, r15w
movzx r8d, byte [rbp + 0x40]
imul r8w, r15w
add r8w, ax
movzx eax, byte [rbp - 0x40]
add cx, ax
movzx eax, byte [rbp - 0x3d]
movzx edx, cx
movzx ecx, byte [rbp - 0x3f]
mov dword [rbx], edx
imul cx, r15w
add cx, ax
movzx eax, cx
mov dword [rbx + 4], eax
test edx, edx
jns 0x14001a215
neg edx
mov dword [rbx], edx
test eax, eax
jns 0x14001a21e
neg eax
mov dword [rbx + 4], eax
movzx ecx, r8w
mov qword [rbx + 0x20], r14
mov dword [rbx + 0xc], r14d
mov dword [rbx + 8], ecx
cmp r8w, 8
ja 0x14001a240
shl edi, cl
xor eax, eax
mov dword [rbx + 0x18], edi
jmp 0x14001a45d
mov dword [rbx + 0x18], r14d
xor eax, eax
jmp 0x14001a45d
lea rdx, [rbp - 0x28]
mov rcx, rsi
mov dword [rbp - 0x30], r14d
mov dword [rbp - 0x3c], r14d
mov dword [rbp - 0x34], r14d
mov dword [rbp - 0x38], r14d
call fcn.14001b120
lea rdx, [rbp - 0x20]
mov rcx, rsi
call fcn.14001b120
lea rcx, [rbp + 0x40]
mov r9, rsi
mov r8, rdi
mov rdx, rdi
mov byte [rbp + 0x40], r14b
mov byte [rbp + 0x48], r14b
call fcn.1400fabdc
lea rcx, [rbp + 0x48]
mov r9, rsi
mov r8, rdi
mov rdx, rdi
call fcn.1400fabdc
lea rcx, [rbp + 0x48]
mov r9, rsi
mov r8, rdi
mov rdx, rdi
mov byte [rbp + 0x48], r14b
mov byte [rbp + 0x40], r14b
call fcn.1400fabdc
lea rcx, [rbp + 0x40]
mov r9, rsi
mov r8, rdi
mov rdx, rdi
call fcn.1400fabdc
movzx r12d, byte [rbp + 0x40]
movzx eax, byte [rbp + 0x48]
imul r12w, r15w
add r12w, ax
je 0x14001a45a
lea rdx, [rbp + 0x48]
mov rcx, rsi
call fcn.14001b120
lea rdx, [rbp + 0x40]
mov rcx, rsi
call fcn.14001b120
lea rdx, [rbp - 0x24]
mov rcx, rsi
call fcn.14001b120
lea rdx, [rbp - 0x1c]
mov rcx, rsi
call fcn.14001b120
lea rdx, [rbp + 0x40]
mov rcx, rsi
call fcn.14001b120
mov r15d, dword [rbp + 0x40]
lea eax, [r15 - 1]
mov dword [rbx + 0x1c], r15d
cmp eax, 0xff
jbe 0x14001a348
cmp r12w, 8
ja 0x14001a345
movzx ecx, r12b
mov r15d, edi
shl r15d, cl
jmp 0x14001a348
mov r15d, r14d
lea rdx, [rbp + 0x40]
mov rcx, rsi
call fcn.14001b120
mov r13d, dword [rbp + 0x48]
cmp r13d, 3
jne 0x14001a392
lea rdx, [rbp - 0x38]
mov rcx, rsi
call fcn.14001b120
lea rdx, [rbp - 0x34]
mov rcx, rsi
call fcn.14001b120
lea rdx, [rbp - 0x3c]
mov rcx, rsi
call fcn.14001b120
lea rdx, [rbp - 0x30]
mov rcx, rsi
call fcn.14001b120
mov r14d, dword [rbp - 0x30]
mov ecx, dword [rbp - 0x28]
mov eax, dword [rbp - 0x20]
mov dword [rbx], ecx
mov dword [rbx + 4], eax
test ecx, ecx
jns 0x14001a3a5
neg ecx
mov dword [rbx], ecx
test eax, eax
jns 0x14001a3b1
neg eax
mov dword [rbx + 0x3c], edi
mov dword [rbx + 4], eax
cmp dword [rbx], 0
jle 0x14001a45a
cmp dword [rbx + 4], 0
jle 0x14001a45a
test r12w, r12w
je 0x14001a45a
xorps xmm0, xmm0
movzx eax, r12w
mov dword [rbx + 0xc], edi
mov dword [rbx + 8], eax
mov eax, dword [rbp - 0x2c]
mov dword [rbx + 0x14], r13d
mov dword [rbx + 0x10], eax
mov eax, dword [rbp - 0x24]
mov dword [rbx + 0x18], r15d
mov dword [rbx + 0x38], r14d
cvtsi2ss xmm0, rax
divss xmm0, dword [0x1401833a0]
mulss xmm0, dword [0x14018334c]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x140183398]
cvttsd2si eax, xmm0
xorps xmm0, xmm0
mov dword [rbx + 0x20], eax
mov eax, dword [rbp - 0x1c]
cvtsi2ss xmm0, rax
divss xmm0, dword [0x1401833a0]
mulss xmm0, dword [0x14018334c]
cvtps2pd xmm0, xmm0
addsd xmm0, qword [0x140183398]
cvttsd2si eax, xmm0
mov dword [rbx + 0x24], eax
mov eax, dword [rbp - 0x3c]
mov dword [rbx + 0x2c], eax
mov eax, dword [rbp - 0x34]
mov dword [rbx + 0x30], eax
mov eax, dword [rbp - 0x38]
mov dword [rbx + 0x34], eax
xor eax, eax
jmp 0x14001a45d
or eax, 0xffffffff
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x90]
mov r14, qword [rsp + 0x50]
add rsp, 0x60
pop r15
pop rdi
pop rsi
pop rbx
pop rbp
ret