Function at 0x18002d900
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x37a0]
mov eax, 0x38a0
call fcn.180037570
sub rsp, rax
mov rax, qword [0x180082618]
xor rax, rsp
mov qword [rbp + 0x3790], rax
mov edi, dword [rbp - 0x58]
mov rsi, r8
imul eax, edx, 0x22
mov r13, rcx
mov qword [rbp], r8
mov r15d, edx
mov dword [rsp + 0x44], edx
mov dword [rsp + 0x48], eax
cmp edx, eax
ja 0x18002deba
mov ebx, dword [rbp - 0x58]
xor edx, edx
mov r12, qword [rbp]
mov eax, r15d
mov ecx, dword [rsp + 0x48]
nop dword [rax]
cmp r15d, 0x573
ja 0x18002dbe3
je 0x18002db9a
cmp r15d, 0x132
ja 0x18002daee
je 0x18002dad2
mov eax, r15d
sub eax, 0x56
je 0x18002da60
sub eax, 0x10
je 0x18002d9fa
sub eax, 0x35
je 0x18002d9ba
cmp eax, 0x67
je 0x18002deba
jmp 0x18002dea9
xor edx, edx
lea rcx, str.HGSGyoshotai
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__open]
mov r8d, 5
mov rdx, rsi
mov ecx, eax
mov dword [rbp - 0x50], eax
mov r14d, eax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__read]
mov r8d, 0xc8
lea rdx, [rbp + 0x10]
mov ecx, r14d
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__read]
xor edx, edx
jmp 0x18002dea5
mov edx, 0xff
lea rcx, [rbp + 0xe0]
mov r8d, 0x36b0
lea r14, [rbp + 0xe0]
mov rsi, r13
call sub.VCRUNTIME140.dll_memset
mov edx, 0x46
mov ecx, 0xc0
movzx eax, byte [rsi]
cmp al, 0xf0
jbe 0x18002da34
cmp byte [rsi + 1], 0xf0
jb 0x18002da3c
cmp al, 0xf0
jae 0x18002da42
cmp byte [rsi + 1], 0xf0
jbe 0x18002da42
mov word [r14], 0
inc rsi
inc r14
sub rcx, 1
jne 0x18002da25
sub rdx, 1
jne 0x18002da20
mov rsi, qword [rbp]
jmp 0x18002dea5
mov edi, 0x16
cmp edi, 0x16
je 0x18002daa1
cmp edi, 0x9f
je 0x18002da91
cmp edi, 0x128
jne 0x18002dab5
test r12, r12
je 0x18002dac5
cmp ebx, 0x78
jae 0x18002dab5
mov ecx, 0x7530
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x18002dab3
xor eax, eax
lock cmpxchg qword [0x180082700], rdx
mov r12, rax
jmp 0x18002dab5
xor r8d, r8d
mov rdx, r13
lea ecx, [r8 + 0x2a]
call fcn.1800154c0
mov rbx, rax
xor edx, edx
add edi, 0x89
cmp edi, 0x1b1
jb 0x18002da65
jmp 0x18002da60
mov r15d, 0x56
mov edi, edx
jmp 0x18002dea5
mov r8d, 0x36b0
lea rdx, [rbp + 0xe0]
mov rcx, r13
call sub.VCRUNTIME140.dll_memcpy
xor edx, edx
jmp 0x18002dea5
cmp r15d, 0x1d1
je 0x18002db69
cmp r15d, 0x307
je 0x18002db32
cmp r15d, 0x43d
jne 0x18002dead
movzx ecx, byte [rsi]
mov eax, 0x51eb851f
and byte [rsp + 0x40], 0x7f
and byte [rsp + 0x41], 0x3f
mul ecx
shr edx, 3
imul eax, edx, 0x19
sub ecx, eax
mov byte [rsi], cl
xor edx, edx
jmp 0x18002dea5
mov ecx, dword [rbp - 0x50]
lea rdx, [rsp + 0x41]
mov r8d, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__read]
mov ecx, dword [rbp - 0x50]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__close]
mov edx, 0xff
mov r8d, 0x36b0
mov rcx, r13
call sub.VCRUNTIME140.dll_memset
xor edx, edx
jmp 0x18002dea5
mov ecx, dword [rbp - 0x50]
lea rdx, [0x180082f80]
mov r8d, 0x190
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__read]
mov ecx, dword [rbp - 0x50]
lea rdx, [rsp + 0x40]
mov r8d, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll__read]
xor edx, edx
jmp 0x18002dea5
movzx ecx, byte [rsi + 1]
mov eax, 0x51eb851f
mul ecx
shr edx, 3
imul eax, edx, 0x19
sub ecx, eax
mov eax, 0x51eb851f
mov byte [rsi + 1], cl
movzx ecx, byte [rsi + 2]
mul ecx
shr edx, 3
imul eax, edx, 0x19
sub ecx, eax
mov eax, 0x51eb851f
mov byte [rsi + 2], cl
movzx ecx, byte [rsi + 3]
mul ecx
shr edx, 3
imul eax, edx, 0x19
sub ecx, eax
mov byte [rsi + 3], cl
xor edx, edx
jmp 0x18002dea5
cmp r15d, 0xb81
ja 0x18002de2e
je 0x18002de0c
cmp r15d, 0x6a9
je 0x18002ddef
cmp r15d, 0x7df
je 0x18002dd4e
cmp r15d, 0x915
je 0x18002dc5b
cmp r15d, 0xa4b
jne 0x18002dead
mov r8, r13
mov edx, 0xe8
xor ecx, ecx
call fcn.180032c50
xor r8d, r8d
mov edx, 0xbd
mov rcx, r13
call fcn.180015730
xor r8d, r8d
mov rcx, r13
lea edx, [r8 + 0x66]
call fcn.18002d900
xor edx, edx
jmp 0x18002dea5
movzx eax, byte [rsp + 0x41]
lea r8, [rbp - 0x48]
mov byte [rsp + 0x50], al
lea rdx, [rbp + 0x10]
movzx eax, byte [rsp + 0x40]
lea rcx, [rbp - 0x40]
mov byte [rsp + 0x58], al
mov r9d, 0x17
mov eax, dword [rbp - 0x4c]
mov dword [rbp - 0x40], eax
movzx eax, byte [rsi + 2]
mov dword [rbp - 0x48], eax
lea rax, [rsp + 0x50]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
call fcn.1800080b0
mov ecx, eax
lea r8, [rbp - 0x38]
movzx eax, byte [rsp + 0x41]
lea rdx, [rbp + 0x10]
mov byte [rsp + 0x60], al
mov r9d, 0x17
movzx eax, byte [rsp + 0x40]
mov byte [rsp + 0x68], al
movzx eax, byte [rsi + 3]
mov dword [rbp - 0x38], eax
lea rax, [rsp + 0x60]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x68]
mov dword [rbp - 0x30], ecx
lea rcx, [rbp - 0x30]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
call fcn.1800080b0
movzx ecx, byte [rsp + 0x41]
lea r8, [rbp - 0x28]
mov byte [rsp + 0x70], cl
lea rdx, [rbp + 0x10]
movzx ecx, byte [rsp + 0x40]
mov r9d, 0x17
mov dword [rbp - 0x4c], eax
mov dword [rbp - 0x20], eax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x78]
mov byte [rsp + 0x78], cl
movzx ecx, byte [rsi + 4]
mov dword [rbp - 0x28], ecx
lea rcx, [rbp - 0x20]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
call fcn.1800080b0
xor edx, edx
jmp 0x18002dea5
movzx eax, byte [rsp + 0x41]
lea r8, [rbp - 0x18]
mov byte [rbp - 0x80], al
lea rdx, [rbp + 0x10]
movzx eax, byte [rsp + 0x40]
lea rcx, [rbp - 0x10]
mov byte [rbp - 0x78], al
mov r9d, 0x17
movzx eax, byte [rsi]
mov dword [rbp - 0x18], eax
lea rax, [rbp - 0x80]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x78]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
mov byte [rsi + 5], 0
mov dword [rbp - 0x10], 0x1e
call fcn.1800080b0
movzx ecx, byte [rsp + 0x41]
lea r8, [rbp - 8]
mov dword [rbp - 0x58], eax
lea rdx, [rbp + 0x10]
movzx eax, byte [rsi + 1]
mov r9d, 0x17
mov dword [rbp - 8], eax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x30], rax
lea rax, [rbp - 0x68]
mov byte [rbp - 0x70], cl
movzx ecx, byte [rsp + 0x40]
mov byte [rbp - 0x68], cl
lea rcx, [rbp - 0x58]
mov qword [rsp + 0x28], r13
mov qword [rsp + 0x20], rax
call fcn.1800080b0
mov dword [rbp - 0x4c], eax
xor edx, edx
jmp 0x18002dea5
movzx ecx, byte [rsi + 4]
mov eax, 0x51eb851f
mul ecx
shr edx, 3
imul eax, edx, 0x19
sub ecx, eax
mov byte [rsi + 4], cl
xor edx, edx
jmp 0x18002dea5
movzx eax, byte [rsp + 0x40]
lea rdx, [rbp - 0x60]
mov r9, r13
mov byte [rbp - 0x60], al
mov r8d, 0x11d
lea rcx, [rbp + 0x10]
call fcn.180008e80
xor edx, edx
jmp 0x18002dea5
cmp r15d, 0xcb7
je 0x18002de71
cmp r15d, 0xded
je 0x18002de5d
cmp r15d, 0xf23
jne 0x18002dead
movzx ecx, byte [rsi + 4]
mov rax, qword [str.PMA_engine_status_faulted.]
movzx ecx, byte [rcx + rax]
mov byte [rsi + 4], cl
jmp 0x18002dea5
movzx ecx, byte [rsi + 3]
mov rax, qword [str.PMA_engine_status_faulted.]
movzx ecx, byte [rcx + rax]
mov byte [rsi + 3], cl
jmp 0x18002dea5
mov rax, qword [str.PMA_engine_status_faulted.]
movzx ecx, byte [rsi]
movzx ecx, byte [rcx + rax]
mov byte [rsi], cl
mov rax, qword [str.PMA_engine_status_faulted.]
movzx ecx, byte [rsi + 1]
movzx ecx, byte [rcx + rax]
mov byte [rsi + 1], cl
movzx ecx, byte [rsi + 2]
mov rax, qword [str.PMA_engine_status_faulted.]
movzx ecx, byte [rcx + rax]
mov byte [rsi + 2], cl
mov ecx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x44]
lea r15d, [r15 + rax*2]
cmp r15d, ecx
jbe 0x18002d970
mov eax, edi
mov rcx, qword [rbp + 0x3790]
xor rcx, rsp
call fcn.1800375e0
mov rbx, qword [rsp + 0x38e8]
add rsp, 0x38a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret