Function at 0x1400ad1c0
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.1400b1530
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 0x1400ad978
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 0x1400ad29c
mov rax, rsi
nop word [rax + rax]
inc ebx
lea rax, [rax + 2]
cmp word [rax], 0
jne 0x1400ad290
lea r14d, [rbx + 1]
test r14d, r14d
je 0x1400ad2d1
movsxd rcx, ebx
inc rcx
mov eax, 2
mul rcx
cmovo rax, r8
mov rcx, rax
call fcn.1400f8f68
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 0x1400ad2e0
mov dword [rsp + 0x58], ebx
test rdi, rdi
je 0x1400ad5bb
mov rcx, rdi
call qword [sym.imp.USER32.dll_CharUpperW]
test rax, rax
jne 0x1400ad5bb
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x78
jne 0x1400ad5bb
xor r15d, r15d
mov r12d, r15d
mov qword [rsp + 0xa0], r15
mov qword [rsp + 0xa8], r15
mov esi, r15d
cmp word [rdi], r15w
je 0x1400ad34c
mov rax, rdi
inc esi
lea rax, [rax + 2]
cmp word [rax], r15w
jne 0x1400ad340
lea r14d, [rsi + 1]
test r14d, r14d
je 0x1400ad38d
movsxd rcx, esi
inc rcx
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1400f8f68
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 0x1400ad3a0
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.1400f8f68
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 0x1400ad47f
lea r14d, [rsi + rsi]
cmp r14d, 4
jl 0x1400ad436
movsxd rcx, r14d
inc rcx
call fcn.1400f8f68
mov r13, rax
mov rcx, r15
call fcn.1400f877c
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 0x1400ad994
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.1400f877c
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.1400f8f68
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 0x1400ad576
lea r12d, [r14 + 1]
cmp r14d, 4
jl 0x1400ad544
cmp r12d, 4
je 0x1400ad544
movsxd rcx, r12d
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.1400f8f68
mov r13, rax
mov rcx, rsi
call fcn.1400f877c
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 0x1400ad9ae
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 0x1400ad580
and r13d, 0xfffffffb
mov dword [rsp + 0x48], r13d
mov rcx, rsi
call fcn.1400f877c
nop
mov rcx, r15
call fcn.1400f877c
mov r15, qword [rsp + 0xb8]
mov r12d, dword [rsp + 0x60]
test ebx, ebx
jne 0x1400ad5d1
mov rcx, rdi
call fcn.1400f877c
mov eax, 0x80070057
jmp 0x1400ad981
lea rax, [r15 + r15*2]
mov rcx, qword [rsp + 0x140]
lea r8, [rcx + rax*8]
cmp word [rdi], 0x42
jne 0x1400ad663
cmp ebx, 1
jl 0x1400ad607
dec ebx
lea eax, [rbx + 1]
movsxd r8, eax
add r8, r8
lea rdx, [rdi + 2]
mov rcx, rdi
call fcn.1400fabc0
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 0x1400ad6a6
cmp ax, 0x39
ja 0x1400ad647
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 0x1400ad625
mov esi, 0xffffffff
cmp rcx, rsi
jbe 0x1400ad6ab
mov rcx, rdi
call fcn.1400f877c
mov eax, 0x80070057
jmp 0x1400ad981
mov rcx, qword [rsp + 0x130]
add rcx, 0x10
mov rdx, rdi
call fcn.1400b1590
mov ebx, eax
mov rcx, rdi
call fcn.1400f877c
test ebx, ebx
je 0x1400ad68c
mov eax, ebx
jmp 0x1400ad981
xor r14d, r14d
inc r12d
mov edi, dword [rsp + 0x148]
mov rsi, qword [rsp + 0x138]
jmp 0x1400ad244
mov esi, 0xffffffff
mov dword [rsp + 0x98], ecx
sub rdx, rdi
sar rdx, 1
test edx, edx
je 0x1400ad651
cmp edx, ebx
cmovg edx, ebx
test edx, edx
jle 0x1400ad6e3
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.1400fabc0
mov dword [rsp + 0x58], ebx
cmp word [rdi], 0x53
jne 0x1400ad797
mov ecx, 1
cmp ebx, ecx
jge 0x1400ad6fc
mov ecx, ebx
test ebx, ebx
jle 0x1400ad71a
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.1400fabc0
mov dword [rsp + 0x58], ebx
mov rdx, rdi
mov rcx, r14
movzx eax, word [rdi]
cmp ax, 0x30
jb 0x1400ad75b
nop dword [rax]
cmp ax, 0x39
ja 0x1400ad752
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 0x1400ad730
cmp rcx, rsi
ja 0x1400ad651
mov dword [rsp + 0x9c], ecx
sub rdx, rdi
sar rdx, 1
test edx, edx
je 0x1400ad651
cmp edx, ebx
cmovg edx, ebx
test edx, edx
jle 0x1400ad797
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.1400fabc0
mov dword [rsp + 0x58], ebx
cmp word [rdi], 0x3a
jne 0x1400ad651
mov ecx, 1
cmp ebx, ecx
jge 0x1400ad7b0
mov ecx, ebx
test ebx, ebx
jle 0x1400ad7ce
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.1400fabc0
mov dword [rsp + 0x58], ebx
mov dword [rsp + 0x94], r14d
mov rdx, rdi
mov rcx, r14
movzx eax, word [rdi]
cmp ax, 0x30
jb 0x1400ad810
cmp ax, 0x39
ja 0x1400ad807
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 0x1400ad7e5
cmp rcx, rsi
ja 0x1400ad651
mov dword [rsp + 0x90], ecx
sub rdx, rdi
sar rdx, 1
test edx, edx
je 0x1400ad651
cmp edx, ebx
cmovg edx, ebx
test edx, edx
jle 0x1400ad84c
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.1400fabc0
mov dword [rsp + 0x58], ebx
cmp word [rdi], 0x53
jne 0x1400ad8f9
mov ecx, 1
cmp ebx, ecx
jge 0x1400ad865
mov ecx, ebx
test ebx, ebx
jle 0x1400ad883
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.1400fabc0
mov dword [rsp + 0x58], ebx
mov rdx, rdi
mov rcx, r14
movzx eax, word [rdi]
cmp ax, 0x30
jb 0x1400ad8bd
cmp ax, 0x39
ja 0x1400ad8b4
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 0x1400ad892
cmp rcx, rsi
ja 0x1400ad651
mov dword [rsp + 0x94], ecx
sub rdx, rdi
sar rdx, 1
test edx, edx
je 0x1400ad651
cmp edx, ebx
cmovg edx, ebx
test edx, edx
jle 0x1400ad8f9
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.1400fabc0
mov dword [rsp + 0x58], ebx
test ebx, ebx
jne 0x1400ad651
mov rbx, qword [rsp + 0x130]
add rbx, 0x348
mov ecx, dword [rbx + 8]
cmp dword [rbx + 0xc], ecx
jne 0x1400ad93f
cmp ecx, 0x40
jl 0x1400ad924
mov eax, ecx
shr eax, 2
jmp 0x1400ad934
mov eax, 1
cmp ecx, 8
mov edx, 8
cmovge eax, edx
lea edx, [rax + rcx]
mov rcx, rbx
call fcn.140098e80
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.1400f877c
inc r12d
mov edi, dword [rsp + 0x148]
mov rsi, qword [rsp + 0x138]
jmp 0x1400ad244
xor eax, eax
jmp 0x1400ad981
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, [0x140170b70]
lea rcx, [rsp + 0x64]
call fcn.1400faae4
nop
mov dword [rsp + 0x68], 0x44e74
lea rdx, [0x140170b70]
lea rcx, [rsp + 0x68]
call fcn.1400faae4
int3