Function at 0x1400aa6d0
Capabilities:
Get system information on windows

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xf0
mov edi, r9d
mov rsi, rdx
mov rbx, rcx
xor r14d, r14d
mov r13d, r14d
mov dword [rsp + 0x48], r14d
add rcx, 0x348
mov rax, qword [rcx]
mov r8d, dword [rcx + 0xc]
xor edx, edx
call qword [rax + VariantCopy]
lea rcx, [rbx + 0x10]
call fcn.1400aea40
lea rcx, [rsp + 0xc0]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rsp + 0xe0]
mov dword [rbx + 0x68], eax
mov qword [rbx + 0x6c], 0xffffffffffffffff
mov dword [rbx + 0x64], r14d
mov dword [rbx + 0x14], 4
mov r12d, r14d
mov r8, 0xffffffffffffffff
mov dword [rsp + 0x60], r12d
cmp r12d, edi
jge 0x1400aae88
movsxd r15, r12d
mov qword [rsp + 0xb8], r15
mov rsi, qword [rsi + r15*8]
mov rdi, r14
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], 0
mov ebx, r14d
cmp word [rsi], 0
je 0x1400aa7ac
mov rax, rsi
nop word [rax + rax]
inc ebx
lea rax, [rax + 2]
cmp word [rax], 0
jne 0x1400aa7a0
lea r14d, [rbx + 1]
test r14d, r14d
je 0x1400aa7e1
movsxd rcx, ebx
inc rcx
mov eax, 2
mul rcx
cmovo rax, r8
mov rcx, rax
call fcn.1400f6418
mov rdi, rax
mov qword [rsp + 0x50], rax
xor edx, edx
mov word [rax], dx
mov dword [rsp + 0x5c], r14d
mov rcx, rdi
sub rsi, rdi
nop word [rax + rax]
movzx eax, word [rsi + rcx]
mov word [rcx], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400aa7f0
mov dword [rsp + 0x58], ebx
test rdi, rdi
je 0x1400aaacb
mov rcx, rdi
call qword [sym.imp.USER32.dll_CharUpperW]
test rax, rax
jne 0x1400aaacb
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x78
jne 0x1400aaacb
xor r15d, r15d
mov r12d, r15d
mov qword [rsp + 0xa0], r15
mov qword [rsp + 0xa8], r15
mov esi, r15d
cmp word [rdi], r15w
je 0x1400aa85c
mov rax, rdi
inc esi
lea rax, [rax + 2]
cmp word [rax], r15w
jne 0x1400aa850
lea r14d, [rsi + 1]
test r14d, r14d
je 0x1400aa89d
movsxd rcx, esi
inc rcx
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1400f6418
mov r12, rax
mov qword [rsp + 0xa0], rax
mov word [rax], r15w
mov dword [rsp + 0xac], r14d
mov rcx, r12
mov rdx, rdi
sub rdx, r12
nop word [rax + rax]
movzx eax, word [rdx + rcx]
mov word [rcx], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400aa8b0
mov dword [rsp + 0xa8], esi
mov byte [rsp + 0x40], 0x5f
mov qword [rsp + 0x70], r15
mov r14d, r15d
mov qword [rsp + 0x78], r15
mov ecx, 4
call fcn.1400f6418
mov r15, rax
mov qword [rsp + 0x70], rax
mov byte [rax], r14b
mov dword [rsp + 0x7c], 4
or r13d, 2
mov dword [rsp + 0x4c], r13d
mov dword [rsp + 0x48], r13d
test esi, esi
je 0x1400aa98f
lea r14d, [rsi + rsi]
cmp r14d, 4
jl 0x1400aa946
movsxd rcx, r14d
inc rcx
call fcn.1400f6418
mov r13, rax
mov rcx, r15
call fcn.1400f5c2c
mov r15, r13
mov qword [rsp + 0x70], r13
mov byte [r13], 0
lea eax, [r14 + 1]
mov dword [rsp + 0x7c], eax
mov r13d, dword [rsp + 0x4c]
lea eax, [r14 + 1]
lea rcx, [rsp + 0xb0]
mov qword [rsp + 0x38], rcx
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], r15
mov r9d, esi
mov r8, r12
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
movsxd r14, eax
test eax, eax
je 0x1400aaea4
mov byte [r14 + r15], 0
mov dword [rsp + 0x78], r14d
and r13d, 0xfffffffd
or r13d, 1
mov dword [rsp + 0x48], r13d
mov rcx, r12
call fcn.1400f5c2c
mov rcx, r15
call qword [sym.imp.USER32.dll_CharUpperA]
nop
xor r12d, r12d
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x88], r12
lea ecx, [r12 + 8]
call fcn.1400f6418
mov rsi, rax
mov qword [rsp + 0x80], rax
mov word [rax], r12w
mov dword [rsp + 0x8c], 4
or r13d, 4
mov dword [rsp + 0x4c], r13d
mov dword [rsp + 0x48], r13d
test r14d, r14d
je 0x1400aaa86
lea r12d, [r14 + 1]
cmp r14d, 4
jl 0x1400aaa54
cmp r12d, 4
je 0x1400aaa54
movsxd rcx, r12d
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1400f6418
mov r13, rax
mov rcx, rsi
call fcn.1400f5c2c
mov rsi, r13
mov qword [rsp + 0x80], r13
xor eax, eax
mov word [r13], ax
mov dword [rsp + 0x8c], r12d
mov r13d, dword [rsp + 0x4c]
mov dword [rsp + 0x28], r12d
mov qword [rsp + 0x20], rsi
mov r9d, r14d
mov r8, r15
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd rcx, eax
test eax, eax
je 0x1400aaebe
xor edx, edx
mov word [rsi + rcx*2], dx
mov dword [rsp + 0x88], ecx
mov rdx, rsi
mov r8, rdi
nop dword [rax]
movzx eax, word [rdx]
lea rdx, [rdx + 2]
mov word [r8], ax
lea r8, [r8 + 2]
test ax, ax
jne 0x1400aaa90
and r13d, 0xfffffffb
mov dword [rsp + 0x48], r13d
mov rcx, rsi
call fcn.1400f5c2c
nop
mov rcx, r15
call fcn.1400f5c2c
mov r15, qword [rsp + 0xb8]
mov r12d, dword [rsp + 0x60]
test ebx, ebx
jne 0x1400aaae1
mov rcx, rdi
call fcn.1400f5c2c
mov eax, 0x80070057
jmp 0x1400aae91
lea rax, [r15 + r15*2]
mov rcx, qword [rsp + 0x140]
lea r8, [rcx + rax*8]
cmp word [rdi], 0x42
jne 0x1400aab73
cmp ebx, 1
jl 0x1400aab17
dec ebx
lea eax, [rbx + 1]
movsxd r8, eax
add r8, r8
lea rdx, [rdi + 2]
mov rcx, rdi
call fcn.1400f8070
mov dword [rsp + 0x58], ebx
xor r14d, r14d
mov dword [rsp + 0x9c], r14d
mov rdx, rdi
mov ecx, r14d
movzx eax, word [rdi]
cmp ax, 0x30
jb 0x1400aabb6
cmp ax, 0x39
ja 0x1400aab57
lea rcx, [rcx + rcx*4]
movzx eax, ax
lea rcx, [rcx - 0x18]
lea rcx, [rax + rcx*2]
add rdx, 2
movzx eax, word [rdx]
cmp ax, 0x30
jae 0x1400aab35
mov esi, 0xffffffff
cmp rcx, rsi
jbe 0x1400aabbb
mov rcx, rdi
call fcn.1400f5c2c
mov eax, 0x80070057
jmp 0x1400aae91
mov rcx, qword [rsp + 0x130]
add rcx, 0x10
mov rdx, rdi
call fcn.1400aeaa0
mov ebx, eax
mov rcx, rdi
call fcn.1400f5c2c
test ebx, ebx
je 0x1400aab9c
mov eax, ebx
jmp 0x1400aae91
xor r14d, r14d
inc r12d
mov edi, dword [rsp + 0x148]
mov rsi, qword [rsp + 0x138]
jmp 0x1400aa754
mov esi, 0xffffffff
mov dword [rsp + 0x98], ecx
sub rdx, rdi
sar rdx, 1
test edx, edx
je 0x1400aab61
cmp edx, ebx
cmovg edx, ebx
test edx, edx
jle 0x1400aabf3
sub ebx, edx
lea eax, [rbx + 1]
movsxd r8, eax
add r8, r8
movsxd rax, edx
lea rdx, [rdi + rax*2]
mov rcx, rdi
call fcn.1400f8070
mov dword [rsp + 0x58], ebx
cmp word [rdi], 0x53
jne 0x1400aaca7
mov ecx, 1
cmp ebx, ecx
jge 0x1400aac0c
mov ecx, ebx
test ebx, ebx
jle 0x1400aac2a
sub ebx, ecx
lea eax, [rbx + 1]
movsxd r8, eax
add r8, r8
movsxd rax, ecx
lea rdx, [rdi + rax*2]
mov rcx, rdi
call fcn.1400f8070
mov dword [rsp + 0x58], ebx
mov rdx, rdi
mov rcx, r14
movzx eax, word [rdi]
cmp ax, 0x30
jb 0x1400aac6b
nop dword [rax]
cmp ax, 0x39
ja 0x1400aac62
lea rcx, [rcx + rcx*4]
movzx eax, ax
lea rcx, [rcx - 0x18]
lea rcx, [rax + rcx*2]
add rdx, 2
movzx eax, word [rdx]
cmp ax, 0x30
jae 0x1400aac40
cmp rcx, rsi
ja 0x1400aab61
mov dword [rsp + 0x9c], ecx
sub rdx, rdi
sar rdx, 1
test edx, edx
je 0x1400aab61
cmp edx, ebx
cmovg edx, ebx
test edx, edx
jle 0x1400aaca7
sub ebx, edx
lea eax, [rbx + 1]
movsxd r8, eax
add r8, r8
movsxd rax, edx
lea rdx, [rdi + rax*2]
mov rcx, rdi
call fcn.1400f8070
mov dword [rsp + 0x58], ebx
cmp word [rdi], 0x3a
jne 0x1400aab61
mov ecx, 1
cmp ebx, ecx
jge 0x1400aacc0
mov ecx, ebx
test ebx, ebx
jle 0x1400aacde
sub ebx, ecx
lea eax, [rbx + 1]
movsxd r8, eax
add r8, r8
movsxd rax, ecx
lea rdx, [rdi + rax*2]
mov rcx, rdi
call fcn.1400f8070
mov dword [rsp + 0x58], ebx
mov dword [rsp + 0x94], r14d
mov rdx, rdi
mov rcx, r14
movzx eax, word [rdi]
cmp ax, 0x30
jb 0x1400aad20
cmp ax, 0x39
ja 0x1400aad17
lea rcx, [rcx + rcx*4]
movzx eax, ax
lea rcx, [rcx - 0x18]
lea rcx, [rax + rcx*2]
add rdx, 2
movzx eax, word [rdx]
cmp ax, 0x30
jae 0x1400aacf5
cmp rcx, rsi
ja 0x1400aab61
mov dword [rsp + 0x90], ecx
sub rdx, rdi
sar rdx, 1
test edx, edx
je 0x1400aab61
cmp edx, ebx
cmovg edx, ebx
test edx, edx
jle 0x1400aad5c
sub ebx, edx
lea eax, [rbx + 1]
movsxd r8, eax
add r8, r8
movsxd rax, edx
lea rdx, [rdi + rax*2]
mov rcx, rdi
call fcn.1400f8070
mov dword [rsp + 0x58], ebx
cmp word [rdi], 0x53
jne 0x1400aae09
mov ecx, 1
cmp ebx, ecx
jge 0x1400aad75
mov ecx, ebx
test ebx, ebx
jle 0x1400aad93
sub ebx, ecx
lea eax, [rbx + 1]
movsxd r8, eax
add r8, r8
movsxd rax, ecx
lea rdx, [rdi + rax*2]
mov rcx, rdi
call fcn.1400f8070
mov dword [rsp + 0x58], ebx
mov rdx, rdi
mov rcx, r14
movzx eax, word [rdi]
cmp ax, 0x30
jb 0x1400aadcd
cmp ax, 0x39
ja 0x1400aadc4
lea rcx, [rcx + rcx*4]
movzx eax, ax
lea rcx, [rcx - 0x18]
lea rcx, [rax + rcx*2]
add rdx, 2
movzx eax, word [rdx]
cmp ax, 0x30
jae 0x1400aada2
cmp rcx, rsi
ja 0x1400aab61
mov dword [rsp + 0x94], ecx
sub rdx, rdi
sar rdx, 1
test edx, edx
je 0x1400aab61
cmp edx, ebx
cmovg edx, ebx
test edx, edx
jle 0x1400aae09
sub ebx, edx
lea eax, [rbx + 1]
movsxd r8, eax
add r8, r8
movsxd rax, edx
lea rdx, [rdi + rax*2]
mov rcx, rdi
call fcn.1400f8070
mov dword [rsp + 0x58], ebx
test ebx, ebx
jne 0x1400aab61
mov rbx, qword [rsp + 0x130]
add rbx, 0x348
mov ecx, dword [rbx + 8]
cmp dword [rbx + 0xc], ecx
jne 0x1400aae4f
cmp ecx, 0x40
jl 0x1400aae34
mov eax, ecx
shr eax, 2
jmp 0x1400aae44
mov eax, 1
cmp ecx, 8
mov edx, 8
cmovge eax, edx
lea edx, [rax + rcx]
mov rcx, rbx
call fcn.140096390
movsxd rcx, dword [rbx + 0xc]
add rcx, rcx
mov rax, qword [rbx + 0x10]
movups xmm0, xmmword [rsp + 0x90]
movups xmmword [rax + rcx*8], xmm0
inc dword [rbx + 0xc]
mov rcx, rdi
call fcn.1400f5c2c
inc r12d
mov edi, dword [rsp + 0x148]
mov rsi, qword [rsp + 0x138]
jmp 0x1400aa754
xor eax, eax
jmp 0x1400aae91
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov dword [rsp + 0x64], 0x44e75
lea rdx, [0x14016d900]
lea rcx, [rsp + 0x64]
call fcn.1400f7f94
nop
mov dword [rsp + 0x68], 0x44e74
lea rdx, [0x14016d900]
lea rcx, [rsp + 0x68]
call fcn.1400f7f94
int3