Function at 0x140043440
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, 0x1b8
cmp qword [rcx + 0x10], 0
jne 0x140043d88
mov r15d, edx
mov r14, rcx
xorps xmm0, xmm0
movaps xmmword [rsp + 0x1a0], xmm0
movaps xmmword [rsp + 0x190], xmm0
movaps xmmword [rsp + 0x180], xmm0
lea rcx, [rsp + 0x180]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
movzx r12d, word [rsp + 0x180]
xor ecx, ecx
mov eax, 0x80000000
mov r8, rbx
cpuid
xchg rbx, r8
cmp eax, 0x80000004
mov byte [rsp + 0x27], r15b
mov qword [rsp + 0x148], r14
jb 0x140043657
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x30], r12
movzx eax, byte [0x141d43a20]
xor r12d, r12d
mov edx, 0x50
xor ecx, ecx
call fcn.14002f460
test rax, rax
je 0x140043dce
mov r8, rax
mov qword [rsp + 0x110], 5
mov qword [rsp + 0x118], rax
mov qword [rsp + 0x120], 0
mov ebx, 0x80000000
mov r13d, 0xc
mov edi, 0x80000000
mov r9d, dword [rsp + 0x28]
nop dword [rax]
cmp ebx, r9d
adc edi, 0
xor ecx, ecx
mov eax, ebx
mov rsi, rbx
cpuid
xchg rbx, rsi
mov ebp, ecx
mov r14d, edx
mov r15d, eax
cmp r12, qword [rsp + 0x110]
jne 0x14004355e
lea rcx, [rsp + 0x110]
call fcn.140042ff0
mov r9d, dword [rsp + 0x28]
mov r8, qword [rsp + 0x118]
inc r12
mov dword [r8 + r13 - 0xc], r15d
mov dword [r8 + r13 - 8], esi
mov dword [r8 + r13 - 4], ebp
mov dword [r8 + r13], r14d
mov qword [rsp + 0x120], r12
cmp ebx, r9d
jae 0x14004358c
add r13, 0x10
mov ebx, edi
cmp edi, r9d
jbe 0x140043520
movzx eax, byte [0x141d43a20]
mov edx, 0x30
xor ecx, ecx
call fcn.14002f460
test rax, rax
je 0x140043dce
mov rsi, rax
mov qword [rsp + 0x60], 0x30
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], 0
cmp r12, 3
movzx r15d, byte [rsp + 0x27]
jb 0x1400436a5
mov rdi, qword [rsp + 0x118]
shl r12, 4
add r12, rdi
mov edx, dword [rdi + 0x20]
lea rsi, [rsp + 0x60]
mov rcx, rsi
call fcn.140043dd0
mov edx, dword [rdi + 0x24]
mov rcx, rsi
call fcn.140043dd0
mov edx, dword [rdi + 0x28]
mov rcx, rsi
call fcn.140043dd0
add rdi, 0x2c
xor ebx, ebx
nop dword [rax]
mov edx, dword [rdi + rbx]
mov rcx, rsi
call fcn.140043dd0
cmp rbx, 0x20
je 0x14004366b
lea r14, [rdi + rbx]
add r14, 4
cmp r14, r12
je 0x14004366b
mov edx, dword [r14]
mov rcx, rsi
call fcn.140043dd0
mov edx, dword [r14 + 4]
mov rcx, rsi
call fcn.140043dd0
mov edx, dword [r14 + 8]
mov rcx, rsi
call fcn.140043dd0
add rbx, 0x10
jmp 0x140043610
mov eax, 1
mov qword [rsp + 0x28], rax
xor r13d, r13d
xor edi, edi
jmp 0x140043718
mov rsi, qword [rsp + 0x68]
mov rax, qword [rsp + 0x70]
test rax, rax
je 0x1400436a5
xor r8d, r8d
mov r12, qword [rsp + 0x30]
nop word cs:[rax + rax]
cmp byte [rsi + r8], 0
je 0x140043dc5
inc r8
cmp rax, r8
jne 0x140043690
jmp 0x1400436ac
xor eax, eax
mov r12, qword [rsp + 0x30]
mov r8, rax
lea rcx, [rsp + 0xb0]
mov rdx, rsi
call fcn.1400159c0
test byte [rsp + 0xb0], 1
je 0x140043848
mov eax, 1
mov qword [rsp + 0x28], rax
xor r13d, r13d
xor edi, edi
cmp qword [rsp + 0x60], 0
je 0x1400436f6
mov rcx, qword [0x141d439e8]
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp qword [rsp + 0x110], 0
je 0x140043718
mov r8, qword [rsp + 0x118]
mov rcx, qword [0x141d439e8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rsp + 0x160], rdi
xor eax, eax
xor ecx, ecx
mov rbp, rbx
cpuid
xchg rbx, rbp
mov esi, ecx
mov ebx, edx
movzx eax, byte [0x141d43a20]
mov edx, 0xc
xor ecx, ecx
call fcn.14002f460
test rax, rax
je 0x140043dce
mov qword [rsp + 0x60], 0xc
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], 0
lea rdi, [rsp + 0x60]
mov rcx, rdi
mov edx, ebp
call fcn.140043dd0
mov rcx, rdi
mov edx, ebx
call fcn.140043dd0
mov rcx, rdi
mov edx, esi
call fcn.140043dd0
mov rsi, qword [rsp + 0x68]
mov r8, qword [rsp + 0x70]
test r8, r8
je 0x1400437bc
xor eax, eax
nop word [rax + rax]
cmp byte [rsi + rax], 0
je 0x1400437b0
inc rax
cmp r8, rax
jne 0x1400437a0
jmp 0x1400437bc
cmp rax, r8
mov r8, rax
ja 0x140043dce
lea rcx, [rsp + 0xb0]
mov rdx, rsi
call fcn.1400159c0
test byte [rsp + 0xb0], 1
je 0x140043803
cmp r12w, 0xe
ja 0x14004388c
shl r12d, 3
lea rax, [0x141d36530]
mov rcx, qword [r12 + rax]
lea rax, [0x141d365a8]
mov rbx, qword [r12 + rax]
mov r12, rcx
jmp 0x140043899
mov r12, qword [rsp + 0xc0]
test r12, r12
js 0x140043dce
mov rbx, qword [rsp + 0xb8]
sete bpl
je 0x14004392b
movzx eax, byte [0x141d43a20]
xor ecx, ecx
mov rdx, r12
call fcn.14002f460
test rax, rax
je 0x140043dce
mov rdi, rax
jmp 0x140043930
mov rdi, qword [rsp + 0xc0]
test rdi, rdi
js 0x140043dce
mov rbx, qword [rsp + 0xb8]
je 0x140043d9c
movzx eax, byte [0x141d43a20]
xor ecx, ecx
mov rdx, rdi
call fcn.14002f460
test rax, rax
je 0x140043dce
mov rcx, rax
mov r13, rdi
jmp 0x140043da4
lea rbx, [0x141d36352]
mov r12d, 7
movzx eax, byte [0x141d43a20]
xor ecx, ecx
mov rdx, r12
call fcn.14002f460
test rax, rax
je 0x140043dce
mov rdi, rax
mov rcx, rax
mov rdx, rbx
mov r8, r12
call fcn.140055470
xor ebp, ebp
cmp qword [rsp + 0x60], 0
je 0x1400438e0
mov rcx, qword [0x141d439e8]
xor edx, edx
mov r8, rsi
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov esi, dword [rsp + 0x1a0]
test r15b, r15b
mov qword [rsp + 0x140], r13
je 0x140043906
lea rcx, [rsp + 0xf8]
mov rdx, rsi
call fcn.140043e80
jmp 0x140043967
test rsi, rsi
je 0x140043948
lea rdx, [rsi*8]
mov ecx, 8
call fcn.14002f460
test rax, rax
je 0x140043dce
mov rcx, rsi
jmp 0x14004394f
mov edi, 1
mov rcx, rdi
mov rdx, rbx
mov r8, r12
call fcn.140055470
cmp qword [rsp + 0x60], 0
jne 0x1400438ce
jmp 0x1400438e0
mov eax, 8
xor ecx, ecx
mov qword [rsp + 0xf8], rcx
mov qword [rsp + 0x100], rax
mov qword [rsp + 0x108], rsi
mov dword [rsp + 0x3c], ebp
mov qword [rsp + 0x58], rdi
inc rsi
imul rdx, rsi, 0x70
movzx eax, byte [0x141d43a20]
xor ecx, ecx
call fcn.14002f460
test rax, rax
je 0x140043dce
mov r13, rax
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], 0
mov rbx, qword [rsp + 0x108]
test rbx, rbx
je 0x140043c2d
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0x150], rax
shl rbx, 3
mov r15d, 0xd
xor ebp, ebp
mov qword [rsp + 0x158], r12
jmp 0x140043a5c
mov rax, qword [rsp + 0xa0]
mov qword [r13 + r15*8 - 0x28], rax
movaps xmm0, xmmword [rsp + 0x60]
movaps xmm1, xmmword [rsp + 0x70]
movaps xmm2, xmmword [rsp + 0x80]
movaps xmm3, xmmword [rsp + 0x90]
movups xmmword [r13 + r15*8 - 0x38], xmm3
movups xmmword [r13 + r15*8 - 0x48], xmm2
movups xmmword [r13 + r15*8 - 0x58], xmm1
movups xmmword [r13 + r15*8 - 0x68], xmm0
movabs rax, 0x8000000000000000
mov qword [r13 + r15*8 - 0x20], rax
mov dword [r13 + r15*8 - 8], 0
mov qword [r13 + r15*8], rsi
mov rbp, qword [rsp + 0x30]
mov qword [rsp + 0x50], rbp
add r15, 0xe
add rbx, 0xfffffffffffffff8
mov r12, qword [rsp + 0x158]
je 0x140043c2d
lea rax, [rbp + 1]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x168], rax
lea rax, [rsp + 0x168]
mov qword [rsp + 0x170], rax
lea rax, [0x140014680]
mov qword [rsp + 0x178], rax
lea rax, [0x141d36368]
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x118], 1
mov qword [rsp + 0x130], 0
lea rax, [rsp + 0x170]
mov qword [rsp + 0x120], rax
mov qword [rsp + 0x128], 1
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0x110]
call fcn.1400079e0
mov esi, 1
test r12, r12
je 0x140043b10
movzx eax, byte [0x141d43a20]
xor ecx, ecx
mov rdx, r12
call fcn.14002f460
test rax, rax
je 0x140043dce
mov rdi, rax
mov r14, r12
jmp 0x140043b18
xor r14d, r14d
mov edi, 1
mov rcx, rdi
mov rdx, qword [rsp + 0x58]
mov r8, r12
call fcn.140055470
mov qword [rsp + 0xc8], r14
mov qword [rsp + 0xd0], rdi
mov qword [rsp + 0xd8], r12
mov rdi, qword [rsp + 0x160]
test rdi, rdi
je 0x140043b80
movzx eax, byte [0x141d43a20]
xor ecx, ecx
mov rdx, rdi
call fcn.14002f460
test rax, rax
mov rdx, qword [rsp + 0x28]
je 0x140043dce
mov rsi, rax
mov r12, rdi
jmp 0x140043b88
xor r12d, r12d
mov rdx, qword [rsp + 0x28]
mov rcx, rsi
mov qword [rsp + 0x28], rdx
mov r8, rdi
call fcn.140055470
mov qword [rsp + 0xe0], r12
mov qword [rsp + 0xe8], rsi
mov qword [rsp + 0xf0], rdi
mov rax, qword [rsp + 0x150]
mov rsi, qword [rax + rbp*8]
movups xmm0, xmmword [rsp + 0xb0]
movups xmm1, xmmword [rsp + 0xc0]
movups xmm2, xmmword [rsp + 0xd0]
movaps xmmword [rsp + 0x60], xmm0
movaps xmmword [rsp + 0x70], xmm1
movaps xmmword [rsp + 0x80], xmm2
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0xe8]
mov qword [rsp + 0x98], rax
mov qword [rsp + 0xa0], rdi
cmp rbp, qword [rsp + 0x40]
jne 0x1400439e0
lea rcx, [rsp + 0x40]
call fcn.1400430a0
mov r13, qword [rsp + 0x48]
jmp 0x1400439e0
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0xc0], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0xb0], rax
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0xb8], rax
cmp qword [rsp + 0xf8], 0
je 0x140043c76
mov r8, qword [rsp + 0x100]
mov rcx, qword [0x141d439e8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp qword [rsp + 0x140], 0
movzx ebp, byte [rsp + 0x27]
mov r14, qword [rsp + 0x148]
mov r8, qword [rsp + 0x28]
je 0x140043ca2
mov rcx, qword [0x141d439e8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp byte [rsp + 0x3c], 0
jne 0x140043cbd
mov rcx, qword [0x141d439e8]
xor edx, edx
mov r8, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rsi, qword [r14 + 0x10]
test rsi, rsi
je 0x140043d53
mov rdi, qword [r14 + 8]
add rdi, 0x50
mov rbx, qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x140043ce9
add rdi, 0x70
dec rsi
je 0x140043d53
cmp qword [rdi - 0x50], 0
je 0x140043cff
mov r8, qword [rdi - 0x48]
mov rcx, qword [0x141d439e8]
xor edx, edx
call rbx
cmp qword [rdi - 0x38], 0
je 0x140043d15
mov r8, qword [rdi - 0x30]
mov rcx, qword [0x141d439e8]
xor edx, edx
call rbx
mov rax, qword [rdi - 8]
movabs rcx, 0x8000000000000000
cmp rax, rcx
je 0x140043d3b
test rax, rax
je 0x140043d3b
mov r8, qword [rdi]
mov rcx, qword [0x141d439e8]
xor edx, edx
call rbx
cmp qword [rdi - 0x20], 0
je 0x140043ce0
mov r8, qword [rdi - 0x18]
mov rcx, qword [0x141d439e8]
xor edx, edx
call rbx
jmp 0x140043ce0
cmp qword [r14], 0
je 0x140043d6c
mov r8, qword [r14 + 8]
mov rcx, qword [0x141d439e8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rax, qword [rsp + 0xc0]
mov qword [r14 + 0x10], rax
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [r14], xmm0
mov byte [r14 + 0x38], bpl
add rsp, 0x1b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 1
xor r13d, r13d
mov qword [rsp + 0x28], rcx
mov rdx, rbx
mov r8, rdi
call fcn.140055470
cmp qword [rsp + 0x60], 0
jne 0x1400436e4
jmp 0x1400436f6
cmp r8, rax
jbe 0x1400436af
ud2