Function at 0x1400371e0
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, 0x118
movaps xmmword [rsp + 0x100], xmm6
mov r15, r9
mov rsi, r8
mov r12d, edx
mov ebx, ecx
mov rax, qword [0x14015e028]
xor rax, rsp
mov qword [rsp + 0xf8], rax
movabs r14, 0x7fffffffffffffef
mov qword [rsp + 0x58], 0xffffffffffffffff
test r8, r8
je 0x140037249
mov edx, 0x100
mov rcx, rsi
call fcn.1400b5944
cmp rax, 0x100
je 0x140037827
cmp byte [0x140167208], 0
je 0x14003781a
or r12d, 1
cmp byte [0x140167209], 1
mov ebp, 1
adc ebp, 0
test ebx, ebx
cmovne ebp, ebx
xorps xmm0, xmm0
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xa0], xmm0
movaps xmmword [rsp + 0x90], xmm0
movaps xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0x58], 0xffffffffffffffff
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
test rsi, rsi
je 0x140037440
lea rdi, [rsp + 0x60]
mov rcx, rdi
mov rdx, rsi
call fcn.14006c920
movzx eax, byte [rdi + 0x17]
test al, al
js 0x1400375ff
mov rcx, rax
add rcx, rcx
test rcx, rcx
je 0x1400372f1
lea rdx, [rcx - 2]
cmp word [rdi + rcx - 2], 0x5c
mov rcx, rdx
je 0x1400372d3
cmp rdx, 0xfffffffffffffffe
jne 0x1400377d6
test al, al
js 0x14003760e
mov word [rsp + 0x60], 0
mov byte [rsp + 0x77], 0
movzx eax, byte [rsp + 0x77]
test al, al
jns 0x140037313
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x140037440
mov eax, 0x300
mov ecx, r12d
and ecx, eax
cmp ecx, eax
je 0x140037440
cmp ebp, 2
lea rax, [0x140167460]
lea rcx, [0x140167660]
cmove rcx, rax
cmp word [rcx], 0
jne 0x140037440
xorps xmm0, xmm0
lea rsi, [rsp + 0xc0]
movaps xmmword [rsi + 0x20], xmm0
movaps xmmword [rsi + 0x10], xmm0
movaps xmmword [rsi], xmm0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
cmp word [rsi], 0
je 0x140037440
cmp byte [0x140167450], 0
setne al
bt r12d, 8
jb 0x140037440
mov ecx, r12d
shr ecx, 9
and ecx, 1
or cl, al
je 0x140037440
mov dword [rsp + 0x44], r12d
cmp ebp, 2
lea rax, str.SOFTWAREClasses
lea rbx, str.SOFTWARE
cmove rbx, rax
movzx r12d, byte [rsp + 0x77]
test r12b, r12b
mov qword [rsp + 0x38], r15
jns 0x140037bbd
mov rsi, qword [rsp + 0x60]
mov r12, qword [rsp + 0x68]
mov r13d, 1
xor r15d, r15d
xor eax, eax
mov qword [rsp + 0x50], rax
xor eax, eax
mov qword [rsp + 0x48], rax
mov dword [rsp + 0x34], 0
mov rdi, qword [rbx + 8]
mov r14, r12
sub r14, rdi
jb 0x140037415
mov rdx, qword [rbx]
mov rcx, rsi
mov r8, rdi
call fcn.1400b1184
test eax, eax
je 0x140037a33
add rbx, 0x28
inc r15
cmp r15, r13
jb 0x1400373f3
cmp dword [rsp + 0x34], 0
movabs r14, 0x7fffffffffffffef
mov r15, qword [rsp + 0x38]
mov r12d, dword [rsp + 0x44]
jne 0x140037bc7
cmp ebp, 2
jne 0x140037453
cmp word [0x140167460], 0
jne 0x140037a7e
cmp ebp, 1
jne 0x140037466
cmp word [0x140167660], 0
jne 0x140037b08
cmp ebp, 2
lea rax, [0x140167870]
lea rbx, str.RegistryMachine_
cmove rbx, rax
mov rcx, rbx
call fcn.1400b5818
cmp rax, r14
ja 0x140037bb0
mov rsi, rax
cmp rax, 0xb
jae 0x1400375b4
mov byte [rsp + 0xd7], sil
lea rdi, [rsp + 0xc0]
test rsi, rsi
je 0x1400374c4
cmp rsi, 3
jne 0x1400375e9
movzx eax, word [rbx + 4]
mov word [rdi + 4], ax
mov eax, dword [rbx]
mov dword [rdi], eax
mov word [rdi + rsi*2], 0
lea rdi, [rsp + 0xc0]
movzx r9d, byte [rdi + 0x17]
test r9b, r9b
cmovs r9, qword [rdi + 8]
mov r8, qword [rdi]
cmovns r8, rdi
lea rsi, [rsp + 0x60]
mov rcx, rsi
xor edx, edx
call fcn.14006c520
cmp byte [rdi + 0x17], 0
jns 0x140037508
mov rcx, qword [rsp + 0xc0]
call fcn.14009c364
cmp byte [rsp + 0x77], 0
jns 0x140037514
mov rsi, qword [rsp + 0x60]
lea rdi, [rsp + 0xb0]
mov rcx, rdi
mov rdx, rsi
call qword [0x140167220]
lea r8, [rsp + 0x80]
mov dword [r8], 0x30
mov qword [r8 + 8], 0
mov dword [r8 + 0x18], 0x40
mov qword [r8 + 0x10], rdi
xorps xmm0, xmm0
movaps xmmword [r8 + 0x20], xmm0
lea rcx, [rsp + 0x58]
mov edx, r12d
xor r9d, r9d
call qword [0x140167228]
test eax, eax
setns sil
cmp byte [rsp + 0x77], 0
jns 0x14003757b
mov rcx, qword [rsp + 0x60]
call fcn.14009c364
test sil, sil
jne 0x140037626
xor esi, esi
mov rcx, qword [rsp + 0xf8]
xor rcx, rsp
call fcn.14009d180
mov eax, esi
movaps xmm6, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rbp, [rsi + 8]
and rbp, 0xfffffffffffffff8
mov rcx, rbp
add rcx, rbp
call fcn.14009c328
mov rdi, rax
mov qword [rsp + 0xc0], rax
lea rax, [r14 + 0x11]
or rax, rbp
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xc8], rsi
mov r8, rsi
add r8, rsi
mov rcx, rdi
mov rdx, rbx
call fcn.14009f630
jmp 0x1400374c4
mov rdi, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
jmp 0x1400372d0
mov rax, qword [rsp + 0x60]
mov word [rax], 0
mov qword [rsp + 0x68], 0
jmp 0x140037305
mov r12, qword [rsp + 0x58]
xorps xmm6, xmm6
movaps xmmword [rsp + 0xc0], xmm6
mov qword [rsp + 0xd0], 0
mov dword [rsp + 0xb0], 0
cmp byte [0x140167208], 0
je 0x140037c05
lea rcx, [rsp + 0x80]
movaps xmmword [rcx], xmm6
mov rdx, r15
call qword [0x140167220]
lea rax, [rsp + 0x60]
mov dword [rax], 0x18
mov ecx, 0x18
call fcn.14009c328
mov r13, rax
lea r15, [rax + 0x18]
movups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov eax, 0x18
mov ebp, 4
add r14, 0x10
mov rdi, r15
mov esi, eax
mov rbx, rdi
sub rbx, r13
cmp rbx, rsi
jb 0x140037707
lea rax, [rsi + r13]
cmp rbx, rsi
cmova rdi, rax
mov eax, dword [rsp + 0x60]
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], eax
mov rcx, r12
lea rdx, [rsp + 0x80]
mov r8d, 1
mov r9, r13
call qword [0x140167230]
cmp eax, 0x80000005
je 0x1400376f8
cmp eax, 0xc0000023
jne 0x14003774a
sub ebp, 1
jb 0x14003782e
mov eax, dword [rsp + 0x60]
jmp 0x1400376a6
mov qword [rsp + 0x38], r12
mov r12, r14
mov r14, rsi
sub r14, rbx
mov rax, r15
sub rax, rdi
cmp rax, r14
jb 0x14003797d
test r14, r14
je 0x14003773d
lea rsi, [rdi + r14]
mov rcx, rdi
xor edx, edx
mov r8, r14
call fcn.14009fa40
mov rdi, rsi
mov r14, r12
mov r12, qword [rsp + 0x38]
jmp 0x1400376be
test eax, eax
js 0x14003782e
mov eax, dword [r13 + 4]
mov dword [rsp + 0xb0], eax
mov r8d, dword [r13 + 0xc]
test r8, r8
je 0x140037968
mov edx, dword [r13 + 8]
add rdx, r13
add r8, rdx
lea rcx, [rsp + 0xc0]
call fcn.140020880
mov sil, 1
test r13, r13
je 0x140037791
mov rcx, r13
call fcn.14009c364
test sil, sil
jne 0x140037c19
xor esi, esi
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
jne 0x140037c58
test sil, sil
jne 0x140037c6a
mov rsi, qword [rsp + 0x58]
cmp byte [0x140167208], 0
je 0x140037c8e
mov rcx, rsi
call qword [0x140167210]
jmp 0x140037584
sar rdx, 1
inc rdx
lea rsi, [rsp + 0x60]
mov rcx, rsi
xor r8d, r8d
call fcn.14006d420
movzx eax, byte [rsi + 0x17]
test al, al
js 0x140037835
mov rcx, rax
mov r8, 0xffffffffffffffff
test rcx, rcx
je 0x140037847
add rcx, rcx
xor edx, edx
cmp word [rsi + rdx], 0x5c
jne 0x140037841
add rdx, 2
cmp rcx, rdx
jne 0x140037808
jmp 0x140037847
call fcn.140036eb0
test al, al
jne 0x140037256
xor esi, esi
jmp 0x14003757b
xor esi, esi
jmp 0x140037784
mov rsi, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
jmp 0x1400377f7
sar rdx, 1
mov r8, rdx
test al, al
jns 0x1400379fa
cmp r8, 0xffffffffffffffff
je 0x140037c98
lea rcx, [rsp + 0x60]
xor edx, edx
call fcn.14006d230
mov al, byte [rsp + 0x77]
test al, al
js 0x140037898
lea rcx, [rsp + 0x60]
movzx edx, al
test rdx, rdx
je 0x140037305
add rdx, rdx
xor edi, edi
cmp word [rcx + rdi], 0x5c
je 0x1400378a4
add rdi, 2
cmp rdx, rdi
jne 0x140037883
jmp 0x140037305
mov rcx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
jmp 0x140037875
cmp rdx, rdi
je 0x140037305
cmp rdi, 0xfffffffffffffffe
je 0x140037305
sar rdi, 1
lea rsi, [rsp + 0x60]
lea rdx, [rdi + 1]
test al, al
js 0x1400378f2
movzx ecx, word [rsp + rdi*2 + 0x62]
cmp cx, 0x5c
jne 0x140037909
movzx eax, al
cmp rax, rdi
jbe 0x140037a29
mov r8d, 1
mov rcx, rsi
call fcn.14006d230
mov al, byte [rsp + 0x77]
jmp 0x1400378bf
mov rax, qword [rsp + 0x60]
movzx ecx, word [rax + rdi*2 + 2]
cmp cx, 0x5c
jne 0x140037961
mov rax, qword [rsp + 0x68]
jmp 0x1400378d5
movzx ebx, al
mov rax, rsi
cmp rbx, rdx
jbe 0x140037305
add rdi, rdi
lea rdx, [rbx + rbx]
add rdx, 0xfffffffffffffffc
cmp cx, 0x5c
je 0x14003793d
cmp rdx, rdi
je 0x140037305
movzx ecx, word [rax + rdi + 4]
add rdi, 2
jmp 0x140037923
lea rax, [rbx + rbx]
add rax, 0xfffffffffffffffe
cmp rax, rdi
je 0x140037305
cmp rdi, 0xfffffffffffffffc
je 0x140037305
add rdi, 2
sar rdi, 1
jmp 0x1400378ec
mov rbx, qword [rsp + 0x68]
jmp 0x14003790f
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0xc8], rax
jmp 0x140037781
sub r15, r13
lea rax, [r15 + r15]
cmp rax, rsi
cmovb rax, rsi
movabs rcx, 0x3fffffffffffffff
cmp r15, rcx
mov r15, rax
cmovae r15, r12
test r15, r15
je 0x140037d94
mov rcx, r15
call fcn.14009c328
mov rdi, rax
lea rcx, [rdi + rbx]
xor edx, edx
mov r8, r14
call fcn.14009fa40
test rbx, rbx
mov r14, r12
mov r12, qword [rsp + 0x38]
jle 0x1400379dc
cmp rbx, 2
jne 0x140037a19
movzx eax, word [r13]
mov word [rdi], ax
add r15, rdi
add rsi, rdi
test r13, r13
je 0x1400379ef
mov rcx, r13
call fcn.14009c364
mov r13, rdi
mov rdi, rsi
jmp 0x1400376be
cmp r8, 0xffffffffffffffff
jne 0x140037859
lea rcx, [rsp + 0x60]
mov word [rcx], 0
mov byte [rcx + 0x17], 0
xor eax, eax
jmp 0x140037872
mov rcx, rdi
mov rdx, r13
mov r8, rbx
call fcn.14009f630
jmp 0x1400379dc
lea rcx, [rsp + 0x60]
call fcn.1400e86e0
movzx ecx, word [rsi + rdi*2]
cmp cx, 0x5c
je 0x140037a46
test cx, cx
jne 0x140037415
lea rax, [rsi + rdi*2]
mov edx, dword [rbx + 0x10]
mov dword [rsp + 0x34], edx
cmp edx, 1
je 0x140037d4a
cmp dword [rsp + 0x34], 2
jne 0x140037d5b
lea rdx, str.WOW6432Node
mov qword [rsp + 0x50], rdx
mov rdx, rax
mov qword [rsp + 0x48], rax
jmp 0x140037d5b
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xd0], rax
movaps xmm0, xmmword [0x1401399e0]
movaps xmmword [rsp + 0xc0], xmm0
lea rcx, [0x140167870]
call fcn.1400b5818
cmp rax, r14
ja 0x140037bb0
mov rsi, rax
mov rbp, r14
cmp rax, 0xb
jae 0x140037cb0
mov byte [rsp + 0xd7], sil
lea rbx, [rsp + 0xc0]
test rsi, rsi
je 0x140037af6
cmp rsi, 3
jne 0x140037ce3
movzx eax, word [0x140167874]
mov word [rbx + 4], ax
mov eax, dword [0x140167870]
mov dword [rbx], eax
mov word [rbx + rsi*2], 0
lea rdx, [0x140167460]
jmp 0x140037b89
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsp + 0xd0], rax
movaps xmm0, xmmword [0x1401399e0]
movaps xmmword [rsp + 0xc0], xmm0
lea rcx, [0x140167870]
call fcn.1400b5818
cmp rax, r14
ja 0x140037bb0
mov rsi, rax
mov rbp, r14
cmp rax, 0xb
jae 0x140037cfd
mov byte [rsp + 0xd7], sil
lea rbx, [rsp + 0xc0]
test rsi, rsi
je 0x140037b7c
cmp rsi, 3
jne 0x140037d30
movzx eax, word [0x140167874]
mov word [rbx + 4], ax
mov eax, dword [0x140167870]
mov dword [rbx], eax
mov word [rbx + rsi*2], 0
lea rdx, [0x140167660]
lea rsi, [rsp + 0xc0]
mov rcx, rsi
call fcn.140027450
lea rdx, [0x140140986]
mov rcx, rsi
call fcn.140027450
mov r14, rbp
jmp 0x1400374ca
lea rcx, [rsp + 0xc0]
call fcn.1400e86c0
lea rsi, [rsp + 0x60]
jmp 0x1400373d4
cmp byte [rsp + 0x77], 0
js 0x140037d8a
lea rax, [rsp + 0x60]
mov rdx, qword [rsp + 0x48]
sub rdx, rax
sar rdx, 1
lea rcx, [rsp + 0x60]
mov r8, qword [rsp + 0x50]
call fcn.140027420
movabs r14, 0x7fffffffffffffef
mov r12d, dword [rsp + 0x44]
jmp 0x140037440
call fcn.140036eb0
test al, al
jne 0x14003765a
xor esi, esi
jmp 0x140037791
mov eax, dword [rsp + 0xb0]
dec eax
cmp eax, 1
ja 0x14003779a
mov rsi, qword [rsp + 0x180]
lea rdi, [rsp + 0xc0]
mov rcx, rdi
xor edx, edx
call fcn.1400f5120
mov rdx, qword [rdi]
mov rcx, rsi
call fcn.14006c920
mov sil, 1
jmp 0x14003779c
mov qword [rsp + 0xc8], rcx
call fcn.14009c364
jmp 0x1400377ad
mov rsi, qword [rsp + 0x58]
cmp byte [0x140167208], 0
jne 0x140037c7d
call fcn.140036eb0
mov rcx, rsi
call qword [0x140167210]
mov sil, 1
jmp 0x140037586
call fcn.140036eb0
jmp 0x1400377c8
mov rax, qword [rsp + 0x60]
mov word [rax], 0
mov qword [rsp + 0x68], 0
jmp 0x140037865
lea rdi, [rsi + 8]
and rdi, 0xfffffffffffffff8
lea rcx, [rdi + rdi]
call fcn.14009c328
mov rbx, rax
mov qword [rsp + 0xc0], rax
lea rax, [rbp + 0x11]
or rax, rdi
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xc8], rsi
mov r8, rsi
add r8, rsi
lea rdx, [0x140167870]
mov rcx, rbx
call fcn.14009f630
jmp 0x140037af6
lea rdi, [rsi + 8]
and rdi, 0xfffffffffffffff8
lea rcx, [rdi + rdi]
call fcn.14009c328
mov rbx, rax
mov qword [rsp + 0xc0], rax
lea rax, [rbp + 0x11]
or rax, rdi
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xc8], rsi
mov r8, rsi
add r8, rsi
lea rdx, [0x140167870]
mov rcx, rbx
call fcn.14009f630
jmp 0x140037b7c
lea rdx, str.WOW6432Node_
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x48], rsi
cmp cx, 0x5c
jne 0x140037d74
lea rsi, [rax + 2]
dec r14
cmp word [rax + 2], 0x5c
mov rax, rsi
je 0x140037d61
jmp 0x140037d77
mov rsi, rax
mov r13, qword [rbx + 0x20]
mov rbx, qword [rbx + 0x18]
xor r15d, r15d
mov r12, r14
jmp 0x14003741c
mov rax, qword [rsp + 0x60]
jmp 0x140037bd7
xor edi, edi
jmp 0x1400379b3