Function at 0x140045064
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, 0x1a8
cmp qword [rcx + 0x80], 0
jne 0x14004572c
mov ebx, edx
mov r14, rcx
xorps xmm0, xmm0
lea rcx, [rsp + 0x170]
movaps xmmword [rcx + 0x20], xmm0
movaps xmmword [rcx + 0x10], xmm0
movaps xmmword [rcx], xmm0
call sub.KERNEL32.dll_GetSystemInfo
xor esi, esi
mov eax, 0x80000000
xor ecx, ecx
mov r8, rbx
cpuid
xchg rbx, r8
cmp eax, 0x80000004
mov byte [rsp + 0x2f], bl
mov qword [rsp + 0x70], r14
jb 0x140045184
mov dword [rsp + 0x30], eax
mov ecx, 4
mov edx, 0x50
call fcn.14000c493
test rax, rax
je 0x14004574d
mov r8, rax
lea rax, [rsp + 0x40]
mov qword [rax], 5
mov qword [rax + 8], r8
mov eax, 0x80000000
sub edi, edi
xor r13d, r13d
mov r9d, dword [rsp + 0x30]
mov qword [rsp + 0x50], rdi
test r13b, 1
jne 0x1400451a1
cmp eax, r9d
ja 0x1400451a1
setae r13b
mov r14d, eax
adc r14d, 0
sub ecx, ecx
mov rbx, rbx
cpuid
xchg rbx, rbx
mov r15d, ecx
mov ebp, edx
mov r12d, eax
cmp rdi, qword [rsp + 0x40]
jne 0x140045160
lea rcx, [rsp + 0x40]
push rdi
pop rdx
nop
call fcn.1400407e7
mov r9d, dword [rsp + 0x30]
mov r8, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
shl rdi, 4
mov dword [r8 + rdi], r12d
mov dword [r8 + rdi + 4], ebx
mov dword [r8 + rdi + 8], r15d
mov dword [r8 + rdi + 0xc], ebp
mov rdi, qword [rsp + 0x50]
inc rdi
mov eax, r14d
jmp 0x140045108
mov eax, 1
mov qword [rsp + 0x38], rax
sub eax, eax
mov qword [rsp + 0x30], rax
sub eax, eax
mov qword [rsp + 0x58], rax
jmp 0x14004532e
xor r12d, r12d
mov ecx, 0x30
sub edx, edx
call fcn.14000e00d
lea rbx, [rsp + 0x98]
mov qword [rbx], rax
mov qword [rbx + 8], rdx
and qword [rbx + 0x10], 0
mov r15, qword [rsp + 0x48]
shl rdi, 4
add rdi, r15
mov eax, 2
mov r14d, 5
test r12b, 1
je 0x1400451f0
or r14, r14
je 0x140045251
cmp r15, rdi
je 0x140045251
dec r14
jmp 0x140045214
cmp r14, rax
jbe 0x140045251
push rdi
nop
pop rcx
sub rcx, r15
shr rcx, 4
cmp rcx, rax
jbe 0x140045251
mov rcx, rax
not rcx
add r14, rcx
shl rax, 4
add r15, rax
lea r13, [r15 + 0x10]
mov edx, dword [r15]
nop
push rbx
pop rcx
call fcn.14004575d
mov edx, dword [r15 + 4]
nop
push rbx
pop rcx
call fcn.14004575d
mov edx, dword [r15 + 8]
nop
push rbx
pop rcx
call fcn.14004575d
mov edx, dword [r15 + 0xc]
push rbx
pop rcx
nop
call fcn.14004575d
mov r12b, 1
mov r15, r13
sub eax, eax
jmp 0x1400451db
mov rdi, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xa8]
sub r8d, r8d
mov r14, qword [rsp + 0x70]
cmp rdx, r8
je 0x14004527a
cmp byte [rdi + r8], 0
je 0x14004527d
inc r8
jmp 0x140045269
mov r8, rdx
lea r9, str._home_torcrypt_.cargo_registry_src_index.crates.io_6f17d22bba15001f_sysinfo_0.29.11_src_windows_cpu.rsTotal_CPUIntel_x86MIPSRISC_AlphaPPCSHXARMIntel_Itanium_based_x64RISC_Alpha_x64MSIL_Intel_or_AMD__x64Intel_Itanium_based_x86unknownARM_x64
push rdi
nop
pop rcx
call fcn.1400457a2
mov r8, rdx
lea rbx, [rsp + 0x110]
mov rcx, rbx
nop
push rax
pop rdx
call fcn.140005500
cmp qword [rbx], 0
je 0x1400452c2
mov eax, 1
mov qword [rsp + 0x38], rax
xor eax, eax
mov qword [rsp + 0x30], rax
xor eax, eax
mov qword [rsp + 0x58], rax
jmp 0x140045301
mov rdi, qword [rsp + 0x118]
mov rbx, qword [rsp + 0x120]
push rbx
pop rcx
nop
xor edx, edx
call fcn.14000e00d
mov qword [rsp + 0x58], rax
push rdx
nop
pop rcx
mov qword [rsp + 0x38], rdx
nop
push rdi
pop rdx
mov qword [rsp + 0x30], rbx
mov r8, rbx
call sub.msvcrt.dll_memcpy
mov rdi, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x98]
nop
push rdi
pop rdx
call fcn.14000c812
mov r8, qword [rsp + 0x40]
test r8, r8
je 0x14004532e
shl r8, 4
mov rcx, qword [rsp + 0x48]
mov edx, 4
call fcn.14003b512
lea rax, [r14 + 0x70]
mov qword [rsp + 0xc8], rax
xor ecx, ecx
sub eax, eax
push rbx
nop
pop rdi
cpuid
xchg rbx, rdi
mov ebx, edx
mov ebp, ecx
mov ecx, 0xc
sub edx, edx
call fcn.14000e00d
lea r14, [rsp + 0x98]
mov qword [r14], rax
mov qword [r14 + 8], rdx
and qword [r14 + 0x10], 0
mov rcx, r14
mov edx, edi
call fcn.14004575d
mov rcx, r14
mov edx, ebx
call fcn.14004575d
mov rcx, r14
mov edx, ebp
call fcn.14004575d
mov rcx, qword [r14 + 8]
mov rdx, qword [r14 + 0x10]
mov bl, byte [rsp + 0x2f]
cmp rdx, rsi
je 0x1400453a4
cmp byte [rcx + rsi], 0
je 0x1400453a7
inc rsi
jmp 0x140045394
push rdx
nop
pop rsi
lea r9, str._home_torcrypt_.cargo_registry_src_index.crates.io_6f17d22bba15001f_sysinfo_0.29.11_src_windows_cpu.rsTotal_CPUIntel_x86MIPSRISC_AlphaPPCSHXARMIntel_Itanium_based_x64RISC_Alpha_x64MSIL_Intel_or_AMD__x64Intel_Itanium_based_x86unknownARM_x64
mov r8, rsi
call fcn.1400457a2
mov r8, rdx
lea rsi, [rsp + 0x110]
mov rcx, rsi
nop
push rax
pop rdx
call fcn.140005500
cmp qword [rsi], 0
je 0x1400453f9
movsx rax, word [rsp + 0x170]
cmp rax, 0xe
ja 0x14004540b
lea rcx, [0x1400b8c70]
mov rbp, qword [rcx + rax*8]
lea rcx, [0x1400b8ce8]
mov rsi, qword [rcx + rax*8]
jmp 0x140045417
mov rsi, qword [rsp + 0x118]
mov rbp, qword [rsp + 0x120]
jmp 0x140045417
lea rsi, [0x1400b85cd]
mov ebp, 7
mov rcx, rbp
sub edx, edx
call fcn.14000e00d
mov qword [rsp + 0x68], rax
push rdx
nop
pop rcx
mov qword [rsp + 0x60], rdx
nop
push rsi
pop rdx
mov r8, rbp
call sub.msvcrt.dll_memcpy
mov rcx, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa0]
call fcn.14000c812
mov esi, dword [rsp + 0x190]
test bl, bl
je 0x14004547b
lea rdi, [rsp + 0xd0]
push rdi
nop
pop rcx
push rsi
pop rdx
nop
call fcn.1400457c2
mov rax, qword [rdi + 8]
mov qword [rsp + 0x78], rax
mov rbx, qword [rdi + 0x10]
jmp 0x1400454a5
push rsi
nop
pop rcx
mov dl, 1
call fcn.1400402f1
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0xd8], rdx
mov qword [rsp + 0xe0], rsi
nop
push rsi
pop rbx
inc rsi
imul rdi, rsi, 0x70
mov ecx, 8
push rdi
nop
pop rdx
call fcn.14000c493
test rax, rax
je 0x140045740
mov r14, rax
lea rax, [rsp + 0x80]
mov qword [rax], rsi
mov qword [rax + 8], r14
and qword [rax + 0x10], 0
lea r12, [rsp + 0x128]
shl rbx, 3
xor esi, esi
mov r13d, 1
test rbx, rbx
je 0x14004565f
mov qword [rsp + 0xe8], r13
lea rax, str.CPU
mov qword [rsp + 0x98], rax
mov eax, 1
mov qword [rsp + 0xa0], rax
and qword [rsp + 0xb8], 0
lea rcx, [rsp + 0xe8]
mov qword [rsp + 0x40], rcx
lea rcx, [fcn.140003f70]
mov qword [rsp + 0x48], rcx
lea rdi, [rsp + 0x40]
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xb0], rax
lea rcx, [rsp + 0x158]
lea r15, [rsp + 0x98]
mov rdx, r15
call fcn.14003e378
push rdi
nop
pop rcx
mov rdx, qword [rsp + 0x60]
mov r8, rbp
call fcn.140003d90
mov rcx, r15
mov rdx, qword [rsp + 0x38]
mov r8, qword [rsp + 0x30]
call fcn.140003d90
mov rax, qword [rsp + 0x78]
mov r15, qword [rax + r13*8 - 8]
mov rax, qword [rsp + 0x168]
mov qword [rsp + 0x120], rax
movups xmm0, xmmword [rsp + 0x158]
movaps xmmword [rsp + 0x110], xmm0
mov rax, qword [rsp + 0x50]
mov qword [r12 + 0x10], rax
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [r12], xmm0
mov rax, qword [rsp + 0xa8]
mov qword [r12 + 0x28], rax
movups xmm0, xmmword [rsp + 0x98]
movups xmmword [r12 + 0x18], xmm0
cmp rsi, qword [rsp + 0x80]
jne 0x14004560e
lea rcx, [rsp + 0x80]
push rsi
nop
pop rdx
call fcn.140040734
mov r14, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x90]
imul rax, rsi, 0x70
lea rdi, [r14 + rax]
mov ecx, 9
lea rsi, [rsp + 0x110]
rep movsq qword [rdi], qword [rsi]
movabs rcx, 0x8000000000000000
mov qword [r14 + rax + 0x48], rcx
mov qword [r14 + rax + 0x60], r15
and dword [r14 + rax + 0x68], 0
mov rsi, qword [rsp + 0x90]
inc rsi
mov qword [rsp + 0x90], rsi
inc r13
add rbx, 0xfffffffffffffff8
jmp 0x1400454ed
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x100], rax
movups xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0xf0], xmm0
mov rcx, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0xd8]
call fcn.1400403db
mov rdi, qword [rsp + 0x70]
mov rsi, qword [rdi + 0x78]
mov rdx, qword [rdi + 0x80]
push rsi
pop rcx
nop
call fcn.140040947
mov rcx, qword [rdi + 0x70]
push rsi
nop
pop rdx
call fcn.140040acb
mov rax, qword [rsp + 0x100]
mov rcx, qword [rsp + 0xc8]
mov qword [rcx + 0x10], rax
movaps xmm0, xmmword [rsp + 0xf0]
movups xmmword [rcx], xmm0
mov rcx, qword [rdi + 0x18]
mov rdx, qword [rdi + 0x20]
call fcn.14000c812
mov rax, qword [rsp + 0x68]
mov qword [rdi + 0x18], rax
mov rax, qword [rsp + 0x60]
mov qword [rdi + 0x20], rax
mov qword [rdi + 0x28], rbp
mov rcx, qword [rdi + 0x30]
mov rdx, qword [rdi + 0x38]
call fcn.14000c812
mov rax, qword [rsp + 0x58]
mov qword [rdi + 0x30], rax
mov rax, qword [rsp + 0x38]
mov qword [rdi + 0x38], rax
mov rax, qword [rsp + 0x30]
mov qword [rdi + 0x40], rax
mov al, byte [rsp + 0x2f]
mov byte [rdi + 0x88], al
add rsp, 0x1a8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov ecx, 8
push rdi
pop rdx
nop
call fcn.1400032e0
mov ecx, 4
mov edx, 0x50
call fcn.1400032e0
int3