Function at 0x140105a50
Capabilities:
Get system information on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x158
movaps xmmword [rsp + 0x140], xmm6
mov rsi, rcx
mov rax, qword [0x1401c1028]
xor rax, rsp
mov qword [rsp + 0x138], rax
mov qword [rsp + 0xe0], rdx
lea rcx, [rsp + 0xe0]
call fcn.140024910
mov rdi, qword [rsp + 0xe0]
mov rax, qword [0x1401d9330]
test rax, rax
je 0x140105aba
mov rcx, qword [0x1401d9338]
cmp rcx, rdi
jbe 0x140105aff
jmp 0x140105c53
movaps xmm0, xmmword [0x1401940a0]
movaps xmmword [rsp + 0x80], xmm0
movaps xmmword [rsp + 0x70], xmm0
movaps xmmword [rsp + 0x60], xmm0
lea rcx, [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x70]
mov qword [0x1401d9330], rax
mov qword [0x1401d9338], rcx
cmp rcx, rdi
ja 0x140105c53
cmp rax, rdi
jb 0x140105c53
mov qword [rsp + 0x60], 0
mov rdx, qword [rsp + 0xe0]
lea r8, [rsp + 0x60]
mov ecx, 4
call qword [sym.imp.KERNEL32.dll_GetModuleHandleExW]
test eax, eax
jne 0x140105b33
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rdi, qword [rsp + 0x60]
test rdi, rdi
je 0x140105c53
mov rbp, qword [sym.imp.KERNEL32.dll_GetLastError]
call rbp
mov ebx, eax
call fcn.1400763e0
mov r14, qword [sym.imp.KERNEL32.dll_SetLastError]
mov ecx, ebx
call r14
call fcn.1400763e0
call rbp
mov ebx, eax
call fcn.1400763e0
mov ecx, ebx
call r14
mov dword [rsp + 0x11b], 0
mov dword [rsp + 0x118], 0
movaps xmm6, xmmword [0x1401940a0]
movaps xmmword [rsp + 0x120], xmm6
mov dword [rsp + 0x114], 0xaaaaaaaa
mov qword [rsp + 0x108], 0
mov qword [rsp + 0x100], 0
lea rax, method.std::__Cr::locale::facet.virtual_0
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdi
lea rax, [rsp + 0x100]
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x60]
lea rdx, [rsp + 0x120]
lea r8, [rsp + 0x114]
lea r9, [rsp + 0x108]
call fcn.140085910
movabs r12, 0xaaaaaaaaaaaaaaaa
test al, al
je 0x140105c5b
xorps xmm0, xmm0
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
mov rdx, qword [rsp + 0x100]
mov rcx, qword [rsp + 0x108]
lea rbx, [rsp + 0x60]
mov r8, rbx
call fcn.140065290
test al, al
je 0x140105c79
movzx eax, byte [rsp + 0x77]
test al, al
js 0x140105c97
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0xb8], rax
jmp 0x140105cc5
xor r12d, r12d
jmp 0x14010615e
xor ebx, ebx
xor eax, eax
mov qword [rsp + 0x50], rax
xor r15d, r15d
xor r13d, r13d
xor r14d, r14d
xor eax, eax
mov qword [rsp + 0x48], rax
jmp 0x140105fd7
xor ebx, ebx
xor eax, eax
mov qword [rsp + 0x50], rax
xor r15d, r15d
xor r13d, r13d
xor r14d, r14d
xor eax, eax
mov qword [rsp + 0x48], rax
jmp 0x140105fc6
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xb8], rcx
test rcx, rcx
js 0x1401061a2
je 0x140105cc5
test rax, rax
je 0x1401061a5
lea r15, [rsp + 0xc0]
lea rdx, [rsp + 0xb0]
mov rcx, r15
call fcn.1400784a0
lea rdx, [rsp + 0xe0]
mov rcx, r15
call fcn.140079400
mov rbx, qword [rsp + 0xe0]
mov r14, qword [rsp + 0xe8]
mov eax, dword [rsp + 0xf0]
mov dword [rsp + 0x118], eax
mov eax, dword [rsp + 0xf3]
mov dword [rsp + 0x11b], eax
movzx eax, byte [rsp + 0xf7]
mov qword [rsp + 0x58], rax
mov byte [rsp + 0xf7], 0
mov word [rsp + 0xe0], 0
cmp byte [rsp + 0xd7], 0
jns 0x140105d4f
mov rcx, qword [rsp + 0xc0]
call fcn.14014b4e4
mov qword [rsp + 0xf0], r12
movaps xmmword [rsp + 0xe0], xmm6
lea r12, [rsp + 0xe0]
lea rdx, [rsp + 0x120]
mov rcx, r12
call fcn.1400af330
lea rax, [0x1401acca4]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], 3
movzx eax, byte [rsp + 0xf7]
test al, al
mov qword [rsp + 0x50], r14
js 0x140105db5
mov qword [rsp + 0x90], r12
mov qword [rsp + 0x98], rax
jmp 0x140105de9
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xe8]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rcx
test rcx, rcx
js 0x1401061a8
je 0x140105de9
test rax, rax
je 0x1401061ab
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0xa0]
lea r12, [rsp + 0xe0]
mov r8, r12
call fcn.140055130
mov edx, dword [rsp + 0x114]
mov rcx, r15
call fcn.140102e20
movzx r14d, byte [rsp + 0xd7]
test r14b, r14b
jns 0x140105e36
mov r14, qword [rsp + 0xc8]
mov r15, qword [rsp + 0xc0]
test r14, r14
je 0x140105e44
test r15, r15
je 0x14010619f
movzx eax, byte [rsp + 0xf7]
mov edx, 0xa
mov r13, rax
test al, al
jns 0x140105e75
movabs rdx, 0x7fffffffffffffff
and rdx, qword [rsp + 0xf0]
dec rdx
mov r13, qword [rsp + 0xe8]
mov rcx, rdx
sub rcx, r13
cmp rcx, r14
jae 0x140105eb1
lea r8, [r14 + r13]
sub r8, rdx
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x20], r13
mov qword [rsp + 0x28], 0
lea rcx, [rsp + 0xe0]
mov r9, r13
call fcn.140050a20
jmp 0x140105f0e
test r14, r14
je 0x140105f0e
test al, al
jns 0x140105ec2
mov r12, qword [rsp + 0xe0]
lea rcx, [r12 + r13*2]
cmp rcx, r15
ja 0x140105ed8
lea rax, [rcx + r14*2]
cmp rax, r15
ja 0x1401061b4
lea r8, [r14 + r14]
mov rdx, r15
call fcn.14014e420
add r13, r14
cmp byte [rsp + 0xf7], 0
js 0x140105eff
mov eax, r13d
and al, 0x7f
mov byte [rsp + 0xf7], al
jmp 0x140105f07
mov qword [rsp + 0xe8], r13
mov word [r12 + r13*2], 0
cmp byte [rsp + 0xd7], 0
jns 0x140105f25
mov rcx, qword [rsp + 0xc0]
call fcn.14014b4e4
movzx edx, byte [rsp + 0xf7]
test dl, dl
mov r15, qword [rsp + 0x58]
movabs r12, 0xaaaaaaaaaaaaaaaa
js 0x140105f4a
lea rcx, [rsp + 0xe0]
jmp 0x140105f6e
mov rdx, qword [rsp + 0xe8]
test rdx, rdx
js 0x1401061ae
mov rcx, qword [rsp + 0xe0]
je 0x140105f6e
test rcx, rcx
je 0x1401061b1
xorps xmm0, xmm0
movaps xmmword [rsp + 0xc0], xmm0
mov qword [rsp + 0xd0], 0
lea r8, [rsp + 0xc0]
call fcn.140064ce0
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x48], rax
mov r13, qword [rsp + 0xc8]
mov r14, qword [rsp + 0xd0]
cmp byte [rsp + 0xf7], 0
jns 0x140105fc6
mov rcx, qword [rsp + 0xe0]
call fcn.14014b4e4
cmp byte [rsp + 0x77], 0
jns 0x140105fd7
mov rcx, qword [rsp + 0x60]
call fcn.14014b4e4
mov qword [rsp + 0xf0], r12
movaps xmmword [rsp + 0xe0], xmm6
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
lea r8, [rsp + 0xe0]
mov rcx, rax
mov rdx, rdi
mov r9d, 0x18
call sub.KERNEL32.dll_K32GetModuleInformation
test eax, eax
je 0x1401060ca
mov qword [rsp + 0x58], r15
mov r15, rbx
mov ecx, 0x58
call fcn.14014b4a8
mov r12, rax
movaps xmm0, xmmword [rsp + 0xe0]
movaps xmmword [rsp + 0x60], xmm0
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x70], rax
call fcn.1400763e0
call rbp
mov ebx, eax
call fcn.1400763e0
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
lea rax, [0x1401965b0]
mov qword [r12], rax
mov qword [r12 + 8], 0
call fcn.1400763e0
call rbp
mov ebp, eax
cmp qword [r12 + 8], 0
je 0x140106088
call fcn.1400763e0
mov rcx, qword [r12 + 8]
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [r12 + 8], rdi
call fcn.1400763e0
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, qword [rsp + 0x70]
mov qword [r12 + 0x20], rax
movaps xmm0, xmmword [rsp + 0x60]
movups xmmword [r12 + 0x10], xmm0
test r14, r14
js 0x1401060d4
mov rax, qword [rsp + 0x48]
mov qword [r12 + 0x28], rax
mov qword [r12 + 0x30], r13
mov qword [r12 + 0x38], r14
jmp 0x1401060e6
xor r12d, r12d
test r14, r14
jns 0x140106146
jmp 0x14010613c
lea rcx, [r12 + 0x28]
mov rdx, qword [rsp + 0x48]
mov r8, r13
call fcn.14004fd5c
mov rbx, r15
mov r15, qword [rsp + 0x58]
test r15b, r15b
js 0x140106121
mov qword [r12 + 0x40], rbx
mov rax, qword [rsp + 0x50]
mov qword [r12 + 0x48], rax
mov eax, dword [rsp + 0x118]
mov ecx, dword [rsp + 0x11b]
mov dword [r12 + 0x50], eax
mov dword [r12 + 0x53], ecx
mov byte [r12 + 0x57], r15b
jmp 0x140106135
mov rcx, r12
add rcx, 0x40
mov rdx, rbx
mov r8, qword [rsp + 0x50]
call fcn.140050bae
xor edi, edi
test r14, r14
jns 0x140106146
mov rcx, qword [rsp + 0x48]
call fcn.14014b4e4
test r15b, r15b
js 0x140106190
test rdi, rdi
je 0x14010615e
call fcn.1400763e0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [rsi], r12
mov rcx, qword [rsp + 0x138]
xor rcx, rsp
call fcn.14014c9b0
mov rax, rsi
movaps xmm6, xmmword [rsp + 0x140]
add rsp, 0x158
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rbx
call fcn.14014b4e4
test rdi, rdi
jne 0x140106150
jmp 0x14010615e
int3
int3
int3
int3
int3
int3
int3
int3