Function at 0x431850
Capabilities:
Get system information on windows

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov rdx, rcx
cmp rdx, 0xe8
ja 0x4318ef
lea rax, [rdx + 0x17]
and rax, 0xfffffffffffffff0
cmp rdx, 0x17
mov r15d, 0x20
cmovae r15, rax
mov rcx, r15
shr rcx, 3
mov r13d, dword [0x0045f930]
mov eax, r13d
shr eax, cl
test al, 3
je 0x43198e
and eax, 1
or eax, ecx
xor eax, 1
lea edx, [rax + rax]
lea rbx, [0x0045f930]
lea rcx, [rbx + rdx*8 + 0x48]
mov rdx, qword [rbx + rdx*8 + 0x58]
mov rbx, qword [rdx + 0x10]
cmp rbx, rcx
je 0x431a40
cmp qword [0x0045f948], rbx
ja 0x431f42
cmp qword [rbx + 0x18], rdx
jne 0x431f42
mov qword [rbx + 0x18], rcx
mov qword [rcx + 0x10], rbx
jmp 0x431a53
mov r15, 0xffffffffffffffff
cmp rdx, 0xffffffffffffff7f
ja 0x431ffe
add rdx, 0x17
mov r15, rdx
and r15, 0xfffffffffffffff0
mov r10d, dword [0x0045f934]
test r10d, r10d
je 0x431ffe
shr rdx, 8
je 0x431a6c
mov r9d, 0x1f
cmp r15, 0xffffff
ja 0x431a6f
lea eax, [rdx + 0xfff00]
shr eax, 0x10
and eax, 8
mov ecx, eax
shl edx, cl
lea ecx, [rdx + 0x7f000]
shr ecx, 0x10
and ecx, 4
or eax, ecx
shl edx, cl
lea ecx, [rdx + 0x3c000]
shr ecx, 0x10
and ecx, 2
or eax, ecx
mov ebx, 0xe
sub ebx, eax
shl edx, cl
shr edx, 0xf
lea eax, [rbx + rdx]
lea ecx, [rbx + rdx + 7]
mov rdx, r15
shr rdx, cl
and edx, 1
lea r9d, [rdx + rax*2]
jmp 0x431a6f
mov r8, qword [0x0045f938]
cmp r15, r8
jbe 0x431ffe
test eax, eax
je 0x431b8a
shl eax, cl
mov edx, 2
shl edx, cl
mov ecx, edx
neg ecx
or ecx, edx
and ecx, eax
mov eax, ecx
neg eax
and eax, ecx
dec eax
mov edx, eax
shr edx, 0xc
and edx, 0x10
mov ecx, edx
shr eax, cl
mov ecx, eax
shr ecx, 5
and ecx, 8
or edx, ecx
shr eax, cl
mov ecx, eax
shr ecx, 2
and ecx, 4
or edx, ecx
shr eax, cl
mov ecx, eax
shr ecx, 1
and ecx, 2
or edx, ecx
shr eax, cl
mov ecx, eax
shr ecx, 1
and ecx, 1
or edx, ecx
shr eax, cl
add eax, edx
lea edx, [rax + rax]
lea r9, [0x0045f930]
lea rcx, [r9 + rdx*8 + 0x48]
mov rdx, qword [r9 + rdx*8 + 0x58]
mov rbx, qword [rdx + 0x10]
cmp rbx, rcx
je 0x431cb0
cmp qword [0x0045f948], rbx
ja 0x431f42
cmp qword [rbx + 0x18], rdx
jne 0x431f42
mov qword [rbx + 0x18], rcx
mov qword [rcx + 0x10], rbx
jmp 0x431cc3
mov ebx, 0xfffffffe
mov ecx, eax
rol ebx, cl
and r13d, ebx
mov dword [0x0045f930], r13d
shl eax, 3
lea rcx, [rax + 3]
mov qword [rdx + 8], rcx
or byte [rdx + rax + 8], 1
lea r12, [rdx + 0x10]
jmp 0x432080
xor r9d, r9d
mov r13, r15
neg r13
mov ecx, r9d
lea r8, [0x0045f930]
mov rsi, qword [r8 + rcx*8 + 0x258]
test rsi, rsi
je 0x431a96
cmp r9d, 0x1f
jne 0x431a9d
xor ecx, ecx
jmp 0x431aad
xor ecx, ecx
xor r12d, r12d
jmp 0x431b08
mov edx, r9d
shr edx, 1
add edx, 6
mov ecx, 0x3f
sub rcx, rdx
mov rax, r15
shl rax, cl
xor ecx, ecx
xor r12d, r12d
nop dword [rax + rax]
mov rdx, qword [rsi + 8]
and rdx, 0xfffffffffffffff8
sub rdx, r15
cmp rdx, r13
jae 0x431adf
test rdx, rdx
mov r13, rdx
mov r12, rsi
je 0x431ca2
mov rbx, qword [rsi + 0x28]
mov rdi, rax
shr rdi, 0x3f
mov rsi, qword [rsi + rdi*8 + 0x20]
cmp rbx, rsi
mov rdx, rbx
cmove rdx, rcx
test rbx, rbx
cmovne rcx, rdx
add rax, rax
test rsi, rsi
jne 0x431ac0
mov rax, rcx
or rax, r12
jne 0x431f85
mov edx, 2
mov ecx, r9d
shl edx, cl
mov eax, edx
neg eax
or eax, edx
and eax, r10d
je 0x431ffe
mov edx, eax
neg edx
and edx, eax
dec edx
mov eax, edx
shr eax, 0xc
and eax, 0x10
mov ecx, eax
shr edx, cl
mov ecx, edx
shr ecx, 5
and ecx, 8
or eax, ecx
shr edx, cl
mov ecx, edx
shr ecx, 2
and ecx, 4
or eax, ecx
shr edx, cl
mov ecx, edx
shr ecx, 1
and ecx, 2
or eax, ecx
shr edx, cl
mov ecx, edx
shr ecx, 1
and ecx, 1
or eax, ecx
shr edx, cl
add edx, eax
mov rcx, qword [r8 + rdx*8 + 0x258]
xor r12d, r12d
test rcx, rcx
jne 0x431f60
jmp 0x431f8a
mov r11d, dword [0x0045f934]
test r11d, r11d
je 0x431ffe
mov edx, r11d
neg edx
and edx, r11d
dec edx
mov eax, edx
shr eax, 0xc
and eax, 0x10
mov ecx, eax
shr edx, cl
mov ecx, edx
shr ecx, 5
and ecx, 8
or eax, ecx
shr edx, cl
mov ecx, edx
shr ecx, 2
and ecx, 4
or eax, ecx
shr edx, cl
mov ecx, edx
shr ecx, 1
and ecx, 2
or eax, ecx
shr edx, cl
mov ecx, edx
shr ecx, 1
and ecx, 1
or eax, ecx
shr edx, cl
add edx, eax
lea r9, [0x0045f930]
mov r12, qword [r9 + rdx*8 + 0x258]
mov rax, qword [r12 + 8]
and rax, 0xfffffffffffffff8
sub rax, r15
xor ecx, ecx
cmp qword [r12 + 0x20], 0
sete cl
mov rcx, qword [r12 + rcx*8 + 0x20]
test rcx, rcx
je 0x431c3a
mov rdx, qword [rcx + 8]
and rdx, 0xfffffffffffffff8
sub rdx, r15
cmp rdx, rax
cmovb rax, rdx
cmovb r12, rcx
xor edx, edx
cmp qword [rcx + 0x20], 0
sete dl
mov rcx, qword [rcx + rdx*8 + 0x20]
test rcx, rcx
jne 0x431c10
mov rbx, qword [0x0045f948]
cmp rbx, r12
ja 0x431f42
lea r10, [r12 + r15]
cmp r10, r12
jbe 0x431f42
mov rdx, qword [r12 + 0x18]
mov r14, qword [r12 + 0x30]
cmp rdx, r12
je 0x431d4a
mov rcx, qword [r12 + 0x10]
cmp rbx, rcx
ja 0x431f42
cmp qword [rcx + 0x18], r12
jne 0x431f42
cmp qword [rdx + 0x10], r12
jne 0x431f42
mov qword [rcx + 0x18], rdx
mov qword [rdx + 0x10], rcx
test r14, r14
jne 0x431de9
jmp 0x431f26
xor r13d, r13d
mov rcx, rsi
mov r12, rsi
jmp 0x431f60
mov ebx, 0xfffffffe
mov ecx, eax
rol ebx, cl
and r13d, ebx
mov dword [0x0045f930], r13d
lea r12, [rdx + 0x10]
shl eax, 3
mov rsi, rax
sub rsi, r15
cmp rsi, 0x1f
ja 0x431ceb
mov rcx, rax
or rcx, 3
mov qword [rdx + 8], rcx
or byte [rdx + rax + 8], 1
jmp 0x432080
mov rcx, r15
or rcx, 3
mov qword [rdx + 8], rcx
mov rcx, rsi
or rcx, 1
mov qword [rdx + r15 + 8], rcx
mov qword [rdx + rax], rsi
test r8, r8
je 0x431d78
mov rax, qword [0x0045f950]
mov rcx, r8
shr rcx, 3
movabs rbx, 0x3fffffff8
and rbx, r8
lea r8, [r9 + rbx*2 + 0x48]
mov ebx, 1
shl ebx, cl
bt r13d, ecx
jae 0x431d5b
mov rcx, qword [r8 + 0x10]
cmp qword [0x0045f948], rcx
jbe 0x431d68
jmp 0x431f42
mov rsi, qword [r12 + 0x28]
test rsi, rsi
je 0x431d8e
lea rcx, [r12 + 0x28]
jmp 0x431db0
or r13d, ebx
mov dword [0x0045f930], r13d
mov rcx, r8
mov qword [r8 + 0x10], rax
mov qword [rcx + 0x18], rax
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], r8
add rdx, r15
mov qword [0x0045f938], rsi
mov qword [0x0045f950], rdx
jmp 0x432080
mov rsi, qword [r12 + 0x20]
test rsi, rsi
je 0x431f35
lea rcx, [r12 + 0x20]
nop word cs:[rax + rax]
mov rdx, rsi
mov rdi, rcx
lea rcx, [rdx + 0x28]
mov rsi, qword [rdx + 0x28]
test rsi, rsi
jne 0x431db0
lea rcx, [rdx + 0x20]
mov rsi, qword [rdx + 0x20]
test rsi, rsi
jne 0x431db0
cmp rbx, rdi
ja 0x431f42
mov qword [rdi], 0
test r14, r14
je 0x431f26
mov ecx, dword [r12 + 0x38]
cmp r12, qword [r9 + rcx*8 + 0x258]
je 0x431e20
mov rcx, qword [0x0045f948]
cmp rcx, r14
ja 0x431f42
xor ebx, ebx
cmp qword [r14 + 0x20], r12
setne bl
mov qword [r14 + rbx*8 + 0x20], rdx
test rdx, rdx
jne 0x431e38
jmp 0x431f26
mov qword [r9 + rcx*8 + 0x258], rdx
test rdx, rdx
je 0x431f15
mov rcx, qword [0x0045f948]
cmp rcx, rdx
ja 0x431f42
mov qword [rdx + 0x30], r14
mov rbx, qword [r12 + 0x20]
test rbx, rbx
je 0x431e60
cmp rcx, rbx
ja 0x431f42
mov qword [rdx + 0x20], rbx
mov qword [rbx + 0x30], rdx
mov rbx, qword [r12 + 0x28]
test rbx, rbx
je 0x431f26
cmp rcx, rbx
ja 0x431f42
mov qword [rdx + 0x28], rbx
mov qword [rbx + 0x30], rdx
cmp rax, 0x1f
jbe 0x431f30
mov rcx, r15
or rcx, 3
mov qword [r12 + 8], rcx
mov rcx, rax
or rcx, 1
mov qword [r12 + r15 + 8], rcx
mov qword [r10 + rax], rax
test r8, r8
je 0x431f02
mov rdx, qword [0x0045f950]
mov rcx, r8
shr rcx, 3
movabs rbx, 0x3fffffff8
and rbx, r8
lea rsi, [r9 + rbx*2 + 0x48]
mov ebx, 1
shl ebx, cl
bt r13d, ecx
jae 0x431ee6
mov rcx, qword [rsi + 0x10]
cmp qword [0x0045f948], rcx
jbe 0x431ef2
jmp 0x431f42
or ebx, r13d
mov dword [0x0045f930], ebx
mov rcx, rsi
mov qword [rsi + 0x10], rdx
mov qword [rcx + 0x18], rdx
mov qword [rdx + 0x10], rcx
mov qword [rdx + 0x18], rsi
mov qword [0x0045f938], rax
mov qword [0x0045f950], r10
jmp 0x43207c
mov edx, 0xfffffffe
rol edx, cl
and r11d, edx
mov dword [0x0045f934], r11d
cmp rax, 0x1f
ja 0x431e89
add rax, r15
jmp 0x431f49
xor edx, edx
test r14, r14
jne 0x431de9
jmp 0x431f26
call fcn.004456d0
ud2
mov rcx, rax
or rcx, 3
mov qword [r12 + 8], rcx
or byte [r12 + rax + 8], 1
jmp 0x43207c
mov rax, qword [rcx + 8]
and rax, 0xfffffffffffffff8
sub rax, r15
cmp rax, r13
cmovb r13, rax
cmovb r12, rcx
xor eax, eax
cmp qword [rcx + 0x20], 0
sete al
mov rcx, qword [rcx + rax*8 + 0x20]
test rcx, rcx
jne 0x431f60
test r12, r12
je 0x431ffe
mov rax, qword [0x0045f938]
sub rax, r15
cmp r13, rax
jae 0x431ffe
mov r14, qword [0x0045f948]
cmp r14, r12
ja 0x431f42
lea r9, [r12 + r15]
cmp r9, r12
jbe 0x431f42
mov rsi, qword [r12 + 0x18]
mov r11, qword [r12 + 0x30]
cmp rsi, r12
je 0x43229b
mov rax, qword [r12 + 0x10]
cmp r14, rax
ja 0x431f42
cmp qword [rax + 0x18], r12
jne 0x431f42
cmp qword [rsi + 0x10], r12
jne 0x431f42
mov qword [rax + 0x18], rsi
mov qword [rsi + 0x10], rax
test r11, r11
jne 0x432389
jmp 0x432985
mov rax, qword [0x0045f938]
mov rcx, rax
sub rcx, r15
jae 0x432040
mov rax, qword [0x0045f940]
mov rcx, rax
sub rcx, r15
jbe 0x432094
mov qword [0x0045f940], rcx
mov r12, qword [0x0045f958]
lea rax, [r12 + r15]
mov qword [0x0045f958], rax
or rcx, 1
mov qword [r12 + r15 + 8], rcx
jmp 0x432073
mov r12, qword [0x0045f950]
cmp rcx, 0x20
jb 0x43216f
lea rdx, [r12 + r15]
mov qword [0x0045f950], rdx
mov qword [0x0045f938], rcx
mov rdx, rcx
or rdx, 1
mov qword [r12 + r15 + 8], rdx
mov qword [r12 + rax], rcx
or r15, 3
mov qword [r12 + 8], r15
add r12, 0x10
mov rax, r12
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
cmp qword [0x0045fcd8], 0
jne 0x432116
lea rcx, [rbp - 0x28]
call sub.KERNEL32_GetSystemInfo
mov eax, dword [rbp]
lea ecx, [rax - 1]
test rcx, rax
jne 0x431f42
mov edx, 0xffffffff
mov ecx, dword [rbp - 0x24]
add edx, ecx
test rdx, rcx
jne 0x431f42
mov qword [0x0045fce8], rax
mov qword [0x0045fce0], rcx
movdqa xmm0, xmmword [0x0044eb60]
movdqu xmmword [0x0045fcf0], xmm0
mov dword [0x0045fd00], 5
mov dword [0x0045fca0], 5
call sub.KERNEL32_GetTickCount
and eax, 0xfffffff0
xor eax, 0x55555558
mov qword [0x0045fcd8], rax
mov rax, qword [0x0045f940]
test byte [0x0045fca0], 1
je 0x4321b3
cmp qword [0x0045fcf0], r15
ja 0x4321b3
test rax, rax
je 0x4321b3
mov rdi, qword [0x0045fce8]
lea rax, [r15 + rdi + 0x3e]
neg rdi
and rdi, rax
mov rax, qword [0x0045fc98]
test rax, rax
je 0x43218a
cmp rdi, r15
jbe 0x4321b3
mov rcx, qword [0x0045fc88]
lea rdx, [rcx + rdi]
cmp rdx, rax
ja 0x4321b3
cmp rdx, rcx
ja 0x43218f
jmp 0x4321b3
mov qword [0x0045f938], 0
mov qword [0x0045f950], 0
jmp 0x431f49
cmp rdi, r15
jbe 0x4321b3
xor ecx, ecx
mov r8d, 0x103000
mov r9d, 4
mov rdx, rdi
call sub.KERNEL32_VirtualAlloc
lea rcx, [rax + 1]
cmp rcx, 2
jae 0x4322b3
mov rdi, qword [0x0045fce8]
lea rax, [r15 + rdi + 0x5f]
neg rdi
and rdi, rax
cmp rdi, r15
jbe 0x432c69
mov rax, qword [0x0045fc98]
test rax, rax
je 0x4321fa
mov rdx, qword [0x0045fc88]
lea rcx, [rdx + rdi]
xor r12d, r12d
cmp rcx, rdx
jbe 0x432080
cmp rcx, rax
ja 0x432080
xor r12d, r12d
xor ecx, ecx
mov r8d, 0x3000
mov r9d, 4
mov rdx, rdi
call sub.KERNEL32_VirtualAlloc
test rax, rax
sete dl
cmp rax, 0xffffffffffffffff
sete bl
lea rsi, [rax + 1]
xor r11d, r11d
cmp rsi, 1
seta cl
or bl, dl
cmovne rdi, r12
cmp rsi, 2
jb 0x432080
mov rdx, qword [0x0045fc88]
add rdx, rdi
mov qword [0x0045fc88], rdx
cmp rdx, qword [0x0045fc90]
jbe 0x43225f
mov qword [0x0045fc90], rdx
mov r11b, cl
mov r14, qword [0x0045f958]
test r14, r14
je 0x432508
lea rbx, [0x0045fca8]
mov rcx, qword [rbx]
mov rsi, qword [rbx + 8]
lea rdx, [rcx + rsi]
cmp rax, rdx
je 0x4325fe
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x432279
jmp 0x43266a
mov rdi, qword [r12 + 0x28]
test rdi, rdi
je 0x43232f
lea rax, [r12 + 0x28]
jmp 0x432350
lea rcx, [rax + 0x10]
mov edx, ecx
and edx, 0xf
neg ecx
and ecx, 0xf
test rdx, rdx
cmove rcx, rdx
mov rdx, rdi
sub rdx, rcx
lea rbx, [rdx - 0x20]
lea r12, [rax + rcx]
mov qword [rax + rcx], rcx
mov qword [rax + rcx + 8], rbx
mov ecx, 0xb
movq xmm0, rcx
movdqu xmmword [rdx + r12 - 0x18], xmm0
mov rcx, qword [0x0045f948]
test rcx, rcx
je 0x432301
cmp rax, rcx
jae 0x432308
mov qword [0x0045f948], rax
add rdi, qword [0x0045fc88]
mov qword [0x0045fc88], rdi
cmp rdi, qword [0x0045fc90]
jbe 0x43207c
mov qword [0x0045fc90], rdi
jmp 0x43207c
mov rdi, qword [r12 + 0x20]
test rdi, rdi
je 0x432a32
lea rax, [r12 + 0x20]
nop word cs:[rax + rax]
mov rsi, rdi
mov rcx, rax
lea rax, [rsi + 0x28]
mov rdi, qword [rsi + 0x28]
test rdi, rdi
jne 0x432350
lea rax, [rsi + 0x20]
mov rdi, qword [rsi + 0x20]
test rdi, rdi
jne 0x432350
cmp r14, rcx
ja 0x431f42
mov qword [rcx], 0
test r11, r11
je 0x432985
mov ecx, dword [r12 + 0x38]
cmp r12, qword [r8 + rcx*8 + 0x258]
je 0x4323c0
mov rcx, qword [0x0045f948]
cmp rcx, r11
ja 0x431f42
xor eax, eax
cmp qword [r11 + 0x20], r12
setne al
mov qword [r11 + rax*8 + 0x20], rsi
test rsi, rsi
jne 0x4323d8
jmp 0x432985
mov qword [r8 + rcx*8 + 0x258], rsi
test rsi, rsi
je 0x432974
mov rcx, qword [0x0045f948]
cmp rcx, rsi
ja 0x431f42
mov qword [rsi + 0x30], r11
mov rax, qword [r12 + 0x20]
test rax, rax
je 0x432400
cmp rcx, rax
ja 0x431f42
mov qword [rsi + 0x20], rax
mov qword [rax + 0x30], rsi
mov rax, qword [r12 + 0x28]
test rax, rax
je 0x432985
cmp rcx, rax
ja 0x431f42
mov qword [rsi + 0x28], rax
mov qword [rax + 0x30], rsi
cmp r13, 0x1f
jbe 0x43298f
mov rax, r15
or rax, 3
mov qword [r12 + 8], rax
mov rax, r13
or rax, 1
mov qword [r12 + r15 + 8], rax
mov qword [r9 + r13], r13
cmp r13, 0xff
ja 0x432497
mov rcx, r13
shr rcx, 3
movabs rax, 0x3fffffff8
and rax, r13
lea rax, [r8 + rax*2 + 0x48]
mov edx, dword [0x0045f930]
mov ebx, 1
shl ebx, cl
bt edx, ecx
jae 0x432908
mov rcx, qword [rax + 0x10]
cmp qword [0x0045f948], rcx
ja 0x431f42
lea rdx, [rax + 0x10]
jmp 0x432917
mov rdi, r13
shr rdi, 8
je 0x43292b
mov ecx, 0x1f
cmp r13, 0xffffff
ja 0x43292d
lea eax, [rdi + 0xfff00]
shr eax, 0x10
and eax, 8
mov ecx, eax
shl edi, cl
lea ecx, [rdi + 0x7f000]
shr ecx, 0x10
and ecx, 4
or eax, ecx
shl edi, cl
lea ecx, [rdi + 0x3c000]
shr ecx, 0x10
and ecx, 2
or eax, ecx
mov edx, 0xe
sub edx, eax
shl edi, cl
shr edi, 0xf
lea eax, [rdx + rdi]
lea ecx, [rdx + rdi + 7]
mov rdx, r13
shr rdx, cl
and edx, 1
lea ecx, [rdx + rax*2]
jmp 0x43292d
mov rcx, qword [0x0045f948]
test rcx, rcx
je 0x432519
cmp rax, rcx
jae 0x432520
mov qword [0x0045f948], rax
mov qword [0x0045fca8], rax
mov qword [0x0045fcb0], rdi
mov dword [0x0045fcc0], r11d
mov rcx, qword [0x0045fcd8]
mov qword [0x0045f970], rcx
mov qword [0x0045f968], 0xfff
xor ecx, ecx
lea rdx, [0x0045f930]
lea rbx, [rcx + rdx + 0x48]
mov qword [rcx + rdx + 0x60], rbx
lea rsi, [rcx + rdx + 0x58]
mov qword [rcx + rdx + 0x58], rbx
mov qword [rcx + rdx + 0x70], rsi
lea rbx, [rcx + rdx + 0x68]
mov qword [rcx + rdx + 0x68], rsi
mov qword [rcx + rdx + 0x80], rbx
lea rsi, [rcx + rdx + 0x78]
mov qword [rcx + rdx + 0x78], rbx
mov qword [rcx + rdx + 0x90], rsi
mov qword [rcx + rdx + 0x88], rsi
add rcx, 0x40
cmp rcx, 0x200
jne 0x432557
lea rcx, [rdi - 0x50]
lea rdx, [rax + 0x10]
mov ebx, edx
and ebx, 0xf
neg edx
and edx, 0xf
test rbx, rbx
cmove rdx, rbx
mov rbx, rax
add rbx, rdx
sub rcx, rdx
mov qword [0x0045f958], rbx
mov qword [0x0045f940], rcx
or rcx, 1
mov qword [rax + rdx + 8], rcx
mov qword [rax + rdi - 0x48], 0x50
mov rax, qword [0x0045fcf8]
mov qword [0x0045f960], rax
jmp 0x432c36
mov r8d, dword [rbx + 0x18]
test r8b, 8
jne 0x43266a
and r8d, 1
cmp r8d, r11d
jne 0x43266a
cmp rax, r14
jbe 0x43266a
cmp rcx, r14
ja 0x43266a
add rsi, rdi
mov qword [rbx + 8], rsi
add rdi, qword [0x0045f940]
lea rax, [r14 + 0x10]
mov ecx, eax
and ecx, 0xf
neg eax
and eax, 0xf
test rcx, rcx
cmove rax, rcx
lea rcx, [r14 + rax]
mov rdx, rdi
sub rdx, rax
mov qword [0x0045f958], rcx
mov qword [0x0045f940], rdx
or rdx, 1
mov qword [r14 + rax + 8], rdx
mov qword [r14 + rdi + 8], 0x50
jmp 0x4325eb
mov r10, qword [0x0045f948]
cmp rax, r10
jae 0x432680
mov qword [0x0045f948], rax
mov r10, rax
lea rsi, [rax + rdi]
lea rbx, [0x0045fca8]
cmp qword [rbx], rsi
je 0x43269e
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x43268b
jmp 0x4327a4
mov ecx, dword [rbx + 0x18]
test cl, 8
jne 0x4327a4
and ecx, 1
cmp ecx, r11d
jne 0x4327a4
mov qword [rbx], rax
add qword [rbx + 8], rdi
lea rcx, [rax + 0x10]
mov edx, ecx
and edx, 0xf
neg ecx
and ecx, 0xf
test rdx, rdx
cmove rcx, rdx
mov r12, rax
add r12, rcx
lea rdi, [rsi + 0x10]
mov edx, edi
and edx, 0xf
neg edi
and edi, 0xf
test rdx, rdx
cmove rdi, rdx
add rdi, rsi
mov r9, rdi
sub r9, r12
lea r8, [r12 + r15]
sub r9, r15
or r15, 3
mov qword [rax + rcx + 8], r15
cmp r14, rdi
je 0x432ad6
cmp qword [0x0045f950], rdi
je 0x432bec
mov r14, qword [rdi + 8]
mov eax, r14d
and eax, 3
cmp rax, 1
jne 0x432dc9
cmp r14, 0xff
ja 0x432c71
mov rcx, qword [rdi + 0x10]
mov rdx, qword [rdi + 0x18]
movabs rax, 0x3fffffff8
and rax, r14
lea rbx, [0x0045f930]
lea rax, [rbx + rax*2 + 0x48]
cmp rcx, rax
je 0x432776
cmp r10, rcx
ja 0x431f42
cmp qword [rcx + 0x18], rdi
jne 0x431f42
cmp rdx, rcx
je 0x432cb1
cmp rdx, rax
je 0x432797
cmp r10, rdx
ja 0x431f42
cmp qword [rdx + 0x10], rdi
jne 0x431f42
mov qword [rcx + 0x18], rdx
mov qword [rdx + 0x10], rcx
jmp 0x432dbf
lea rcx, [0x0045fca8]
jmp 0x4327b4
mov rcx, qword [rcx + 0x10]
mov rbx, qword [rcx]
cmp rbx, r14
ja 0x4327b0
add rbx, qword [rcx + 8]
cmp rbx, r14
jbe 0x4327b0
lea rcx, [rbx - 0x4f]
mov edx, ecx
and edx, 0xf
neg ecx
and ecx, 0xf
test rdx, rdx
cmove rcx, rdx
lea r10, [rbx + rcx - 0x5f]
lea r8, [r14 + 0x20]
cmp r10, r8
cmovb r10, r14
lea r9, [r10 + 0x10]
lea rcx, [rdi - 0x50]
lea rdx, [rax + 0x10]
mov esi, edx
and esi, 0xf
neg edx
and edx, 0xf
test rsi, rsi
cmove rdx, rsi
mov rsi, rax
add rsi, rdx
sub rcx, rdx
mov qword [0x0045f958], rsi
mov qword [0x0045f940], rcx
or rcx, 1
mov qword [rax + rdx + 8], rcx
mov qword [rax + rdi - 0x48], 0x50
mov rcx, qword [0x0045fcf8]
mov qword [0x0045f960], rcx
mov qword [r10 + 8], 0x33
movups xmm0, xmmword [0x0045fcb8]
movups xmmword [r10 + 0x20], xmm0
movdqu xmm0, xmmword [0x0045fca8]
movdqu xmmword [r10 + 0x10], xmm0
mov qword [0x0045fca8], rax
mov qword [0x0045fcb0], rdi
mov dword [0x0045fcc0], r11d
mov qword [0x0045fcb8], r9
lea rax, [r10 + 0x38]
mov qword [rax], 0xb
add rax, 8
cmp rax, rbx
jb 0x432880
mov rdi, r10
sub rdi, r14
je 0x432c36
and byte [r10 + 8], 0xfe
mov rax, rdi
or rax, 1
mov qword [r14 + 8], rax
mov qword [r10], rdi
cmp rdi, 0xff
ja 0x432a42
mov rcx, rdi
shr rcx, 3
movabs rax, 0x3fffffff8
and rax, rdi
lea rdx, [0x0045f930]
lea rax, [rdx + rax*2 + 0x48]
mov ebx, dword [0x0045f930]
mov edi, 1
shl edi, cl
bt ebx, ecx
jae 0x432af8
mov rcx, qword [rax + 0x10]
cmp qword [0x0045f948], rcx
jbe 0x432b03
jmp 0x431f42
or edx, ebx
mov dword [0x0045f930], edx
lea rdx, [rax + 0x10]
mov rcx, rax
mov qword [rdx], r9
mov qword [rcx + 0x18], r9
mov qword [r9 + 0x10], rcx
mov qword [r9 + 0x18], rax
jmp 0x43207c
xor ecx, ecx
mov eax, ecx
lea rax, [r8 + rax*8 + 0x258]
mov dword [r9 + 0x38], ecx
pxor xmm0, xmm0
movdqu xmmword [r9 + 0x20], xmm0
mov edx, 1
shl edx, cl
bt r10d, ecx
jae 0x43295e
mov rdi, qword [rax]
cmp ecx, 0x1f
jne 0x4329a9
xor eax, eax
jmp 0x4329b6
or r10d, edx
mov dword [0x0045f934], r10d
mov qword [rax], r9
mov qword [r9 + 0x30], rax
jmp 0x432ac9
mov eax, 0xfffffffe
rol eax, cl
and r10d, eax
mov dword [0x0045f934], r10d
cmp r13, 0x1f
ja 0x432429
add r13, r15
mov rax, r13
or rax, 3
mov qword [r12 + 8], rax
or byte [r12 + r13 + 8], 1
jmp 0x43207c
shr ecx, 1
add ecx, 6
mov eax, 0x3f
sub rax, rcx
mov rcx, qword [rdi + 8]
and rcx, 0xfffffffffffffff8
cmp rcx, r13
jne 0x4329c8
mov rax, rdi
jmp 0x4329f8
mov rsi, r13
mov ecx, eax
shl rsi, cl
mov rcx, rsi
shr rcx, 0x3f
mov rax, qword [rdi + rcx*8 + 0x20]
test rax, rax
je 0x432ab0
add rsi, rsi
mov rcx, qword [rax + 8]
and rcx, 0xfffffffffffffff8
cmp rcx, r13
mov rdi, rax
jne 0x4329d0
mov rdx, qword [0x0045f948]
cmp rdx, rax
ja 0x431f42
mov rcx, qword [rax + 0x10]
cmp rdx, rcx
ja 0x431f42
mov qword [rcx + 0x18], r9
mov qword [rax + 0x10], r9
mov qword [r9 + 0x10], rcx
mov qword [r9 + 0x18], rax
mov qword [r9 + 0x30], 0
jmp 0x43207c
xor esi, esi
test r11, r11
jne 0x432389
jmp 0x432985
mov rbx, rdi
shr rbx, 8
je 0x432b18
mov ecx, 0x1f
cmp rdi, 0xffffff
ja 0x432b1a
lea eax, [rbx + 0xfff00]
shr eax, 0x10
and eax, 8
mov ecx, eax
shl ebx, cl
lea ecx, [rbx + 0x7f000]
shr ecx, 0x10
and ecx, 4
or eax, ecx
shl ebx, cl
lea ecx, [rbx + 0x3c000]
shr ecx, 0x10
and ecx, 2
or eax, ecx
mov edx, 0xe
sub edx, eax
shl ebx, cl
shr ebx, 0xf
lea eax, [rdx + rbx]
lea ecx, [rdx + rbx + 7]
mov rdx, rdi
shr rdx, cl
and edx, 1
lea ecx, [rdx + rax*2]
jmp 0x432b1a
lea rax, [rdi + rcx*8 + 0x20]
cmp qword [0x0045f948], rax
ja 0x431f42
mov qword [rax], r9
mov qword [r9 + 0x30], rdi
mov qword [r9 + 0x18], r9
mov qword [r9 + 0x10], r9
jmp 0x43207c
add r9, qword [0x0045f940]
mov qword [0x0045f940], r9
mov qword [0x0045f958], r8
or r9, 1
mov qword [r8 + 8], r9
jmp 0x43207c
or ebx, edi
mov dword [0x0045f930], ebx
mov rcx, rax
mov qword [rax + 0x10], r14
mov qword [rcx + 0x18], r14
mov qword [r14 + 0x10], rcx
mov qword [r14 + 0x18], rax
jmp 0x432c36
xor ecx, ecx
mov eax, ecx
lea rdx, [0x0045f930]
lea rax, [rdx + rax*8 + 0x258]
mov dword [r14 + 0x38], ecx
pxor xmm0, xmm0
movdqu xmmword [r8], xmm0
mov ebx, dword [0x0045f934]
mov esi, 1
shl esi, cl
bt ebx, ecx
jae 0x432b56
mov rbx, qword [rax]
cmp ecx, 0x1f
jne 0x432b6a
xor eax, eax
jmp 0x432b77
or ebx, esi
mov dword [0x0045f934], ebx
mov qword [rax], r14
mov qword [r14 + 0x30], rax
jmp 0x432c2e
shr ecx, 1
add ecx, 6
mov eax, 0x3f
sub rax, rcx
mov rcx, qword [rbx + 8]
and rcx, 0xfffffffffffffff8
cmp rcx, rdi
jne 0x432b89
mov rax, rbx
jmp 0x432bb5
mov rsi, rdi
mov ecx, eax
shl rsi, cl
mov rcx, rsi
shr rcx, 0x3f
mov rax, qword [rbx + rcx*8 + 0x20]
test rax, rax
je 0x432c15
add rsi, rsi
mov rcx, qword [rax + 8]
and rcx, 0xfffffffffffffff8
cmp rcx, rdi
mov rbx, rax
jne 0x432b91
mov rbx, qword [0x0045f948]
cmp rbx, rax
ja 0x431f42
mov rcx, qword [rax + 0x10]
cmp rbx, rcx
ja 0x431f42
mov qword [rcx + 0x18], r14
mov qword [rax + 0x10], r14
mov qword [r14 + 0x10], rcx
mov qword [r14 + 0x18], rax
mov qword [r14 + 0x30], 0
jmp 0x432c36
add r9, qword [0x0045f938]
mov qword [0x0045f938], r9
mov qword [0x0045f950], r8
mov rax, r9
or rax, 1
mov qword [r8 + 8], rax
mov qword [r8 + r9], r9
jmp 0x43207c
lea rax, [rbx + rcx*8 + 0x20]
cmp qword [0x0045f948], rax
ja 0x431f42
mov qword [rax], r14
mov qword [r14 + 0x30], rbx
mov qword [r14 + 0x18], r14
mov qword [r14 + 0x10], r14
mov rax, qword [0x0045f940]
sub rax, r15
jbe 0x432c69
mov qword [0x0045f940], rax
mov r12, qword [0x0045f958]
lea rcx, [r12 + r15]
mov qword [0x0045f958], rcx
or rax, 1
mov qword [r12 + r15 + 8], rax
jmp 0x432073
xor r12d, r12d
jmp 0x432080
mov rsi, qword [rdi + 0x18]
mov r11, qword [rdi + 0x30]
cmp rsi, rdi
je 0x432cca
mov rax, qword [rdi + 0x10]
cmp r10, rax
ja 0x431f42
cmp qword [rax + 0x18], rdi
jne 0x431f42
cmp qword [rsi + 0x10], rdi
jne 0x431f42
mov qword [rax + 0x18], rsi
mov qword [rsi + 0x10], rax
test r11, r11
jne 0x432d22
jmp 0x432dbf
mov rcx, r14
shr rcx, 3
mov eax, 0xfffffffe
rol eax, cl
and dword [0x0045f930], eax
jmp 0x432dbf
mov rdx, qword [rdi + 0x28]
test rdx, rdx
je 0x432cd9
lea rcx, [rdi + 0x28]
jmp 0x432ce9
lea rcx, [rdi + 0x20]
mov rdx, qword [rcx]
test rdx, rdx
je 0x432fbd
mov rsi, rdx
mov rax, rcx
lea rcx, [rsi + 0x28]
mov rdx, qword [rsi + 0x28]
test rdx, rdx
jne 0x432ce9
lea rcx, [rsi + 0x20]
mov rdx, qword [rsi + 0x20]
test rdx, rdx
jne 0x432ce9
cmp r10, rax
ja 0x431f42
mov qword [rax], 0
test r11, r11
je 0x432dbf
mov ecx, dword [rdi + 0x38]
lea rax, [0x0045f930]
cmp qword [rax + rcx*8 + 0x258], rdi
je 0x432d5b
mov rcx, qword [0x0045f948]
cmp rcx, r11
ja 0x431f42
xor eax, eax
cmp qword [r11 + 0x20], rdi
setne al
mov qword [r11 + rax*8 + 0x20], rsi
test rsi, rsi
jne 0x432d6f
jmp 0x432dbf
mov qword [rax + rcx*8 + 0x258], rsi
test rsi, rsi
je 0x432db2
mov rcx, qword [0x0045f948]
cmp rcx, rsi
ja 0x431f42
mov qword [rsi + 0x30], r11
mov rax, qword [rdi + 0x20]
test rax, rax
je 0x432d96
cmp rcx, rax
ja 0x431f42
mov qword [rsi + 0x20], rax
mov qword [rax + 0x30], rsi
mov rax, qword [rdi + 0x28]
test rax, rax
je 0x432dbf
cmp rcx, rax
ja 0x431f42
mov qword [rsi + 0x28], rax
mov qword [rax + 0x30], rsi
jmp 0x432dbf
mov eax, 0xfffffffe
rol eax, cl
and dword [0x0045f934], eax
and r14, 0xfffffffffffffff8
add rdi, r14
add r9, r14
and byte [rdi + 8], 0xfe
mov rax, r9
or rax, 1
mov qword [r8 + 8], rax
mov qword [r8 + r9], r9
cmp r9, 0xff
ja 0x432e32
mov rcx, r9
shr rcx, 3
movabs rax, 0x3fffffff8
and rax, r9
lea rdx, [0x0045f930]
lea rax, [rdx + rax*2 + 0x48]
mov edx, dword [0x0045f930]
mov ebx, 1
shl ebx, cl
bt edx, ecx
jae 0x432e9c
mov rcx, qword [rax + 0x10]
cmp qword [0x0045f948], rcx
ja 0x431f42
lea rdx, [rax + 0x10]
jmp 0x432eab
mov rdx, r9
shr rdx, 8
je 0x432ebf
mov ecx, 0x1f
cmp r9, 0xffffff
ja 0x432ec1
lea eax, [rdx + 0xfff00]
shr eax, 0x10
and eax, 8
mov ecx, eax
shl edx, cl
lea ecx, [rdx + 0x7f000]
shr ecx, 0x10
and ecx, 4
or eax, ecx
shl edx, cl
lea ecx, [rdx + 0x3c000]
shr ecx, 0x10
and ecx, 2
or eax, ecx
mov ebx, 0xe
sub ebx, eax
shl edx, cl
shr edx, 0xf
lea eax, [rbx + rdx]
lea ecx, [rbx + rdx + 7]
mov rdx, r9
shr rdx, cl
and edx, 1
lea ecx, [rdx + rax*2]
jmp 0x432ec1
or edx, ebx
mov dword [0x0045f930], edx
lea rdx, [rax + 0x10]
mov rcx, rax
mov qword [rdx], r8
mov qword [rcx + 0x18], r8
mov qword [r8 + 0x10], rcx
mov qword [r8 + 0x18], rax
jmp 0x43207c
xor ecx, ecx
mov eax, ecx
lea rdx, [0x0045f930]
lea rax, [rdx + rax*8 + 0x258]
mov dword [r8 + 0x38], ecx
pxor xmm0, xmm0
movdqu xmmword [r8 + 0x20], xmm0
mov edx, dword [0x0045f934]
mov ebx, 1
shl ebx, cl
bt edx, ecx
jae 0x432efe
mov rdx, qword [rax]
cmp ecx, 0x1f
jne 0x432f12
xor eax, eax
jmp 0x432f1f
or edx, ebx
mov dword [0x0045f934], edx
mov qword [rax], r8
mov qword [r8 + 0x30], rax
jmp 0x432fb0
shr ecx, 1
add ecx, 6
mov eax, 0x3f
sub rax, rcx
mov rcx, qword [rdx + 8]
and rcx, 0xfffffffffffffff8
cmp rcx, r9
jne 0x432f31
mov rax, rdx
jmp 0x432f5d
mov rdi, r9
mov ecx, eax
shl rdi, cl
mov rcx, rdi
shr rcx, 0x3f
mov rax, qword [rdx + rcx*8 + 0x20]
test rax, rax
je 0x432f97
add rdi, rdi
mov rcx, qword [rax + 8]
and rcx, 0xfffffffffffffff8
cmp rcx, r9
mov rdx, rax
jne 0x432f39
mov rdx, qword [0x0045f948]
cmp rdx, rax
ja 0x431f42
mov rcx, qword [rax + 0x10]
cmp rdx, rcx
ja 0x431f42
mov qword [rcx + 0x18], r8
mov qword [rax + 0x10], r8
mov qword [r8 + 0x10], rcx
mov qword [r8 + 0x18], rax
mov qword [r8 + 0x30], 0
jmp 0x43207c
lea rax, [rdx + rcx*8 + 0x20]
cmp qword [0x0045f948], rax
ja 0x431f42
mov qword [rax], r8
mov qword [r8 + 0x30], rdx
mov qword [r8 + 0x18], r8
mov qword [r8 + 0x10], r8
jmp 0x43207c
xor esi, esi
test r11, r11
jne 0x432d22
jmp 0x432dbf