Function at 0x18002e350
Capabilities:
Read file on windows

Disassembly:
mov r11, rsp
push rbx
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0xa8
mov rax, qword [0x1800c5010]
xor rax, rsp
mov qword [rsp + 0x98], rax
cmp byte [rcx + 0x18], 0
mov r8d, edx
mov eax, dword [rcx + 0x70]
mov rdi, rcx
movsxd r12, dword [rcx + 0x58]
mov rsi, qword [rcx + 0x50]
mov r14, qword [rcx + 0x68]
mov rbx, qword [rcx + 0x80]
mov r15, qword [rcx + 0x98]
mov dword [r11 - 0x70], r12d
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x40], eax
mov eax, dword [rcx + 0x88]
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x70], eax
mov eax, dword [rcx + 0xa0]
mov dword [rsp + 0x74], eax
mov dword [rsp + 0x48], edx
mov qword [rsp + 0x58], rcx
mov qword [r11 - 0x60], rsi
mov qword [r11 - 0x58], r14
mov qword [r11 - 0x50], rbx
mov qword [r11 - 0x48], r15
je 0x18002e3ee
mov eax, edx
and eax, 1
xor eax, dword [rcx + 0x20]
shr r8d, 1
mov dword [rsp + 0x48], r8d
mov dword [rcx + 0x24], eax
cmp dword [rcx + 0x14], r8d
je 0x18002e915
mov edx, dword [rcx + 0x40]
imul edx, dword [rcx + 0x30]
mov rcx, qword [rcx + 8]
mov eax, r8d
xor r8d, r8d
imul rdx, rax
call fcn.180052a0c
mov r8d, dword [rdi + 0x40]
mov edx, dword [rdi + 0x30]
mov r9, qword [rdi + 8]
mov rcx, qword [rdi + 0x38]
call fcn.180052204
mov ecx, dword [rdi + 0x1c]
add ecx, 0xfffffffb
mov qword [rsp + 0x60], rax
cmp ecx, 0x11
ja case.default.0x18002e45e
mov qword [rsp + 0xf0], rbp
lea rax, [0x180000000]
movsxd rcx, ecx
mov qword [rsp + 0xa0], r13
mov edx, dword [rax + rcx*4 + 0x2e938]
add rdx, rax
jmp rdx
mov rcx, qword [rdi + 0x5c]
movsxd r13, dword [rdi + 0x58]
mov rbp, rcx
mov r10, qword [rdi + 0x38]
mov edx, dword [rdi + 0x28]
shr rbp, 0x20
imul ebp, r13d
add rbp, r10
test edx, edx
jne 0x18002e582
test r10, r10
je case.0x18002e45e.11
test rbp, rbp
je case.0x18002e45e.11
test rsi, rsi
je case.0x18002e45e.11
test r14, r14
je case.0x18002e45e.11
test rbx, rbx
je case.0x18002e45e.11
cmp ecx, 2
jl case.0x18002e45e.11
mov r11, rcx
shr r11, 0x20
cmp r11d, 2
jl case.0x18002e45e.11
test r11d, r11d
jle 0x18002e50d
mov r15, r11
mov rdx, r10
test ecx, ecx
jle 0x18002e501
mov r9, rsi
mov r8d, ecx
sub r9, r10
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [rdx]
mov byte [r9 + rdx], al
lea rdx, [rdx + 1]
sub r8, 1
jne 0x18002e4f0
add r10, r13
add rsi, r12
sub r15, 1
jne 0x18002e4d4
sar r11d, 1
sar ecx, 1
test r11d, r11d
jle case.0x18002e45e.11
movsxd rsi, dword [rsp + 0x44]
movsxd r15, dword [rsp + 0x40]
movsxd r12, r13d
nop dword [rax + rax]
mov rdx, rbx
mov r8, rbp
test ecx, ecx
jle 0x18002e56e
mov r10, r14
mov r9d, ecx
sub r10, rbx
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8]
lea r8, [r8 + 2]
mov byte [rdx + r10], al
lea rdx, [rdx + 1]
movzx eax, byte [r8 - 1]
mov byte [rdx - 1], al
sub r9, 1
jne 0x18002e550
add rbp, r12
add r14, r15
add rbx, rsi
sub r11, 1
jne 0x18002e530
jmp case.0x18002e45e.11
lea eax, [rdx - 1]
cmp eax, 2
ja case.0x18002e45e.11
mov qword [rsp + 0x30], rcx
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], rax
mov r9d, r13d
lea rax, [rsp + 0x78]
mov r8, rbp
mov edx, r13d
mov qword [rsp + 0x20], rax
mov rcx, r10
call fcn.180037a10
jmp case.0x18002e45e.11
mov eax, dword [rdi + 0x28]
lea r9, [rsp + 0x68]
mov edx, dword [rdi + 0x58]
lea r8, [rsp + 0x78]
mov rcx, qword [rdi + 0x38]
add edx, edx
mov dword [rsp + 0x28], eax
mov rax, qword [rdi + 0x5c]
mov qword [rsp + 0x20], rax
call fcn.180037bf0
jmp case.0x18002e45e.11
mov rax, qword [rdi + 0x5c]
movsxd r11, dword [rdi + 0x58]
mov rbp, rax
mov r10, qword [rdi + 0x38]
mov edx, dword [rdi + 0x28]
shr rbp, 0x20
imul ebp, r11d
add rbp, r10
test edx, edx
jne 0x18002e702
test r10, r10
je case.0x18002e45e.11
test rbp, rbp
je case.0x18002e45e.11
test rsi, rsi
je case.0x18002e45e.11
test r14, r14
je case.0x18002e45e.11
test rbx, rbx
je case.0x18002e45e.11
cmp eax, 2
jl case.0x18002e45e.11
mov r13, rax
shr r13, 0x20
cmp r13d, 2
jl case.0x18002e45e.11
test r13d, r13d
jle 0x18002e691
mov r15, r11
mov r11, r13
mov rdx, r10
test eax, eax
jle 0x18002e682
mov r9, rsi
mov r8d, eax
sub r9, r10
movzx ecx, byte [rdx]
mov byte [rdx + r9], cl
lea rdx, [rdx + 1]
sub r8, 1
jne 0x18002e671
add rsi, r12
add r10, r15
sub r11, 1
jne 0x18002e661
mov r11d, r15d
sar eax, 1
test r13d, r13d
jle case.0x18002e45e.11
movsxd rsi, dword [rsp + 0x40]
movsxd r15, dword [rsp + 0x44]
movsxd r12, r11d
mov r11, r13
nop dword [rax]
mov rdx, r14
mov r8, rbp
test eax, eax
jle 0x18002e6ee
mov r10, rbx
mov r9d, eax
sub r10, r14
nop dword [rax]
nop word [rax + rax]
movzx ecx, byte [r8]
lea r8, [r8 + 2]
mov byte [rdx], cl
lea rdx, [rdx + 1]
movzx ecx, byte [r8 - 1]
mov byte [r10 + rdx - 1], cl
sub r9, 1
jne 0x18002e6d0
add rbp, r12
add rbx, r15
add r14, rsi
sub r11, 1
jne 0x18002e6b0
jmp case.0x18002e45e.11
cmp edx, 1
jne case.0x18002e45e.11
mov qword [rsp + 0x30], rax
mov r9d, r11d
lea rax, [rsp + 0x68]
mov r8, rbp
mov qword [rsp + 0x28], rax
mov edx, r11d
lea rax, [rsp + 0x78]
mov rcx, r10
mov qword [rsp + 0x20], rax
call fcn.180038020
jmp case.0x18002e45e.11
mov rax, qword [rdi + 0x50]
mov qword [rsp + 0x88], rax
mov rax, qword [rdi + 0x80]
mov r9d, dword [rdi + 0x58]
lea r8, [rsp + 0x78]
mov rcx, qword [rdi + 0x38]
mov qword [rsp + 0x78], rax
mov eax, dword [rdi + 0x28]
mov dword [rsp + 0x28], eax
lea edx, [r9*4]
mov rax, qword [rdi + 0x5c]
mov qword [rsp + 0x20], rax
call fcn.180038210
jmp case.0x18002e45e.11
mov rax, qword [rdi + 0x50]
mov qword [rsp + 0x80], rax
mov rax, qword [rdi + 0x68]
jmp 0x18002e74d
cmp dword [rdi + 0x28], 1
mov rax, qword [rdi + 0x5c]
mov qword [rsp + 0x50], rax
jne case.0x18002e45e.11
mov r11, qword [rdi + 0x38]
mov edx, dword [rdi + 0x58]
test r11, r11
je case.0x18002e45e.11
test rsi, rsi
je case.0x18002e45e.11
test r14, r14
je case.0x18002e45e.11
test rbx, rbx
je case.0x18002e45e.11
test r15, r15
je case.0x18002e45e.11
test edx, edx
je case.0x18002e45e.11
cmp eax, 2
jl case.0x18002e45e.11
mov rcx, rax
shr rcx, 0x20
cmp ecx, 2
jl case.0x18002e45e.11
sar edx, 1
test ecx, ecx
jle case.0x18002e45e.11
mov ebp, dword [rsp + 0x54]
sub r15, rbx
movsxd rcx, edx
sub r14, rbx
sub rsi, rbx
mov edi, 0x3ff
lea r12, [rcx*4]
lea r13, [rcx + rcx]
test eax, eax
jle 0x18002e880
mov r8, rbx
mov r10d, eax
mov r9, r11
nop dword [rax]
nop word [rax + rax]
mov edx, dword [r9]
lea r8, [r8 + 2]
mov ecx, edx
lea r9, [r9 + 4]
shr ecx, 0x1e
mov word [r15 + r8 - 2], cx
mov ecx, edx
shr ecx, 0x14
and cx, di
mov word [r8 - 2], cx
mov ecx, edx
shr ecx, 0xa
and dx, di
and cx, di
mov word [rsi + r8 - 2], cx
mov word [r14 + r8 - 2], dx
sub r10, 1
jne 0x18002e840
add r11, r12
add rbx, r13
sub rbp, 1
jne 0x18002e826
mov rdi, qword [rsp + 0x58]
mov rbp, qword [rsp + 0xf0]
mov r13, qword [rsp + 0xa0]
mov eax, dword [rdi + 0x28]
mov r9, qword [rdi + 0x5c]
mov r8d, dword [rdi + 0x58]
mov rdx, qword [rdi + 0x50]
mov ecx, dword [rdi + 0x2c]
mov dword [rsp + 0x20], eax
call fcn.180038470
mov r9d, dword [rdi + 0x28]
mov r8d, dword [rdi + 0x70]
mov rdx, qword [rdi + 0x68]
mov ecx, dword [rdi + 0x2c]
mov dword [rsp + 0x20], r9d
mov r9, qword [rdi + 0x74]
call fcn.180038470
mov r9d, dword [rdi + 0x28]
mov r8d, dword [rdi + 0x88]
mov rdx, qword [rdi + 0x80]
mov ecx, dword [rdi + 0x2c]
mov dword [rsp + 0x20], r9d
mov r9, qword [rdi + 0x8c]
call fcn.180038470
mov eax, dword [rdi + 0x40]
cmp qword [rsp + 0x60], rax
mov r9d, dword [rsp + 0x48]
setne al
mov dword [rdi + 0x14], r9d
jmp 0x18002e917
xor al, al
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.180039830
add rsp, 0xa8
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbx
ret