Function at 0x140022500
Capabilities:
Get system information on windows
Query or enumerate registry value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x118
vmovaps xmmword [rsp + 0x100], xmm6
mov rdi, r9
mov r14, r8
mov r13d, edx
mov esi, ecx
mov rax, qword [0x140113040]
xor rax, rsp
mov qword [rsp + 0xf8], rax
test r8, r8
je 0x140022557
mov edx, 0x100
mov rcx, r14
call fcn.140091de0
cmp rax, 0x100
je 0x140022bbe
mov qword [rsp + 0x50], rdi
cmp byte [0x140124bd4], 0
je 0x14002267f
xor ebp, ebp
cmp byte [0x140124bd5], 1
adc ebp, 1
test esi, esi
cmovne ebp, esi
movabs rbx, 0x7fffffffffffffff
vxorps xmm0, xmm0, xmm0
vmovaps xmmword [rsp + 0xb0], xmm0
vxorps xmm1, xmm1, xmm1
vmovups ymmword [rsp + 0x90], ymm1
vmovups ymmword [rsp + 0x80], ymm1
mov qword [rsp + 0x58], 0xffffffffffffffff
vmovaps xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
test r14, r14
mov dword [rsp + 0x30], r13d
je 0x140022891
lea r15, [rsp + 0x60]
mov rcx, r15
mov rdx, r14
vzeroupper
call fcn.140017ec0
mov cl, byte [r15 + 0x17]
test cl, cl
mov rax, qword [r15]
mov rdx, qword [r15 + 8]
movzx r12d, cl
mov r9, r12
cmovs r9, rdx
mov r14, r15
cmovs r14, rax
add r9, r9
test r9, r9
je 0x140022730
lea r8, [r9 - 2]
cmp word [r14 + r9 - 2], 0x5c
mov r9, r8
je 0x140022602
cmp r8, 0xfffffffffffffffe
je 0x140022730
sar r8, 1
lea r13, [r8 + 1]
test cl, cl
jns 0x1400226a8
cmp rdx, r8
jbe 0x140022691
mov qword [rsp + 0x68], r13
lea rax, [rax + r13*2]
mov word [rax], 0
mov cl, byte [rsp + 0x77]
test cl, cl
js 0x14002269a
movzx ecx, cl
lea rdx, [rsp + 0x60]
xor eax, eax
mov r8, 0xffffffffffffffff
test rcx, rcx
mov r13d, dword [rsp + 0x30]
je 0x1400226cf
add rcx, rcx
xor r9d, r9d
cmp word [rdx + r9], 0x5c
jne 0x1400226c9
add r9, 2
cmp rcx, r9
jne 0x14002266c
jmp 0x1400226cf
call fcn.1400235a0
test al, al
jne 0x140022569
jmp 0x140022bbe
sub r13, rdx
jne 0x1400232af
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
mov al, 1
jmp 0x140022655
cmp r8, r12
jae 0x14002329f
mov byte [rsp + 0x77], r13b
mov rax, r15
jmp 0x14002263a
cmp r8, 0xffffffffffffffff
jne 0x1400226dd
jmp 0x14002350c
sar r9, 1
mov r8, r9
test al, al
je 0x1400226be
cmp r8, 0xffffffffffffffff
je 0x140023517
lea rcx, [rsp + 0x60]
xor edx, edx
call fcn.140069e30
lea r14, [rsp + 0x60]
movzx eax, byte [r14 + 0x17]
test al, al
cmovs rax, qword [r14 + 8]
mov rcx, qword [r14]
cmovns rcx, r14
test rax, rax
je 0x140022755
add rax, rax
xor edi, edi
cmp word [rcx + rdi], 0x5c
je 0x14002271d
add rdi, 2
cmp rax, rdi
jne 0x14002270b
jmp 0x140022755
cmp rax, rdi
je 0x140022755
cmp rdi, 0xfffffffffffffffe
je 0x140022755
sar rdi, 1
jmp 0x1400231fe
test cl, cl
js 0x140022747
mov word [rsp + 0x60], 0
mov byte [rsp + 0x77], 0
xor eax, eax
movzx eax, al
jmp 0x140022762
mov word [rax], 0
mov qword [rsp + 0x68], 0
mov al, byte [rsp + 0x77]
test al, al
jns 0x140022742
mov rax, qword [rsp + 0x68]
test rax, rax
je 0x140022891
bt r13d, 8
jae 0x140022780
mov eax, r13d
and eax, 0x200
jne 0x140022891
cmp ebp, 2
lea rax, [0x140124be0]
lea rcx, [0x140124de0]
cmove rcx, rax
cmp word [rcx], 0
jne 0x140022891
vxorps xmm0, xmm0, xmm0
lea r14, [rsp + 0xc0]
vmovups ymmword [r14 + 0x10], ymm0
vmovups ymmword [r14], ymm0
mov rcx, r14
vzeroupper
call qword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
cmp word [r14], 0
je 0x140022891
cmp byte [0x1401251e0], 0
setne al
bt r13d, 8
jb 0x140022891
mov ecx, r13d
shr ecx, 9
and ecx, 1
or cl, al
je 0x140022891
cmp ebp, 2
lea rax, str.SOFTWAREClasses
lea rdi, str.SOFTWARE
cmove rdi, rax
movzx r15d, byte [rsp + 0x77]
test r15b, r15b
jns 0x1400233c8
mov rcx, qword [rsp + 0x60]
mov r15, qword [rsp + 0x68]
mov r8d, 1
xor r14d, r14d
xor eax, eax
mov qword [rsp + 0x48], rax
xor eax, eax
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x3c], 0
mov rbx, r8
mov r13, qword [rdi + 8]
mov r12, r15
sub r12, r13
jb 0x140022868
mov rdx, qword [rdi]
mov rsi, rcx
mov r8, r13
call fcn.140091d98
mov rcx, rsi
test eax, eax
je 0x1400233d2
add rdi, 0x28
inc r14
mov r8, rbx
cmp r14, r8
mov r13d, dword [rsp + 0x30]
movabs rbx, 0x7fffffffffffffff
jb 0x140022840
cmp dword [rsp + 0x3c], 0
jne 0x14002353e
cmp ebp, 2
jne 0x1400228a4
cmp word [0x140124be0], 0
jne 0x14002345d
cmp ebp, 1
jne 0x1400228b7
cmp word [0x140124de0], 0
jne 0x14002349c
cmp ebp, 2
lea rax, [0x140124fe0]
lea r15, str.RegistryMachine_
cmove r15, rax
mov rcx, r15
vzeroupper
call fcn.140091674
mov r14, rax
lea rax, [rbx - 8]
cmp r14, rax
ja 0x1400233bf
cmp r14, 0xb
jae 0x140022901
lea r12, [rsp + 0xc0]
mov byte [r12 + 0x17], r14b
test r14, r14
jne 0x14002294f
jmp 0x140022960
lea rax, [rbx - 3]
and rax, r14
add rax, 4
mov rsi, r14
or rsi, 3
cmp rsi, 0xb
cmove rsi, rax
inc rsi
js 0x1400233c5
lea rcx, [rsi + rsi]
call fcn.1400910bc
mov r12, rax
mov qword [rsp + 0xc0], rax
lea rax, [rbx + 1]
or rax, rsi
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xc8], r14
mov r8, r14
add r8, r14
mov rcx, r12
mov rdx, r15
call fcn.1400c2c60
mov word [r12 + r14*2], 0
lea r15, [rsp + 0xc0]
movzx edi, byte [r15 + 0x17]
test dil, dil
cmovs rdi, qword [r15 + 8]
cmovs r15, qword [r15]
movzx eax, byte [rsp + 0x77]
mov rcx, qword [rsp + 0x70]
and rcx, rbx
dec rcx
test al, al
mov r14, rax
cmovs r14, qword [rsp + 0x68]
mov esi, 0xa
cmovs rsi, rcx
mov rcx, rsi
sub rcx, r14
cmp rcx, rdi
jae 0x1400229de
lea rbp, [r14 + rdi]
mov rcx, rbp
sub rcx, rsi
mov rdx, rbx
sub rdx, rsi
add rdx, 0xfffffffffffffff7
cmp rdx, rcx
jb 0x1400233c2
test al, al
js 0x140022a5b
lea r12, [rsp + 0x60]
jmp 0x140022a60
test rdi, rdi
je 0x140022b2c
test al, al
js 0x1400229f2
lea r12, [rsp + 0x60]
jmp 0x1400229f7
mov r12, qword [rsp + 0x60]
test r14, r14
je 0x140022a29
lea rax, [r12 + r14*2]
xor ecx, ecx
cmp rax, r15
mov eax, 0
cmova rax, rdi
cmp r12, r15
cmova rax, rcx
lea r15, [r15 + rax*2]
lea rcx, [r12 + rdi*2]
lea r8, [r14 + r14]
mov rdx, r12
call fcn.1400c2c60
lea r8, [rdi + rdi]
mov rcx, r12
mov rdx, r15
call fcn.1400c2c60
add r14, rdi
cmp byte [rsp + 0x77], 0
js 0x140022a54
mov eax, r14d
and al, 0x7f
mov byte [rsp + 0x77], al
lea rax, [r12 + r14*2]
jmp 0x140022b27
mov qword [rsp + 0x68], r14
jmp 0x140022a4b
mov r12, qword [rsp + 0x60]
movabs rax, 0x3fffffffffffffff
add rax, 0xfffffffffffffff4
cmp rsi, rax
jae 0x140022aad
lea rax, [rsi + rsi]
cmp rbp, rax
cmova rax, rbp
mov ebx, 0xb
cmp rax, 0xb
jb 0x140022ab1
mov rcx, rax
and rcx, 0xfffffffffffffffc
add rcx, 4
or rax, 3
cmp rax, 0xb
cmove rax, rcx
inc rax
mov rbx, rax
jns 0x140022ab1
jmp 0x140023509
add rbx, 0xfffffffffffffff8
lea rcx, [rbx + rbx]
call fcn.1400910bc
mov r13, rax
lea r8, [rdi + rdi]
mov rcx, rax
mov rdx, r15
call fcn.1400c2c60
test r14, r14
je 0x140022aea
lea rcx, [rdi*2]
add rcx, r13
add r14, r14
mov rdx, r12
mov r8, r14
call fcn.1400c2c60
cmp rsi, 0xa
je 0x140022af8
mov rcx, r12
call fcn.1400910b4
mov qword [rsp + 0x60], r13
movabs rax, 0x7fffffffffffffff
inc rax
or rbx, rax
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x68], rbp
lea rax, [rbp*2]
add rax, r13
mov r13d, dword [rsp + 0x30]
mov word [rax], 0
cmp byte [rsp + 0xd7], 0
jns 0x140022b43
mov rcx, qword [rsp + 0xc0]
call fcn.1400910b4
or r13d, 1
cmp byte [rsp + 0x77], 0
jns 0x140022b55
mov rdx, qword [rsp + 0x60]
jmp 0x140022b5a
lea rdx, [rsp + 0x60]
lea r14, [rsp + 0xb0]
mov rcx, r14
call sub.ntdll.dll_RtlInitUnicodeString
lea r8, [rsp + 0x80]
mov dword [r8], 0x30
mov qword [r8 + 8], 0
mov dword [r8 + 0x18], 0x40
mov qword [r8 + 0x10], r14
vxorps xmm0, xmm0, xmm0
vmovaps xmmword [r8 + 0x20], xmm0
lea rcx, [rsp + 0x58]
mov edx, r13d
xor r9d, r9d
call sub.ntdll.dll_NtOpenKeyEx
mov ebx, eax
cmp byte [rsp + 0x77], 0
jns 0x140022bba
mov rcx, qword [rsp + 0x60]
call fcn.1400910b4
test ebx, ebx
jns 0x140022bef
xor ebx, ebx
mov rcx, qword [rsp + 0xf8]
xor rcx, rsp
call fcn.1400931d0
mov eax, ebx
vmovaps xmm6, xmmword [rsp + 0x100]
add rsp, 0x118
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov r13, qword [rsp + 0x58]
vxorps xmm6, xmm6, xmm6
vmovaps xmmword [rsp + 0xc0], xmm6
mov qword [rsp + 0xd0], 0
cmp byte [0x140124bd4], 0
jne 0x140022c26
call fcn.1400235a0
test al, al
jne 0x140022c26
xor ebx, ebx
jmp 0x140022fab
lea rbx, [rsp + 0x80]
vmovaps xmmword [rbx], xmm6
mov rcx, rbx
mov rdx, qword [rsp + 0x50]
call sub.ntdll.dll_RtlInitUnicodeString
mov esi, 0x18
lea rbp, [rsp + 0x60]
mov dword [rbp], esi
mov ecx, 0x18
call fcn.1400910bc
mov rdi, rax
vmovups xmmword [rax], xmm6
mov qword [rax + 0x10], 0
mov qword [rsp + 0x28], rbp
mov dword [rsp + 0x20], esi
mov rcx, r13
mov rdx, rbx
mov r8d, 1
mov r9, rax
call sub.ntdll.dll_NtQueryValueKey
cmp eax, 0xc0000023
je 0x140022c94
cmp eax, 0x80000005
jne 0x140022e61
mov esi, dword [rsp + 0x60]
cmp rsi, 0x18
jbe 0x140022cfb
lea rbx, [rsi - 0x18]
cmp rsi, 0x31
mov r14d, 0x30
cmovae r14, rsi
mov rcx, r14
call fcn.1400910bc
mov r12, rax
lea rcx, [rax + 0x18]
add r14, rax
mov r15, rsi
add r15, rax
xor edx, edx
mov r8, rbx
call fcn.1400c3300
vmovups xmm0, xmmword [rdi]
vmovups xmmword [r12], xmm0
mov rax, qword [rdi + 0x10]
mov qword [r12 + 0x10], rax
test rdi, rdi
je 0x140022cf6
mov rcx, rdi
call fcn.1400910b4
mov esi, dword [rsp + 0x60]
mov rdi, r12
jmp 0x140022d0c
lea r14, [rdi + 0x18]
mov r15, rsi
add r15, rdi
cmp esi, 0x18
cmove r15, r14
movabs rbx, 0x7fffffffffffffff
mov qword [rsp + 0x28], rbp
mov dword [rsp + 0x20], esi
lea rdx, [rsp + 0x80]
mov rcx, r13
mov r8d, 1
mov r9, rdi
call sub.ntdll.dll_NtQueryValueKey
cmp eax, 0xc0000023
je 0x140022d4a
cmp eax, 0x80000005
jne 0x140022e61
mov qword [rsp + 0x30], r13
mov r12d, dword [rsp + 0x60]
mov r13, r15
sub r13, rdi
mov rbp, r12
sub rbp, r13
jbe 0x140022fcb
mov rax, r14
sub rax, r15
cmp rax, rbp
jae 0x140022dfb
sub r14, rdi
lea rax, [r14 + r14]
cmp rax, r12
cmovbe rax, r12
movabs rcx, 0x3fffffffffffffff
cmp r14, rcx
mov r14, rax
cmovae r14, rbx
mov rcx, r14
call fcn.1400910bc
mov rbx, rax
lea rsi, [rax + r13]
mov rcx, rsi
xor edx, edx
mov r8, rbp
call fcn.1400c3300
cmp r15, rdi
je 0x140022dc9
mov rcx, rbx
mov rdx, rdi
mov r8, r13
call fcn.1400c2c60
mov rsi, rbx
mov r13, rsi
add r14, rbx
add r12, rbx
test rdi, rdi
mov rsi, qword [rsp + 0x30]
lea r15, [rsp + 0x60]
je 0x140022de9
mov rcx, rdi
call fcn.1400910b4
mov rdi, r13
movabs rbx, 0x7fffffffffffffff
jmp 0x140022fe3
lea r12, [r15 + rbp]
mov rcx, r15
xor edx, edx
mov r8, rbp
call fcn.1400c3300
jmp 0x140022fd9
mov bl, 1
jmp 0x140022f7e
mov rcx, rdi
call fcn.1400910b4
mov rdi, r12
mov eax, dword [rsp + 0x60]
mov qword [rsp + 0x28], rbp
mov dword [rsp + 0x20], eax
lea rdx, [rsp + 0x80]
mov rcx, rsi
mov r8d, 1
mov r9, rdi
call sub.ntdll.dll_NtQueryValueKey
mov bl, 1
cmp eax, 0x80000005
je 0x140022f7e
cmp eax, 0xc0000023
je 0x140022f7e
test eax, eax
js 0x140022e11
mov ebp, dword [rdi + 4]
mov ebx, dword [rdi + 0xc]
mov r14, qword [rsp + 0xc0]
test rbx, rbx
je 0x140022f6d
mov r15d, dword [rdi + 8]
add r15, rdi
mov rax, qword [rsp + 0xd0]
mov rcx, rax
sub rcx, r14
cmp rcx, rbx
jb 0x140022ef0
mov rsi, qword [rsp + 0xc8]
mov r8, rsi
sub r8, r14
cmp r8, rbx
jb 0x140022ebc
mov rcx, r14
mov rdx, r15
mov r8, rbx
call fcn.1400c2c60
jmp 0x140022f6a
add rbx, r15
lea r12, [r15 + r8]
cmp rsi, r14
je 0x1400231c8
mov rcx, r14
mov rdx, r15
call fcn.1400c2c60
sub rbx, r12
mov rcx, rsi
mov rdx, r12
mov r8, rbx
call fcn.1400c2c60
add rbx, rsi
mov r14, rbx
jmp 0x140022f6d
test r14, r14
je 0x140022f07
mov qword [rsp + 0xc8], r14
mov rcx, r14
call fcn.1400910b4
xor eax, eax
lea rcx, [rax + rax]
cmp rcx, rbx
cmovbe rcx, rbx
movabs rdx, 0x3fffffffffffffff
cmp rax, rdx
movabs rsi, 0x7fffffffffffffff
cmovb rsi, rcx
test rsi, rsi
js 0x140023593
mov rcx, rsi
call fcn.1400910bc
mov r14, rax
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rax
add rsi, rax
mov qword [rsp + 0xd0], rsi
mov rcx, rax
mov rdx, r15
mov r8, rbx
call fcn.1400c2c60
add r14, rbx
mov qword [rsp + 0xc8], r14
add ebp, 0xfffffffd
cmp ebp, 0xfffffffe
setb bl
test rdi, rdi
je 0x140022f8b
mov rcx, rdi
call fcn.1400910b4
test bl, bl
je 0x140023267
xor bl, 1
mov rsi, qword [rsp + 0xc0]
test rsi, rsi
je 0x140022fab
mov rcx, rsi
call fcn.1400910b4
mov rsi, qword [rsp + 0x58]
cmp byte [0x140124bd4], 0
jne 0x140022fbe
call fcn.1400235a0
mov rcx, rsi
call sub.ntdll.dll_NtClose
jmp 0x140022bc0
lea rax, [rdi + r12]
cmp r12, r13
cmovb r15, rax
mov r12, r15
mov rsi, qword [rsp + 0x30]
lea r15, [rsp + 0x60]
mov eax, dword [rsp + 0x60]
mov qword [rsp + 0x28], r15
mov dword [rsp + 0x20], eax
lea rdx, [rsp + 0x80]
mov rcx, rsi
mov r8d, 1
mov r9, rdi
call sub.ntdll.dll_NtQueryValueKey
cmp eax, 0xc0000023
je 0x14002301b
cmp eax, 0x80000005
jne 0x140022e61
mov r15d, dword [rsp + 0x60]
mov r13, r12
sub r13, rdi
mov rbp, r15
sub rbp, r13
jbe 0x1400230db
mov rax, r14
sub rax, r12
cmp rax, rbp
jb 0x140023053
lea r15, [r12 + rbp]
mov rcx, r12
xor edx, edx
mov r8, rbp
call fcn.1400c3300
jmp 0x1400230e9
sub r14, rdi
lea rax, [r14 + r14]
cmp rax, r15
cmovbe rax, r15
movabs rcx, 0x3fffffffffffffff
cmp r14, rcx
mov r14, rax
cmovae r14, rbx
mov rcx, r14
call fcn.1400910bc
mov rsi, rax
add r13, rax
mov rcx, r13
xor edx, edx
mov r8, rbp
call fcn.1400c3300
mov rdx, rsi
cmp r12, rdi
mov rsi, qword [rsp + 0x30]
lea rbp, [rsp + 0x60]
je 0x1400230c3
mov rax, rdi
not rax
add rax, r12
add rax, rdx
mov cl, byte [r12 - 1]
dec r12
mov byte [rax], cl
dec rax
cmp r12, rdi
jne 0x1400230ae
mov r13, rdx
add r14, rdx
add r15, rdx
test rdi, rdi
je 0x1400230d6
mov rcx, rdi
call fcn.1400910b4
mov rdi, r13
jmp 0x1400230f3
lea rax, [rdi + r15]
cmp r15, r13
cmovb r12, rax
mov r15, r12
mov rsi, qword [rsp + 0x30]
lea rbp, [rsp + 0x60]
mov eax, dword [rsp + 0x60]
mov qword [rsp + 0x28], rbp
mov dword [rsp + 0x20], eax
lea rdx, [rsp + 0x80]
mov rcx, rsi
mov r8d, 1
mov r9, rdi
call sub.ntdll.dll_NtQueryValueKey
cmp eax, 0xc0000023
je 0x14002312b
cmp eax, 0x80000005
jne 0x140022e61
mov ecx, dword [rsp + 0x60]
mov r12, r15
sub r12, rdi
mov r13, rcx
sub r13, r12
jbe 0x140022e23
mov rax, r14
sub rax, r15
cmp rax, r13
jb 0x14002315e
mov rcx, r15
xor edx, edx
mov r8, r13
call fcn.1400c3300
jmp 0x140022e23
sub r14, rdi
lea rax, [r14 + r14]
cmp rax, rcx
cmova rcx, rax
movabs rax, 0x3fffffffffffffff
cmp r14, rax
cmovae rcx, rbx
call fcn.1400910bc
mov r14, rax
add r12, rax
mov rcx, r12
xor edx, edx
mov r8, r13
call fcn.1400c3300
cmp r15, rdi
je 0x1400231ba
mov rax, rdi
not rax
add rax, r15
add rax, r14
mov cl, byte [r15 - 1]
dec r15
mov byte [rax], cl
dec rax
cmp r15, rdi
jne 0x1400231a6
mov r12, r14
test rdi, rdi
jne 0x140022e18
jmp 0x140022e20
mov rsi, r14
jmp 0x140022ed7
mov rcx, qword [rsp + 0x60]
cmp word [rcx + rdi*2 + 2], 0x5c
jne 0x140023230
cmp rax, rdi
jbe 0x140023590
mov r8d, 1
mov rcx, r14
call fcn.140069e30
cmp rdi, 0xffffffffffffffff
je 0x140022755
movzx ecx, byte [rsp + 0x77]
test cl, cl
mov rax, qword [rsp + 0x68]
mov rdx, rcx
cmovs rdx, rax
cmp rdx, rdi
jbe 0x14002345a
lea rdx, [rdi + 1]
test cl, cl
js 0x1400231d0
cmp word [rsp + rdi*2 + 0x62], 0x5c
mov rax, rcx
mov rcx, r14
je 0x1400231dd
cmp rax, rdx
jbe 0x140022755
lea rdi, [rdi*2 + 2]
add rax, rax
cmp word [rcx + rdi], 0x5c
je 0x140023259
add rdi, 2
cmp rax, rdi
jne 0x140023244
jmp 0x140022755
cmp rax, rdi
je 0x140022755
sar rdi, 1
jmp 0x1400231f4
mov rdi, qword [rsp + 0x180]
lea rsi, [rsp + 0xc0]
mov rcx, rsi
call fcn.1400c49b0
mov rsi, qword [rsi]
mov rcx, rdi
mov rdx, rsi
call fcn.140017ec0
mov bl, 1
jmp 0x140022f9e
mov eax, r12d
and al, 0x7f
mov byte [rsp + 0x77], al
jmp 0x1400232fc
sub r13, r12
je 0x14002264b
mov edi, 0xa
jmp 0x1400232c4
mov rcx, qword [rsp + 0x70]
mov rdi, rcx
and rdi, rbx
dec rdi
shr rcx, 0x38
mov r12, rdx
mov rdx, rdi
sub rdx, r12
cmp rdx, r13
jb 0x140023305
test cl, cl
lea r15, [rsp + 0x60]
cmovs r15, rax
lea rcx, [r15 + r12*2]
lea r8, [r13*2]
xor edx, edx
call fcn.1400c3300
add r12, r13
cmp byte [rsp + 0x77], 0
jns 0x140023294
mov qword [rsp + 0x68], r12
lea rax, [r15 + r12*2]
jmp 0x14002263e
mov rax, r13
sub rax, rdi
add rax, r12
mov rcx, rbx
sub rcx, rdi
add rcx, 0xfffffffffffffff8
cmp rcx, rax
jb 0x140023596
movabs rax, 0x3fffffffffffffff
add rax, 0xfffffffffffffff4
cmp rdi, rax
jae 0x140023372
lea rax, [rdi + rdi]
lea rcx, [r12 + r13]
cmp rcx, rax
cmova rax, rcx
mov esi, 0xb
cmp rax, 0xb
jb 0x140023376
mov rcx, rax
and rcx, 0xfffffffffffffffc
add rcx, 4
or rax, 3
cmp rax, 0xb
cmove rax, rcx
inc rax
mov rsi, rax
jns 0x140023376
jmp 0x140023599
lea rsi, [rbx - 8]
lea rcx, [rsi + rsi]
call fcn.1400910bc
mov r15, rax
test r12, r12
je 0x140023396
lea r8, [r12 + r12]
mov rcx, r15
mov rdx, r14
call fcn.1400c2c60
cmp rdi, 0xa
je 0x1400233a4
mov rcx, r14
call fcn.1400910b4
mov qword [rsp + 0x60], r15
lea rax, [rbx + 1]
or rsi, rax
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x68], r12
jmp 0x1400232da
int3
int3
int3
lea rcx, [rsp + 0x60]
jmp 0x140022821
movzx r8d, word [rcx + r13*2]
cmp r8d, 0x5c
je 0x1400233e6
test r8d, r8d
jne 0x140022868
lea rax, [rcx + r13*2]
mov edx, dword [rdi + 0x10]
mov dword [rsp + 0x3c], edx
cmp edx, 1
je 0x140023413
cmp dword [rsp + 0x3c], 2
jne 0x140023424
lea rdx, str.WOW6432Node
mov qword [rsp + 0x48], rdx
mov rdx, rax
mov qword [rsp + 0x40], rax
jmp 0x140023424
lea rdx, str.WOW6432Node_
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x40], rsi
cmp r8w, 0x5c
jne 0x140023441
lea rcx, [rax + 2]
dec r12
cmp word [rax + 2], 0x5c
mov rdx, rcx
mov rax, rcx
je 0x14002342b
jmp 0x140023444
mov rdx, rax
mov r8, qword [rdi + 0x20]
mov rdi, qword [rdi + 0x18]
xor r14d, r14d
mov r15, r12
mov rcx, rdx
jmp 0x140022872
int3
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r14, [rsp + 0xc0]
mov qword [r14 + 0x10], rax
vbroadcastss xmm0, dword [0x1400f27f0]
vmovaps xmmword [r14], xmm0
lea rdx, [0x140124fe0]
mov rcx, r14
vzeroupper
call fcn.140042710
lea r15, [0x140124be0]
jmp 0x1400234d9
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r14, [rsp + 0xc0]
mov qword [r14 + 0x10], rax
vbroadcastss xmm0, dword [0x1400f27f0]
vmovaps xmmword [r14], xmm0
lea rdx, [0x140124fe0]
mov rcx, r14
vzeroupper
call fcn.140042710
lea r15, [0x140124de0]
mov rcx, r15
call fcn.140091674
mov rcx, r14
mov rdx, r15
mov r8, rax
call fcn.140044680
lea rdx, [0x14010490c]
mov r8d, 1
mov rcx, r14
call fcn.140044680
jmp 0x140022967
int3
lea rax, [rsp + 0x60]
mov byte [rax + 0x17], 0
jmp 0x140023525
mov rax, qword [rsp + 0x60]
mov qword [rsp + 0x68], 0
mov word [rax], 0
movabs rbx, 0x7fffffffffffffff
mov r13d, dword [rsp + 0x30]
jmp 0x1400226e9
lea r12, [rsp + 0x60]
cmp byte [r12 + 0x17], 0
mov rax, r12
jns 0x140023553
mov rax, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x40]
sub rdi, rax
sar rdi, 1
mov rsi, qword [rsp + 0x48]
mov rcx, rsi
call fcn.140091674
mov rcx, r12
mov rdx, rdi
mov r8, rsi
mov r9, rax
call fcn.140044560
movabs rbx, 0x7fffffffffffffff
mov r13d, dword [rsp + 0x30]
jmp 0x140022891
int3
int3
int3
int3