Function at 0x1400201d0
Capabilities:
Encode data using xor
Log keystrokes
Log keystrokes via polling
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x568]
sub rsp, 0x640
movaps xmmword [rax - 0x38], xmm6
movaps xmmword [rax - 0x48], xmm7
movaps xmmword [rax - 0x58], xmm8
movaps xmmword [rax - 0x68], xmm9
movaps xmmword [rax - 0x78], xmm10
movaps xmmword [rax - 0x88], xmm11
movaps xmmword [rax - 0x98], xmm12
movaps xmmword [rax - 0xa8], xmm13
movaps xmmword [rax - 0xb8], xmm14
movaps xmmword [rax - 0xc8], xmm15
mov rax, qword [0x140057030]
xor rax, rsp
mov qword [rbp + 0x490], rax
mov ecx, dword [0x1400598cc]
test ecx, ecx
jne 0x140020255
mov ecx, 0x2d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14002026d
cmp byte [0x14005ddc0], 0
sete byte [0x14005ddc0]
mov r15d, 3
lea r12, [r15 - 4]
mov ecx, r15d
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x1400203a5
mov rbx, qword [0x14005ee68]
mov r13, qword [0x14005ee70]
cmp rbx, r13
je 0x1400203a5
nop
mov rax, qword [rbx]
mov qword [rbp + 0x20], rax
lea rdx, [rbx + 8]
lea rcx, [rbp + 0x28]
call fcn.14000b460
nop
lea rdx, [rbx + 0x28]
lea rcx, [rbp + 0x48]
call fcn.14000b460
nop
lea rdx, [0x14005d700]
lea rcx, [0x140059ee0]
call qword [sym.imp.VCRUNTIME140.dll___std_type_info_name]
mov rdx, r12
nop word [rax + rax]
inc rdx
cmp byte [rax + rdx], 0
jne 0x1400202e0
lea rcx, [rbp + 0x48]
mov rsi, qword [rbp + 0x60]
cmp rsi, 0x10
setae r14b
mov rdi, qword [rbp + 0x48]
cmovae rcx, rdi
mov r8, qword [rbp + 0x58]
cmp r8, rdx
jne 0x140020327
mov rdx, rax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
jne 0x140020327
mov rcx, qword [rbp + 0x20]
cmp dword [rcx + 1], r15d
jne 0x140020327
cmp byte [rcx], al
sete al
mov byte [rcx], al
test r14b, r14b
je 0x14002035d
lea rdx, [rsi + 1]
mov rax, rdi
cmp rdx, 0x1000
jb 0x140020355
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002198c
mov rcx, rdi
call fcn.14003f01c
mov rdx, qword [rbp + 0x40]
cmp rdx, 0x10
jb 0x140020398
inc rdx
mov rcx, qword [rbp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140020393
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002198c
call fcn.14003f01c
add rbx, 0x48
cmp rbx, r13
jne 0x1400202a0
inc r15d
cmp r15d, 0x100
jl 0x140020277
cmp byte [0x14005ddc0], 0
je 0x140020a28
call fcn.14001f920
movd xmm7, dword [0x140057070]
cvtdq2ps xmm7, xmm7
movd xmm6, dword [0x14005706c]
cvtdq2ps xmm6, xmm6
movaps xmm0, xmmword [0x14004a980]
movups xmmword [rbp - 0x80], xmm0
mov rcx, qword [0x14005dd68]
mov rax, qword [rcx]
lea rdx, [rbp - 0x80]
call qword [rax + 0x40]
movss dword [rbp + 0x70], xmm6
movss dword [rbp + 0x74], xmm7
addss xmm6, dword [0x14004a7c4]
movss dword [rbp + 0x78], xmm6
addss xmm7, dword [0x14004a7b8]
movss dword [rbp + 0x7c], xmm7
mov rcx, qword [0x14005dd50]
mov rax, qword [rcx]
mov r8, qword [0x14005dd68]
lea rdx, [rbp + 0x70]
call qword [rax + 0x88]
mov eax, dword [0x140057070]
add eax, 0x14
movd xmm8, eax
cvtdq2ps xmm8, xmm8
mov ecx, dword [0x14005706c]
lea eax, [rcx + 0x190]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
movd xmm7, ecx
cvtdq2ps xmm7, xmm7
movaps xmm0, xmmword [0x14004a990]
movups xmmword [rbp - 0x80], xmm0
mov rcx, qword [0x14005dd68]
mov rax, qword [rcx]
lea rdx, [rbp - 0x80]
call qword [rax + 0x40]
mov rcx, qword [0x14005dd50]
mov rax, qword [rcx]
xor r15d, r15d
mov qword [rsp + 0x28], r15
movss xmm9, dword [0x14004a700]
movss dword [rsp + 0x20], xmm9
mov r9, qword [0x14005dd68]
movaps xmm0, xmm6
unpcklps xmm0, xmm8
movq r8, xmm0
movaps xmm1, xmm7
unpcklps xmm1, xmm8
movq rdx, xmm1
call qword [rax + 0x78]
mov eax, dword [0x140057070]
add eax, 0xa
movd xmm6, eax
cvtdq2ps xmm6, xmm6
mov eax, dword [0x14005706c]
add eax, 0xc8
movd xmm7, eax
cvtdq2ps xmm7, xmm7
movdqa xmm0, xmmword [0x14004a8f0]
movdqu xmmword [rbp - 0x80], xmm0
mov dword [rbp - 0x70], 0x11363621
mov word [rbp - 0x6c], 0x695b
mov byte [rbp - 0x6a], 1
mov ecx, r15d
nop word [rax + rax]
lea eax, [rcx + 0x54]
xor byte [rbp + rcx - 0x80], al
inc rcx
cmp rcx, 0x16
jb 0x140020510
mov byte [rbp - 0x6a], 0
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r15
lea rax, [rbp - 0x80]
mov r8, r12
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140020540
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x58]
call fcn.1400123e0
movss dword [rsp + 0x40], xmm9
movss dword [rsp + 0x38], xmm9
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x28], xmm9
movss dword [rsp + 0x20], xmm6
movaps xmm3, xmm7
mov r8b, 1
movss xmm11, dword [0x14004a754]
movaps xmm1, xmm11
lea rcx, [rsp + 0x58]
call fcn.14001c570
nop
mov eax, dword [0x140057070]
add eax, 0x3c
movd xmm8, eax
cvtdq2ps xmm8, xmm8
mov ecx, dword [0x14005706c]
lea eax, [rcx + 0x190]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
movd xmm7, ecx
cvtdq2ps xmm7, xmm7
movaps xmm0, xmmword [0x14004a990]
movups xmmword [rbp - 0x80], xmm0
mov rcx, qword [0x14005dd68]
mov rax, qword [rcx]
lea rdx, [rbp - 0x80]
call qword [rax + 0x40]
mov rcx, qword [0x14005dd50]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r15
movss dword [rsp + 0x20], xmm9
mov r9, qword [0x14005dd68]
movaps xmm0, xmm6
unpcklps xmm0, xmm8
movq r8, xmm0
movaps xmm1, xmm7
unpcklps xmm1, xmm8
movq rdx, xmm1
call qword [rax + 0x78]
cmp byte [0x14005ddd8], 0
je 0x140020a90
mov eax, dword [0x140057070]
add eax, 0x28
movd xmm6, eax
cvtdq2ps xmm6, xmm6
mov eax, dword [0x14005706c]
add eax, 0xc8
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mov rbx, qword [0x14005ddc8]
add rbx, 8
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x68], xmm1
mov r8d, 0x1f
lea rdx, str.Press_A_Key_To_Bind_To_Option:
lea rcx, [rsp + 0x58]
call fcn.1400123e0
nop
mov r8, qword [rbx + 0x10]
cmp qword [rbx + 0x18], 0x10
jb 0x140020689
mov rbx, qword [rbx]
mov rdx, rbx
lea rcx, [rsp + 0x58]
call fcn.14000c840
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
mov qword [rbp - 0x70], r15
mov qword [rbp - 0x68], r15
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x70], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
movss dword [rsp + 0x40], xmm9
movss dword [rsp + 0x38], xmm9
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x28], xmm9
movss dword [rsp + 0x20], xmm6
movaps xmm3, xmm7
mov r8b, 1
movaps xmm1, xmm11
lea rcx, [rbp - 0x80]
call fcn.14001c570
nop
mov rdx, qword [rsp + 0x70]
cmp rdx, 0x10
jb 0x140020739
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140020734
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140020734
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14003f01c
movdqa xmm0, xmmword [0x14004a830]
movdqu xmmword [rsp + 0x68], xmm0
mov byte [rsp + 0x58], 0
mov rax, qword [0x14005ddc8]
mov rcx, qword [rax + 0x30]
mov ecx, dword [rcx]
test ecx, ecx
je 0x14002089f
xor edx, edx
call qword [sym.imp.USER32.dll_MapVirtualKeyW]
shl eax, 0x10
mov r8d, 0x400
lea rdx, [rbp + 0x90]
mov ecx, eax
call qword [sym.imp.USER32.dll_GetKeyNameTextA]
mov eax, dword [0x140057070]
add eax, 0x96
movd xmm6, eax
cvtdq2ps xmm6, xmm6
mov eax, dword [0x14005706c]
add eax, 0xc8
movd xmm7, eax
cvtdq2ps xmm7, xmm7
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x70], xmm1
mov r8d, 0x15
lea rdx, str.Current_Key_Bind_Is:
lea rcx, [rbp - 0x80]
call fcn.1400123e0
nop
lea rax, [rbp + 0x90]
inc r12
cmp byte [rax + r12], 0
jne 0x1400207d2
mov r8, r12
lea rdx, [rbp + 0x90]
lea rcx, [rbp - 0x80]
call fcn.14000c840
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r15
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x58], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x68], xmm1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], 0xf
mov byte [rax], 0
movss dword [rsp + 0x40], xmm9
movss dword [rsp + 0x38], xmm9
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x28], xmm9
movss dword [rsp + 0x20], xmm6
movaps xmm3, xmm7
mov r8b, 1
movaps xmm1, xmm11
lea rcx, [rsp + 0x58]
call fcn.14001c570
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 0x10
jb 0x140020922
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140020895
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140020895
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14003f01c
jmp 0x140020922
mov eax, dword [0x140057070]
add eax, 0x96
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mov eax, dword [0x14005706c]
add eax, 0xc8
movd xmm6, eax
cvtdq2ps xmm6, xmm6
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r15
mov r8d, 0x19
lea rdx, str.Current_Key_Bind_Is:_None
lea rcx, [rsp + 0x58]
call fcn.1400123e0
movss dword [rsp + 0x40], xmm9
movss dword [rsp + 0x38], xmm9
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x28], xmm9
movss dword [rsp + 0x20], xmm7
movaps xmm3, xmm6
mov r8b, 1
movaps xmm1, xmm11
lea rcx, [rsp + 0x58]
call fcn.14001c570
mov eax, dword [0x140057070]
add eax, 0xc8
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mov eax, dword [0x14005706c]
add eax, 0x96
movd xmm6, eax
cvtdq2ps xmm6, xmm6
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r15
mov r8d, 2
lea rdx, [0x14004882c]
lea rcx, [rsp + 0x58]
call fcn.1400123e0
movss dword [rsp + 0x40], xmm9
movss dword [rsp + 0x38], xmm9
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x28], xmm9
movss dword [rsp + 0x20], xmm7
movaps xmm3, xmm6
mov r8b, 1
movaps xmm1, xmm11
lea rcx, [rsp + 0x58]
call fcn.14001c570
mov eax, dword [0x140057070]
add eax, 0xc8
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mov eax, dword [0x14005706c]
add eax, 0xfa
movd xmm6, eax
cvtdq2ps xmm6, xmm6
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r15
mov r8d, 5
lea rdx, str.RESET
lea rcx, [rsp + 0x58]
call fcn.1400123e0
movss dword [rsp + 0x40], xmm9
movss dword [rsp + 0x38], xmm9
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x28], xmm9
movss dword [rsp + 0x20], xmm7
movaps xmm3, xmm6
mov r8b, 1
movaps xmm1, xmm11
lea rcx, [rsp + 0x58]
call fcn.14001c570
mov rcx, qword [rbp + 0x490]
xor rcx, rsp
call fcn.14003ed60
lea r11, [rsp + 0x640]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rdi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
movaps xmm15, xmmword [r11 - 0xa0]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov edi, r15d
mov r8, qword [0x14005f030]
mov rax, r8
mov r9, qword [0x14005f028]
sub rax, r9
sar rax, 6
movss xmm10, dword [0x14004a6f8]
test rax, rax
je 0x140020cb3
mov rbx, r15
mov eax, dword [0x140057070]
sub r8, r9
xor edx, edx
add eax, 0x28
sar r8, 6
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mov eax, 0x190
div r8
mov rcx, rax
imul rcx, rbx
shr rax, 1
add rcx, rax
movsxd rax, dword [0x14005706c]
xorps xmm6, xmm6
cmp dword [0x14005ddc4], edi
jne 0x140020b5b
add rcx, rax
js 0x140020b0c
cvtsi2ss xmm6, rcx
jmp 0x140020b21
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm6, rax
addss xmm6, xmm6
cmp r8, rbx
jbe 0x1400219a5
mov rdx, rbx
shl rdx, 6
add rdx, r9
lea rcx, [rbp - 0x58]
call fcn.14000b460
movss dword [rsp + 0x40], xmm9
movss dword [rsp + 0x38], xmm9
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x28], xmm9
jmp 0x140020bb4
add rcx, rax
js 0x140020b67
cvtsi2ss xmm6, rcx
jmp 0x140020b7c
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm6, rax
addss xmm6, xmm6
cmp r8, rbx
jbe 0x1400219ab
mov rdx, rbx
shl rdx, 6
add rdx, r9
lea rcx, [rbp - 0x58]
call fcn.14000b460
movss dword [rsp + 0x40], xmm9
movss dword [rsp + 0x38], xmm10
movss dword [rsp + 0x30], xmm10
movss dword [rsp + 0x28], xmm10
movss dword [rsp + 0x20], xmm7
movaps xmm3, xmm6
mov r8b, 1
movaps xmm1, xmm11
mov rcx, rax
call fcn.14001c570
mov r9d, dword [0x140057070]
lea eax, [r9 + 0x3c]
movd xmm8, eax
cvtdq2ps xmm8, xmm8
mov rcx, qword [0x14005f030]
sub rcx, qword [0x14005f028]
sar rcx, 6
xor edx, edx
mov eax, 0x190
div rcx
mov r8, rax
imul r8, rbx
movsxd rcx, dword [0x14005706c]
add r8, rcx
xorps xmm7, xmm7
js 0x140020c19
cvtsi2ss xmm7, r8
jmp 0x140020c2f
mov rax, r8
shr rax, 1
and r8d, 1
or rax, r8
cvtsi2ss xmm7, rax
addss xmm7, xmm7
lea eax, [r9 + 0x14]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
movaps xmm0, xmmword [0x14004a990]
movups xmmword [rbp - 0x80], xmm0
mov rcx, qword [0x14005dd68]
mov rax, qword [rcx]
lea rdx, [rbp - 0x80]
call qword [rax + 0x40]
mov rcx, qword [0x14005dd50]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r15
movss dword [rsp + 0x20], xmm9
mov r9, qword [0x14005dd68]
movaps xmm0, xmm7
unpcklps xmm0, xmm8
movq r8, xmm0
movaps xmm1, xmm7
unpcklps xmm1, xmm6
movq rdx, xmm1
call qword [rax + 0x78]
inc edi
mov r8, qword [0x14005f030]
mov rax, r8
mov r9, qword [0x14005f028]
sub rax, r9
sar rax, 6
movsxd rbx, edi
cmp rbx, rax
jb 0x140020ac0
mov ecx, dword [0x140057070]
lea eax, [rcx + 0x3c]
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mov eax, dword [0x14005706c]
add eax, 0x190
movd xmm8, eax
cvtdq2ps xmm8, xmm8
lea eax, [rcx + 0x14]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
movaps xmm0, xmmword [0x14004a990]
movups xmmword [rbp - 0x80], xmm0
mov rcx, qword [0x14005dd68]
mov rax, qword [rcx]
lea rdx, [rbp - 0x80]
call qword [rax + 0x40]
mov rcx, qword [0x14005dd50]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r15
movss dword [rsp + 0x20], xmm9
mov r9, qword [0x14005dd68]
movaps xmm0, xmm8
unpcklps xmm0, xmm7
movq r8, xmm0
movaps xmm1, xmm8
unpcklps xmm1, xmm6
movq rdx, xmm1
call qword [rax + 0x78]
mov eax, dword [0x140057070]
add eax, 0x64
movd xmm8, eax
cvtdq2ps xmm8, xmm8
mov ecx, dword [0x14005706c]
lea eax, [rcx + 0x190]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
movd xmm7, ecx
cvtdq2ps xmm7, xmm7
movaps xmm0, xmmword [0x14004a990]
movups xmmword [rbp - 0x80], xmm0
mov rcx, qword [0x14005dd68]
mov rax, qword [rcx]
lea rdx, [rbp - 0x80]
call qword [rax + 0x40]
mov rcx, qword [0x14005dd50]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r15
movss dword [rsp + 0x20], xmm9
mov r9, qword [0x14005dd68]
movaps xmm0, xmm6
unpcklps xmm0, xmm8
movq r8, xmm0
movaps xmm1, xmm7
unpcklps xmm1, xmm8
movq rdx, xmm1
call qword [rax + 0x78]
mov edi, r15d
movsxd r10, dword [0x14005ddc4]
mov rdx, r10
mov r9, qword [0x14005f030]
mov rax, r9
mov r8, qword [0x14005f028]
sub rax, r8
sar rax, 6
cmp rax, r10
jbe 0x140021999
movabs r14, 0x4924924924924925
nop dword [rax]
shl rdx, 6
mov rcx, qword [rdx + r8 + 0x30]
sub rcx, qword [rdx + r8 + 0x28]
mov rax, r14
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
movsxd rbx, edi
cmp rbx, rdx
jae 0x1400210be
movsxd rcx, r10d
sub r9, r8
sar r9, 6
cmp r9, rcx
jbe 0x140021999
shl rcx, 6
mov eax, dword [0x140057070]
mov r9, qword [rcx + r8 + 0x28]
add eax, 0x50
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mov rax, r14
cmp dword [rcx + r8 + 0x20], edi
mov rcx, qword [rcx + r8 + 0x30]
xorps xmm6, xmm6
jne 0x140020ef0
sub rcx, r9
imul rcx
mov r8, rdx
sar r8, 4
mov rax, r8
shr rax, 0x3f
add r8, rax
xor edx, edx
mov eax, 0x190
div r8
mov rcx, rax
imul rcx, rbx
shr rax, 1
add rcx, rax
movsxd rax, dword [0x14005706c]
add rcx, rax
js 0x140020ea1
cvtsi2ss xmm6, rcx
jmp 0x140020eb6
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm6, rax
addss xmm6, xmm6
cmp r8, rbx
jbe 0x1400219b1
imul rdx, rbx, 0x38
add rdx, r9
lea rcx, [rbp - 0x58]
call fcn.14000b460
movss dword [rsp + 0x40], xmm9
movss dword [rsp + 0x38], xmm9
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x28], xmm9
jmp 0x140020f7b
sub rcx, r9
imul rcx
mov r8, rdx
sar r8, 4
mov rax, r8
shr rax, 0x3f
add r8, rax
xor edx, edx
mov eax, 0x190
div r8
mov rcx, rax
imul rcx, rbx
shr rax, 1
add rcx, rax
movsxd rax, dword [0x14005706c]
add rcx, rax
js 0x140020f31
cvtsi2ss xmm6, rcx
jmp 0x140020f46
mov rax, rcx
shr rax, 1
and ecx, 1
or rax, rcx
cvtsi2ss xmm6, rax
addss xmm6, xmm6
cmp r8, rbx
jbe 0x1400219b7
imul rdx, rbx, 0x38
add rdx, r9
lea rcx, [rbp - 0x58]
call fcn.14000b460
movss dword [rsp + 0x40], xmm9
movss dword [rsp + 0x38], xmm10
movss dword [rsp + 0x30], xmm10
movss dword [rsp + 0x28], xmm10
movss dword [rsp + 0x20], xmm7
movaps xmm3, xmm6
mov r8b, 1
movaps xmm1, xmm11
mov rcx, rax
call fcn.14001c570
mov r9d, dword [0x140057070]
lea eax, [r9 + 0x64]
movd xmm8, eax
cvtdq2ps xmm8, xmm8
movsxd rdx, dword [0x14005ddc4]
mov rax, qword [0x14005f030]
mov r8, qword [0x14005f028]
sub rax, r8
sar rax, 6
cmp rax, rdx
jbe 0x140021999
shl rdx, 6
mov rcx, qword [rdx + r8 + 0x30]
sub rcx, qword [rdx + r8 + 0x28]
mov rax, r14
imul rcx
mov rcx, rdx
sar rcx, 4
mov rax, rcx
shr rax, 0x3f
add rcx, rax
xor edx, edx
mov eax, 0x190
div rcx
mov r8, rax
imul r8, rbx
movsxd rcx, dword [0x14005706c]
add r8, rcx
xorps xmm7, xmm7
js 0x140021018
cvtsi2ss xmm7, r8
jmp 0x14002102e
mov rax, r8
shr rax, 1
and r8d, 1
or rax, r8
cvtsi2ss xmm7, rax
addss xmm7, xmm7
lea eax, [r9 + 0x3c]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
movaps xmm0, xmmword [0x14004a990]
movups xmmword [rbp - 0x80], xmm0
mov rcx, qword [0x14005dd68]
mov rax, qword [rcx]
lea rdx, [rbp - 0x80]
call qword [rax + 0x40]
mov rcx, qword [0x14005dd50]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r15
movss dword [rsp + 0x20], xmm9
mov r9, qword [0x14005dd68]
movaps xmm0, xmm7
unpcklps xmm0, xmm8
movq r8, xmm0
movaps xmm1, xmm7
unpcklps xmm1, xmm6
movq rdx, xmm1
call qword [rax + 0x78]
inc edi
movsxd r10, dword [0x14005ddc4]
mov rdx, r10
mov r9, qword [0x14005f030]
mov rax, r9
mov r8, qword [0x14005f028]
sub rax, r8
sar rax, 6
cmp rax, r10
jbe 0x140021999
jmp 0x140020df0
mov ecx, dword [0x140057070]
lea eax, [rcx + 0x64]
movd xmm7, eax
cvtdq2ps xmm7, xmm7
mov eax, dword [0x14005706c]
add eax, 0x190
movd xmm8, eax
cvtdq2ps xmm8, xmm8
lea eax, [rcx + 0x3c]
movd xmm6, eax
cvtdq2ps xmm6, xmm6
movaps xmm0, xmmword [0x14004a990]
movups xmmword [rbp - 0x80], xmm0
mov rcx, qword [0x14005dd68]
mov rax, qword [rcx]
lea rdx, [rbp - 0x80]
call qword [rax + 0x40]
mov rcx, qword [0x14005dd50]
mov rax, qword [rcx]
mov qword [rsp + 0x28], r15
movss dword [rsp + 0x20], xmm9
mov r9, qword [0x14005dd68]
movaps xmm0, xmm8
unpcklps xmm0, xmm7
movq r8, xmm0
movaps xmm1, xmm8
unpcklps xmm1, xmm6
movq rdx, xmm1
call qword [rax + 0x78]
mov r13d, r15d
movsxd rcx, dword [0x14005ddc4]
mov rax, qword [0x14005f030]
mov r8, qword [0x14005f028]
sub rax, r8
sar rax, 6
cmp rax, rcx
jbe 0x140021999
mov r12, r15
movss xmm13, dword [0x14004a75c]
movss xmm10, dword [0x14004a748]
movss xmm12, dword [0x14004a78c]
movss xmm14, dword [0x14004a750]
movss xmm15, dword [0x14004a74c]
nop dword [rax + rax]
shl rcx, 6
movsxd r9, dword [0x14005ddc4]
mov rax, qword [0x14005f030]
sub rax, r8
sar rax, 6
cmp rax, r9
jbe 0x140021999
shl r9, 6
movsxd rbx, dword [r9 + r8 + 0x20]
mov r11, qword [rcx + r8 + 0x28]
mov rcx, qword [rcx + r8 + 0x30]
sub rcx, r11
mov rax, r14
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, rbx
jbe 0x14002199f
imul r10, rbx, 0x38
mov rcx, qword [r11 + r10 + 0x28]
sub rcx, qword [r11 + r10 + 0x20]
sar rcx, 3
movsxd rax, r13d
cmp rax, rcx
jae 0x140020a28
mov esi, r15d
cmp r13d, 5
setg sil
cmp r13d, 0xa
jle 0x140021229
mov esi, 2
mov r11, qword [r9 + r8 + 0x28]
mov rcx, qword [r9 + r8 + 0x30]
sub rcx, r11
mov rax, r14
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, rbx
jbe 0x14002199f
mov rcx, qword [r11 + r10 + 0x20]
mov rax, qword [r11 + r10 + 0x28]
sub rax, rcx
sar rax, 3
cmp rax, r12
jbe 0x140021993
mov rbx, qword [rcx + r12*8]
cmp dword [rbx], 1
jne 0x140021575
mov dword [rbp + 0x20], 1
lea rdx, [rbx + 8]
lea rcx, [rbp + 0x28]
call fcn.14000b460
mov rax, qword [rbx + 0x28]
mov qword [rsp + 0x78], rax
mov qword [rbp + 0x48], rax
mov rax, qword [rbx + 0x30]
mov qword [rbp + 0x50], rax
movzx eax, byte [rbx + 0x38]
mov byte [rbp + 0x58], al
lea ecx, [rsi + rsi*2]
add ecx, ecx
mov eax, r13d
sub eax, ecx
imul ebx, eax, 0x1e
mov dword [rbp - 0x5c], ebx
mov ecx, dword [0x140057070]
add ecx, 0x6e
add ecx, ebx
movd xmm7, ecx
cvtdq2ps xmm7, xmm7
imul edi, esi, 0x96
mov dword [rbp - 0x60], edi
mov ecx, dword [0x14005706c]
add ecx, 0xa
add ecx, edi
movd xmm6, ecx
cvtdq2ps xmm6, xmm6
movaps xmm0, xmmword [0x14004a990]
movups xmmword [rbp + 0x70], xmm0
mov rcx, qword [0x14005dd68]
mov rax, qword [rcx]
lea rdx, [rbp + 0x70]
call qword [rax + 0x40]
movss dword [rbp - 0x38], xmm6
movss dword [rbp - 0x34], xmm7
addss xmm6, xmm13
movss dword [rbp - 0x30], xmm6
addss xmm7, xmm13
movss dword [rbp - 0x2c], xmm7
mov rcx, qword [0x14005dd50]
mov rax, qword [rcx]
mov qword [rsp + 0x20], r15
movaps xmm3, xmm9
mov r8, qword [0x14005dd68]
lea rdx, [rbp - 0x38]
call qword [rax + 0x80]
mov ecx, dword [0x140057070]
add ecx, 0x76
add ecx, ebx
movd xmm6, ecx
cvtdq2ps xmm6, xmm6
mov ecx, dword [0x14005706c]
add ecx, 0x23
add ecx, edi
movd xmm7, ecx
cvtdq2ps xmm7, xmm7
xorps xmm0, xmm0
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], r15
lea r15, [rbp + 0x28]
mov rbx, qword [rbp + 0x40]
cmp rbx, 0x10
setae byte [rsp + 0x50]
mov r14, qword [rbp + 0x28]
cmovae r15, r14
mov rdi, qword [rbp + 0x38]
movabs rax, 0x7fffffffffffffff
cmp rdi, rax
ja 0x1400219c3
mov qword [rsp + 0x70], 0xf
cmp rdi, 0x10
jae 0x1400213cd
mov qword [rsp + 0x68], rdi
movups xmm0, xmmword [r15]
movups xmmword [rsp + 0x58], xmm0
jmp 0x140021465
mov rbx, rdi
or rbx, 0xf
cmp rbx, rax
jbe 0x1400213ec
mov rbx, rax
movabs rax, 0x8000000000000000
add rax, 0x27
jmp 0x140021413
cmp rbx, 0x16
mov eax, 0x16
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, 0x1000
jb 0x140021435
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x1400219bd
mov rcx, rax
call fcn.14003ed90
mov rcx, rax
test rax, rax
je 0x140021977
add rax, 0x27
and rax, 0xffffffffffffffe0
mov qword [rax - 8], rcx
jmp 0x140021443
test rcx, rcx
je 0x140021441
call fcn.14003ed90
jmp 0x140021443
xor eax, eax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x70], rbx
lea r8, [rdi + 1]
mov rdx, r15
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rbx, qword [rbp + 0x40]
movss dword [rsp + 0x40], xmm9
movss dword [rsp + 0x38], xmm9
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x28], xmm9
movss dword [rsp + 0x20], xmm6
movaps xmm3, xmm7
xor r8d, r8d
movaps xmm1, xmm11
lea rcx, [rsp + 0x58]
call fcn.14001c570
mov rax, qword [rsp + 0x78]
cmp byte [rax], 0
je 0x140021529
mov eax, dword [0x140057070]
mov ecx, dword [rbp - 0x5c]
add eax, 0x72
add ecx, eax
movd xmm7, ecx
cvtdq2ps xmm7, xmm7
mov eax, dword [0x14005706c]
mov ecx, dword [rbp - 0x60]
add eax, 0xe
add ecx, eax
movd xmm6, ecx
cvtdq2ps xmm6, xmm6
movaps xmm0, xmmword [0x14004a990]
movups xmmword [rbp + 0x70], xmm0
mov rcx, qword [0x14005dd68]
mov rax, qword [rcx]
lea rdx, [rbp + 0x70]
call qword [rax + 0x40]
movss dword [rbp - 0x28], xmm6
movss dword [rbp - 0x24], xmm7
addss xmm6, xmm10
movss dword [rbp - 0x20], xmm6
addss xmm7, xmm10
movss dword [rbp - 0x1c], xmm7
mov rcx, qword [0x14005dd50]
mov rax, qword [rcx]
mov r8, qword [0x14005dd68]
lea rdx, [rbp - 0x28]
call qword [rax + 0x88]
nop
cmp byte [rsp + 0x50], 0
je 0x140021561
lea rdx, [rbx + 1]
mov rax, r14
cmp rdx, 0x1000
jb 0x140021559
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002198c
mov rcx, r14
call fcn.14003f01c
xor r15d, r15d
movabs r14, 0x4924924924924925
mov r8, qword [0x14005f028]
movsxd rcx, dword [0x14005ddc4]
mov rax, qword [0x14005f030]
sub rax, r8
sar rax, 6
cmp rax, rcx
jbe 0x140021999
shl rcx, 6
movsxd r9, dword [rcx + r8 + 0x20]
mov r10, qword [rcx + r8 + 0x28]
mov rcx, qword [rcx + r8 + 0x30]
sub rcx, r10
mov rax, r14
imul rcx
sar rdx, 4
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp rdx, r9
jbe 0x14002199f
imul rax, r9, 0x38
mov rbx, qword [rax + r10 + 0x20]
mov rax, qword [rax + r10 + 0x28]
sub rax, rbx
sar rax, 3
cmp rax, r12
jbe 0x140021993
mov rbx, qword [rbx + r12*8]
cmp dword [rbx], 2
jne 0x140021952
mov dword [rbp + 0x20], 2
lea rdx, [rbx + 8]
lea rcx, [rbp + 0x28]
call fcn.14000b460
movss xmm0, dword [rbx + 0x28]
movss dword [rbp + 0x48], xmm0
movss xmm1, dword [rbx + 0x2c]
movss dword [rbp + 0x4c], xmm1
mov rdx, qword [rbx + 0x30]
mov qword [rbp + 0x50], rdx
lea ecx, [rsi + rsi*2]
add ecx, ecx
mov eax, r13d
sub eax, ecx
imul ebx, eax, 0x1e
mov ecx, dword [0x140057070]
add ecx, 0x71
add ecx, ebx
movd xmm6, ecx
cvtdq2ps xmm6, xmm6
imul edi, esi, 0x96
mov ecx, dword [0x14005706c]
add ecx, 0xa
add ecx, edi
movd xmm7, ecx
cvtdq2ps xmm7, xmm7
movss xmm0, dword [rdx]
call sub.api_ms_win_crt_math_l1_1_0.dll_floorf
cvttss2si r8d, xmm0
lea r9, [rbp + 0x85]
test r8d, r8d
jns 0x1400216c0
neg r8d
nop word [rax + rax]
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x140021680
dec r9
mov byte [r9], 0x2d
jmp 0x1400216ea
dec r9
mov eax, 0xcccccccd
mul r8d
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub r8b, cl
add r8b, 0x30
mov byte [r9], r8b
mov r8d, edx
test edx, edx
jne 0x1400216c0
lea r8, [rbp + 0x85]
mov rdx, r9
lea rcx, [rbp - 8]
call fcn.140016f20
nop
movabs rax, 0x7fffffffffffffff
mov rcx, qword [rbp + 0x38]
sub rax, rcx
cmp rax, 3
jb 0x1400219c9
lea r9, [rbp + 0x28]
cmp qword [rbp + 0x40], 0x10
cmovae r9, qword [rbp + 0x28]
mov qword [rsp + 0x30], 3
lea rax, [0x140048838]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rcx
lea rcx, [rsp + 0x58]
call fcn.140016950
nop
lea r9, [rbp - 8]
lea r8, [rsp + 0x58]
lea rcx, [rbp - 0x58]
call fcn.140016760
movss dword [rsp + 0x40], xmm9
movss dword [rsp + 0x38], xmm9
movss dword [rsp + 0x30], xmm9
movss dword [rsp + 0x28], xmm9
movss dword [rsp + 0x20], xmm6
movaps xmm3, xmm7
xor r8d, r8d
movaps xmm1, xmm11
lea rcx, [rbp - 0x58]
call fcn.14001c570
nop
mov rdx, qword [rsp + 0x70]
cmp rdx, 0x10
jb 0x1400217d2
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400217cc
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002197e
call fcn.14003f01c
nop
mov rdx, qword [rbp + 0x10]
cmp rdx, 0x10
jb 0x14002180d
inc rdx
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140021808
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140021985
call fcn.14003f01c
mov ecx, dword [0x140057070]
add ecx, 0x7d
add ecx, ebx
movd xmm7, ecx
cvtdq2ps xmm7, xmm7
mov ecx, dword [0x14005706c]
add ecx, 0xa
add ecx, edi
movd xmm6, ecx
cvtdq2ps xmm6, xmm6
movaps xmm0, xmmword [0x14004a940]
movups xmmword [rbp + 0x70], xmm0
mov rcx, qword [0x14005dd68]
mov rax, qword [rcx]
lea rdx, [rbp + 0x70]
call qword [rax + 0x40]
movss dword [rbp - 0x18], xmm6
movss dword [rbp - 0x14], xmm7
addss xmm6, xmm12
movss dword [rbp - 0x10], xmm6
addss xmm7, xmm14
movss dword [rbp - 0xc], xmm7
mov rcx, qword [0x14005dd50]
mov rax, qword [rcx]
mov r8, qword [0x14005dd68]
lea rdx, [rbp - 0x18]
call qword [rax + 0x88]
mov rax, qword [rbp + 0x50]
movss xmm8, dword [rax]
divss xmm8, dword [rbp + 0x4c]
mulss xmm8, xmm12
mov ecx, dword [0x140057070]
add ecx, 0x7e
add ecx, ebx
movd xmm7, ecx
cvtdq2ps xmm7, xmm7
mov ecx, dword [0x14005706c]
add ecx, 0xa
add ecx, edi
movd xmm6, ecx
cvtdq2ps xmm6, xmm6
movaps xmm0, xmmword [0x14004a990]
movups xmmword [rbp + 0x70], xmm0
mov rcx, qword [0x14005dd68]
mov rax, qword [rcx]
lea rdx, [rbp + 0x70]
call qword [rax + 0x40]
movss dword [rbp - 0x80], xmm6
movss dword [rbp - 0x7c], xmm7
addss xmm6, xmm8
movss dword [rbp - 0x78], xmm6
addss xmm7, xmm15
movss dword [rbp - 0x74], xmm7
mov rcx, qword [0x14005dd50]
mov rax, qword [rcx]
mov r8, qword [0x14005dd68]
lea rdx, [rbp - 0x80]
call qword [rax + 0x88]
nop
mov rdx, qword [rbp + 0x40]
cmp rdx, 0x10
jb 0x14002194b
inc rdx
mov rcx, qword [rbp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140021946
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002198c
call fcn.14003f01c
mov r8, qword [0x14005f028]
inc r13d
inc r12
movsxd rcx, dword [0x14005ddc4]
mov rax, qword [0x14005f030]
sub rax, r8
sar rax, 6
cmp rax, rcx
jbe 0x140021999
jmp 0x1400211a0
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400321a0
int3
call fcn.1400321a0
int3
call fcn.1400321a0
int3
call fcn.1400321a0
int3
call fcn.1400321a0
int3
call fcn.1400321a0
int3
call fcn.1400321a0
nop
call fcn.1400015a0
int3
call fcn.140001640
nop
call fcn.140001640
int3