Function at 0x180091650
Capabilities:
Get system information on windows
Parse pe header

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x6c0
mov rax, qword [0x180194480]
xor rax, rsp
mov qword [rsp + 0x6b0], rax
mov rbx, rdx
mov r14, rcx
mov qword [rsp + 0x48], rcx
xor edx, edx
mov r8d, 0x110
lea rcx, [rsp + 0x250]
call fcn.1800fd050
lea rdx, [rbx + 8]
cmp qword [rbx + 0x20], 7
jbe 0x1800916aa
mov rdx, qword [rdx]
mov dword [rsp + 0x20], 1
mov r9d, 0x40
mov r8d, 0x20
lea rcx, [rsp + 0x250]
call fcn.18008f1e0
mov rax, qword [rsp + 0x250]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x250], rax
mov rax, qword [rsp + 0x250]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x24c], edx
mov r8d, 0x40
lea rdx, [rsp + 0x530]
lea rcx, [rsp + 0x250]
call fcn.180092880
mov rax, qword [rsp + 0x250]
movsxd rcx, dword [rax + 4]
test byte [rsp + rcx + 0x260], 6
jne 0x1800920df
mov eax, 0x5a4d
cmp word [rsp + 0x530], ax
jne 0x1800920df
movsxd rdx, dword [rsp + 0x56c]
xor r8d, r8d
lea rcx, [rsp + 0x250]
call fcn.180092a70
mov r8d, 0x108
lea rdx, [rsp + 0x360]
lea rcx, [rsp + 0x250]
call fcn.180092880
mov rax, qword [rsp + 0x250]
movsxd rcx, dword [rax + 4]
test byte [rsp + rcx + 0x260], 6
jne 0x1800920b6
cmp dword [rsp + 0x360], 0x4550
jne 0x1800920b6
xorps xmm0, xmm0
movups xmmword [rsp + 0x4d8], xmm0
movups xmmword [rsp + 0x4e8], xmm0
movzx edx, word [rsp + 0x366]
lea r8, [rsp + 0x30]
lea rcx, [rsp + 0x4d8]
call fcn.18008f4f0
nop
movsxd rcx, dword [rsp + 0x56c]
movzx edx, word [rsp + 0x374]
add rcx, 0x18
add rdx, rcx
xor r8d, r8d
lea rcx, [rsp + 0x250]
call fcn.180092a70
mov rcx, qword [rsp + 0x4e8]
sub rcx, qword [rsp + 0x4e0]
movabs r13, 0x6666666666666667
mov rax, r13
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rbx, [rdx + rdx*4]
shl rbx, 3
xor edx, edx
lea rcx, [rsp + 0x4d8]
call fcn.18008fb50
mov r8, rbx
mov rdx, rax
lea rcx, [rsp + 0x250]
call fcn.180092880
mov rax, qword [rsp + 0x250]
movsxd rcx, dword [rax + 4]
test byte [rsp + rcx + 0x260], 6
jne 0x180091f23
lea rcx, [rsp + 0x570]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
xorps xmm0, xmm0
movups xmmword [rsp + 0x1e0], xmm0
movups xmmword [rsp + 0x1f0], xmm0
movups xmmword [rsp + 0x200], xmm0
xor esi, esi
mov r15d, 0xe0
mov r12d, 0xf0
movq rax, xmm0
nop dword [rax + rax]
mov r9d, 0x30
lea r8, [rsp + 0x1e0]
mov rdx, rax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_VirtualQueryEx]
test rax, rax
je 0x18009208d
mov ecx, dword [rsp + 0x574]
mov r8, qword [rsp + 0x1f8]
dec r8
add r8, rcx
xor edx, edx
mov rax, r8
div rcx
sub r8, rdx
mov qword [rsp + 0x1f8], r8
test dword [rsp + 0x200], 0x1000
je 0x180091ed9
cmp dword [rsp + 0x208], 0x1000000
jne 0x180091ed9
mov qword [rsp + 0x4b8], rsi
lea rax, [rsp + 0x4b8]
mov qword [rsp + 0x20], rax
mov r9d, 0x40
lea r8, [rsp + 0x210]
mov rdx, qword [rsp + 0x1e0]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x180091f4c
cmp qword [rsp + 0x4b8], 0x40
jne 0x180091f74
movzx eax, word [rsp + 0x530]
cmp word [rsp + 0x210], ax
je 0x18009197f
jmp 0x180091ed9
movsxd rdx, dword [rsp + 0x24c]
add rdx, qword [rsp + 0x1e0]
mov qword [rsp + 0x4c0], rsi
lea rax, [rsp + 0x4c0]
mov qword [rsp + 0x20], rax
mov r9d, 0x18
lea r8, [rsp + 0x5a0]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x180091f9c
cmp qword [rsp + 0x4c0], 0x18
jne 0x180091fc4
mov eax, dword [rsp + 0x360]
cmp dword [rsp + 0x5a0], eax
je 0x1800919e7
jmp 0x180091ed9
mov eax, dword [rsp + 0x368]
cmp dword [rsp + 0x5a8], eax
je 0x1800919fc
jmp 0x180091ed9
movzx ecx, word [rsp + 0x5b4]
cmp cx, word [rsp + 0x374]
je 0x180091a13
jmp 0x180091ed9
movzx eax, word [rsp + 0x366]
cmp word [rsp + 0x5a6], ax
je 0x180091a2a
jmp 0x180091ed9
cmp cx, r15w
jne 0x180091c23
movsxd rcx, dword [rsp + 0x24c]
mov rdx, qword [rsp + 0x1e0]
add rcx, 0x18
add rdx, rcx
mov qword [rsp + 0x4c8], rsi
lea rax, [rsp + 0x4c8]
mov qword [rsp + 0x20], rax
mov r9, r15
lea r8, [rsp + 0x5b8]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x180091fec
cmp qword [rsp + 0x4c8], r15
jne 0x180092014
mov eax, dword [rsp + 0x3b0]
cmp dword [rsp + 0x5f0], eax
je 0x180091a9f
jmp 0x180091ed9
mov eax, dword [rsp + 0x3b8]
cmp dword [rsp + 0x5f8], eax
je 0x180091ab4
jmp 0x180091ed9
xorps xmm0, xmm0
movups xmmword [rsp + 0x498], xmm0
movups xmmword [rsp + 0x4a8], xmm0
movzx edx, word [rsp + 0x366]
lea r8, [rsp + 0x31]
lea rcx, [rsp + 0x498]
call fcn.18008f4f0
nop
mov rcx, qword [rsp + 0x4a8]
sub rcx, qword [rsp + 0x4a0]
mov rax, r13
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rbx, [rdx + rdx*4]
shl rbx, 3
xor edx, edx
lea rcx, [rsp + 0x498]
call fcn.18008fb50
movsxd rdx, dword [rsp + 0x24c]
mov rcx, qword [rsp + 0x1e0]
add rcx, 0xf8
add rdx, rcx
mov r9, rbx
mov r8, rax
mov rcx, r14
call fcn.1800929d0
mov rcx, qword [rsp + 0x4a8]
sub rcx, qword [rsp + 0x4a0]
mov rax, r13
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdi, [rdx + rdx*4]
shl rdi, 3
xor edx, edx
lea rcx, [rsp + 0x4d8]
call fcn.18008fb50
mov rbx, rax
xor edx, edx
lea rcx, [rsp + 0x498]
call fcn.18008fb50
mov rcx, rax
mov r8, rdi
mov rdx, rbx
call fcn.1800fd490
nop
lea rcx, [rsp + 0x498]
test eax, eax
je 0x180091e8d
call fcn.180013d90
mov rcx, qword [rsp + 0x4a0]
test rcx, rcx
je 0x180091c03
mov rdx, qword [rsp + 0x4b0]
sub rdx, rcx
mov rax, r13
imul rdx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*4]
shl rdx, 3
call fcn.180002050
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x4a0], xmm0
mov qword [rsp + 0x4b0], rsi
mov rcx, qword [rsp + 0x498]
mov qword [rsp + 0x498], rsi
mov edx, 0x10
call fcn.180002050
nop
jmp 0x180091ed9
cmp cx, r12w
jne 0x180091eba
movsxd rcx, dword [rsp + 0x24c]
mov rdx, qword [rsp + 0x1e0]
add rcx, 0x18
add rdx, rcx
mov qword [rsp + 0x4d0], rsi
lea rax, [rsp + 0x4d0]
mov qword [rsp + 0x20], rax
mov r9, r12
lea r8, [rsp + 0x5b8]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReadProcessMemory]
test eax, eax
je 0x18009203c
cmp qword [rsp + 0x4d0], r12
jne 0x180092064
mov eax, dword [rsp + 0x3b0]
cmp dword [rsp + 0x5f0], eax
je 0x180091c98
jmp 0x180091ed9
mov eax, dword [rsp + 0x3b8]
cmp dword [rsp + 0x5f8], eax
je 0x180091cad
jmp 0x180091ed9
xorps xmm0, xmm0
movzx ebx, word [rsp + 0x366]
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x478], xmm1
movdqu xmmword [rsp + 0x488], xmm0
mov qword [rsp + 0x38], rsi
lea rax, [rsp + 0x470]
mov qword [rsp + 0x40], rax
mov ecx, 0x10
call fcn.18009ef20
mov qword [rsp + 0x38], rax
lea rcx, [rsp + 0x478]
mov qword [rax], rcx
mov qword [rax + 8], rsi
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x478], rax
test rbx, rbx
je 0x180091d4e
lea rax, [rbx + rbx*4]
lea rdi, [rax*8]
mov rcx, rdi
call fcn.180001a50
mov qword [rsp + 0x480], rax
lea rbx, [rdi + rax]
mov qword [rsp + 0x490], rbx
mov r8, rdi
xor edx, edx
mov rcx, rax
call fcn.1800fd050
mov qword [rsp + 0x488], rbx
jmp 0x180091d56
mov rbx, qword [rsp + 0x488]
mov qword [rsp + 0x38], rsi
sub rbx, qword [rsp + 0x480]
mov rax, r13
imul rbx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rbx, [rdx + rdx*4]
shl rbx, 3
xor edx, edx
lea rcx, [rsp + 0x478]
call fcn.18008fb50
movsxd rdx, dword [rsp + 0x24c]
mov rcx, qword [rsp + 0x1e0]
add rcx, 0x108
add rdx, rcx
mov r9, rbx
mov r8, rax
mov rcx, r14
call fcn.1800929d0
mov rcx, qword [rsp + 0x488]
sub rcx, qword [rsp + 0x480]
mov rax, r13
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdi, [rdx + rdx*4]
shl rdi, 3
xor edx, edx
lea rcx, [rsp + 0x4d8]
call fcn.18008fb50
mov rbx, rax
xor edx, edx
lea rcx, [rsp + 0x478]
call fcn.18008fb50
mov rcx, rax
mov r8, rdi
mov rdx, rbx
call fcn.1800fd490
nop
lea rcx, [rsp + 0x478]
test eax, eax
je 0x180091e8d
call fcn.180013d90
mov rcx, qword [rsp + 0x480]
test rcx, rcx
je 0x180091e70
mov rdx, qword [rsp + 0x490]
sub rdx, rcx
mov rax, r13
imul rdx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
lea rdx, [rdx + rdx*4]
shl rdx, 3
call fcn.180002050
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x480], xmm0
mov qword [rsp + 0x490], rsi
mov rcx, qword [rsp + 0x478]
mov qword [rsp + 0x478], rsi
mov edx, 0x10
call fcn.180002050
nop
jmp 0x180091ed9
call fcn.180056ac0
mov rbx, qword [rsp + 0x1e8]
lea rcx, [rsp + 0x4d8]
call fcn.180056ac0
nop
lea rcx, [rsp + 0x250]
call fcn.18008fc00
mov rax, rbx
jmp 0x180091ef6
jmp 0x180091ed9
mov rax, qword [rsp + 0x1e0]
add rax, qword [rsp + 0x1f8]
mov qword [rsp + 0x1e0], rax
jmp 0x1800918b0
mov rcx, qword [rsp + 0x6b0]
xor rcx, rsp
call fcn.18009f1a0
lea r11, [rsp + 0x6c0]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
lea rdx, str.Game_executable_is_corrupt__Truncated_section_header_.
lea rcx, [rsp + 0x120]
call fcn.18000fd80
lea rdx, [0x1801923c8]
lea rcx, [rsp + 0x120]
call fcn.1800a1670
nop
lea rdx, str.ReadProcessMemory_failure
lea rcx, [rsp + 0x138]
call fcn.18000fd80
lea rdx, [0x1801923c8]
lea rcx, [rsp + 0x138]
call fcn.1800a1670
lea rdx, str.ReadProcessMemory_read_size_does_not_match_requested_size
lea rcx, [rsp + 0x150]
call fcn.18000fd80
lea rdx, [0x1801923c8]
lea rcx, [rsp + 0x150]
call fcn.1800a1670
lea rdx, str.ReadProcessMemory_failure
lea rcx, [rsp + 0x168]
call fcn.18000fd80
lea rdx, [0x1801923c8]
lea rcx, [rsp + 0x168]
call fcn.1800a1670
lea rdx, str.ReadProcessMemory_read_size_does_not_match_requested_size
lea rcx, [rsp + 0x180]
call fcn.18000fd80
lea rdx, [0x1801923c8]
lea rcx, [rsp + 0x180]
call fcn.1800a1670
lea rdx, str.ReadProcessMemory_failure
lea rcx, [rsp + 0x198]
call fcn.18000fd80
lea rdx, [0x1801923c8]
lea rcx, [rsp + 0x198]
call fcn.1800a1670
lea rdx, str.ReadProcessMemory_read_size_does_not_match_requested_size
lea rcx, [rsp + 0x1b0]
call fcn.18000fd80
lea rdx, [0x1801923c8]
lea rcx, [rsp + 0x1b0]
call fcn.1800a1670
lea rdx, str.ReadProcessMemory_failure
lea rcx, [rsp + 0x1c8]
call fcn.18000fd80
lea rdx, [0x1801923c8]
lea rcx, [rsp + 0x1c8]
call fcn.1800a1670
lea rdx, str.ReadProcessMemory_read_size_does_not_match_requested_size
lea rcx, [rsp + 0xc0]
call fcn.18000fd80
lea rdx, [0x1801923c8]
lea rcx, [rsp + 0xc0]
call fcn.1800a1670
nop
lea rdx, str.corresponding_base_address_not_found
lea rcx, [rsp + 0xd8]
call fcn.18000fd80
lea rdx, [0x1801923c8]
lea rcx, [rsp + 0xd8]
call fcn.1800a1670
nop
lea rdx, str.Game_executable_is_corrupt__NT_header_.
lea rcx, [rsp + 0xf0]
call fcn.18000fd80
lea rdx, [0x1801923c8]
lea rcx, [rsp + 0xf0]
call fcn.1800a1670
int3
lea rdx, str.Game_executable_is_corrupt__DOS_header_.
lea rcx, [rsp + 0x108]
call fcn.18000fd80
lea rdx, [0x1801923c8]
lea rcx, [rsp + 0x108]
call fcn.1800a1670
int3