Function at 0x14003b8f0
Capabilities:
Encode data using xor
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 - 0x378]
sub rsp, 0x450
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 [0x140056010]
xor rax, rsp
mov qword [rbp + 0x2a0], rax
xorps xmm10, xmm10
mov qword [rbp - 0x1c], 0
mov dword [rbp - 0x20], 0
mov qword [rbp - 0x2c], 0
mov dword [rbp - 0x30], 0
mov qword [rbp - 0xc], 0
mov dword [rbp - 0x10], 0
mov qword [rbp + 4], 0
mov dword [rbp], 0
xor dil, dil
mov byte [rsp + 0x40], dil
movss xmm0, dword [0x14004c0a8]
movss dword [rbp - 0x34], xmm0
xorps xmm8, xmm8
movss dword [rsp + 0x48], xmm8
xorps xmm6, xmm6
movss dword [rsp + 0x44], xmm6
mov rcx, qword [0x14015eb98]
add rcx, 0xffd878
call fcn.1400419a0
mov ebx, eax
mov dword [rbp + 0x30], eax
xor r15d, r15d
movss xmm12, dword [0x14004c03c]
test eax, eax
je 0x14003cb17
mov esi, r15d
mov dword [rbp + 0x148], r15d
lea r12d, [r15 + 0x64]
movss xmm13, dword [0x14004c0bc]
mov ecx, dword [0x14004ba08]
add rcx, qword [0x14015eb98]
call fcn.1400419a0
mov edi, eax
mov ecx, dword [0x14004ba10]
add rcx, qword [0x14015eb98]
call fcn.1400419a0
mov ebx, eax
mov ecx, dword [0x14004ba0c]
add rcx, qword [0x14015eb98]
call fcn.1400419a0
sub edi, ebx
lea ecx, [rax + 8]
add ecx, edi
call fcn.1400419a0
cmp byte [0x14015ed81], 0
jne 0x14003ba6e
mov ecx, esi
xor ecx, eax
test cl, 1
je 0x14003caed
mov rcx, qword [0x14015eb98]
add rcx, 0xff4000
call fcn.1400419a0
mov ebx, eax
mov rcx, qword [0x14015eb98]
add rcx, 0xff4008
call fcn.1400419a0
cmp esi, 0x11
ja 0x14003caed
lea ecx, [rbx + rax]
mov eax, esi
lea rcx, [rcx + rax*4]
add rcx, 0x644
call fcn.1400419a0
test eax, eax
je 0x14003caed
lea ecx, [rax + 0x14]
lea ebx, [rax + 0x1c]
call fcn.1400419a0
mov edi, eax
mov ecx, ebx
call fcn.1400419a0
mov r14d, eax
xor r14d, edi
je 0x14003caed
lea ecx, [r14 + 0xddc]
call fcn.1400419a0
test eax, eax
je 0x14003caed
lea ecx, [rax + 0x64]
call fcn.140041c20
cvttss2si r13d, xmm0
test r13d, r13d
je 0x14003caed
cmp byte [0x14015ebaa], 0
jne 0x14003bb1c
cmp byte [0x14015ebd5], 0
je 0x14003bc42
mov rcx, qword [0x14015eb98]
add rcx, 0xff3b2c
call fcn.1400419a0
mov edi, eax
mov rcx, qword [0x14015eb98]
add rcx, 0xff3b1c
call fcn.1400419a0
mov ebx, eax
mov rcx, qword [0x14015eb98]
add rcx, 0xff3b18
call fcn.1400419a0
sub edi, ebx
lea ecx, [rax + 0x58]
lea ecx, [rcx + rsi*4]
add ecx, edi
call fcn.1400419a0
lea ebx, [rax + 8]
mov rcx, qword [0x14015ed70]
cmp rcx, 0xffffffffffffffff
jne 0x14003bb7c
mov eax, ecx
jmp 0x14003bbc6
mov dword [rbp + 0x14c], r15d
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 4
lea rax, [rbp + 0x14c]
mov qword [rsp + 0x20], rax
mov r9d, 4
lea r8, [rbp + 0x14c]
mov edx, 0x2244d8
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov eax, dword [rbp + 0x14c]
mov rcx, qword [0x14015ed70]
cmp rcx, 0xffffffffffffffff
je 0x14003bc42
mov dword [rsp + 0x70], eax
mov eax, ebx
mov qword [rsp + 0x78], rax
lea rax, [rbp + 0x1e0]
mov qword [rbp - 0x80], rax
mov dword [rbp - 0x78], 0x40
mov ecx, 0x20
call fcn.1400443e4
mov rbx, rax
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rbp - 0x80]
movups xmmword [rax + 0x10], xmm1
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r15
mov r9d, 0x20
mov r8, rax
mov edx, 0x2244d0
mov rcx, qword [0x14015ed70]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov edx, 0x20
mov rcx, rbx
call fcn.1400440c8
movaps xmm7, xmm10
movaps xmm6, xmm10
movaps xmm8, xmm10
lea ecx, [r14 + 0xb24]
call fcn.1400419a0
test eax, eax
je 0x14003bcb8
lea ecx, [rax + 0x38]
call fcn.1400419a0
test eax, eax
je 0x14003bcb8
lea ecx, [rax + 0x20]
call fcn.1400419a0
test eax, eax
je 0x14003bcb8
lea edx, [rax + 0xe8]
lea rcx, [rbp + 0x110]
call fcn.140041d40
movsd xmm1, qword [rax]
mov eax, dword [rax + 8]
mov dword [rbp + 0xa4], eax
movss xmm7, dword [rbp + 0xa4]
movaps xmm0, xmm1
shufps xmm0, xmm0, 0x55
movaps xmm6, xmm0
movsd qword [rbp + 0x9c], xmm1
movss xmm8, dword [rbp + 0x9c]
movss dword [rbp - 0x10], xmm8
movss dword [rbp - 8], xmm7
movaps xmm7, xmm10
movss dword [rbp - 0x38], xmm7
movaps xmm11, xmm10
movss dword [rbp - 0x60], xmm10
movaps xmm12, xmm10
movss dword [rbp - 0x5c], xmm10
lea ecx, [r14 + 0x304]
call fcn.1400419a0
test eax, eax
je 0x14003bd46
lea ecx, [rax + 0x50]
call fcn.1400419a0
test eax, eax
je 0x14003bd46
lea edx, [rax + 0x40]
lea rcx, [rbp + 0x11c]
call fcn.140041d40
movsd xmm1, qword [rax]
mov eax, dword [rax + 8]
mov dword [rbp + 0x80], eax
movss xmm7, dword [rbp + 0x80]
movss dword [rbp - 0x38], xmm7
movaps xmm0, xmm1
shufps xmm0, xmm0, 0x55
movaps xmm11, xmm0
movss dword [rbp - 0x60], xmm0
movsd qword [rbp + 0x78], xmm1
movss xmm12, dword [rbp + 0x78]
movss dword [rbp - 0x5c], xmm12
movss dword [rbp], xmm12
movss dword [rbp + 4], xmm11
movss dword [rbp + 8], xmm7
movaps xmm14, xmm10
movaps xmm9, xmm10
movaps xmm15, xmm10
mov rcx, qword [0x14015eb98]
add rcx, 0xffd878
call fcn.1400419a0
test eax, eax
je 0x14003bde5
lea ecx, [rax + 0xaa4]
call fcn.1400419a0
test eax, eax
je 0x14003bde5
lea ecx, [rax + 0x38]
call fcn.1400419a0
test eax, eax
je 0x14003bde5
lea ecx, [rax + 0x20]
call fcn.1400419a0
test eax, eax
je 0x14003bde5
lea edx, [rax + 0xe8]
lea rcx, [rbp + 0x128]
call fcn.140041d40
movsd xmm1, qword [rax]
mov eax, dword [rax + 8]
mov dword [rbp + 0x8c], eax
movss xmm14, dword [rbp + 0x8c]
movaps xmm0, xmm1
shufps xmm0, xmm0, 0x55
movaps xmm9, xmm0
movsd qword [rbp + 0x84], xmm1
movss xmm15, dword [rbp + 0x84]
addss xmm6, dword [0x14004bf3c]
mov esi, r13d
cmp r13d, 0x64
cmovge esi, r12d
movsd xmm0, qword [rbp - 0x10]
shufps xmm0, xmm0, 0xe1
movss xmm0, xmm6
shufps xmm0, xmm0, 0xe1
movsd qword [rbp - 0x10], xmm0
movsd qword [rbp + 0xd0], xmm0
mov eax, dword [rbp - 8]
mov dword [rbp + 0xd8], eax
mov r9d, dword [0x14015ed90]
mov r8d, dword [0x14015eb8c]
lea rdx, [rbp - 0x20]
lea rcx, [rbp + 0xd0]
call fcn.140036580
test al, al
je 0x14003cae0
movsd xmm0, qword [rbp]
movsd qword [rbp + 0xe0], xmm0
mov eax, dword [rbp + 8]
mov dword [rbp + 0xe8], eax
mov r9d, dword [0x14015ed90]
mov r8d, dword [0x14015eb8c]
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0xe0]
call fcn.140036580
test al, al
je 0x14003cae0
movaps xmm2, xmm13
mov ecx, r14d
call fcn.140036b90
test al, al
jne 0x14003bfb8
cmp byte [0x14015ebd2], al
je 0x14003bebd
movups xmm0, xmmword [0x14013ba30]
movups xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call fcn.140002ed0
mov edx, eax
mov ecx, r14d
call fcn.140036990
movss xmm8, dword [rbp - 0x1c]
movss xmm13, dword [rbp - 0x20]
movss xmm6, dword [rbp - 0x2c]
cmp byte [0x14015eb8b], 0
je 0x14003bf3b
movups xmm0, xmmword [0x14013ba60]
movups xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call fcn.140002ed0
mov dword [rbp + 0x150], eax
movaps xmm0, xmm8
subss xmm0, xmm6
comiss xmm10, xmm0
jbe 0x14003bf09
mulss xmm0, dword [0x14004c0b8]
cvttss2si r9d, xmm0
mov eax, r9d
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
cdq
sub eax, edx
sar eax, 1
cvttss2si ecx, xmm13
sub ecx, eax
cvttss2si edx, xmm8
lea rax, [rbp + 0x150]
mov qword [rsp + 0x20], rax
call fcn.140030e50
cmp byte [0x14015ebad], 0
je 0x14003c0f8
movups xmm0, xmmword [0x14013ba10]
movups xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call fcn.140002ed0
mov r9d, eax
cvttss2si r8d, xmm6
cvttss2si ecx, dword [rbp - 0x30]
mov eax, dword [0x14015eb8c]
cdq
sub eax, edx
sar eax, 1
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x48], xmm0
movd xmm1, r8d
cvtdq2ps xmm1, xmm1
movss dword [rbp + 0x4c], xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x50], xmm0
movd xmm1, dword [0x14015ed90]
cvtdq2ps xmm1, xmm1
movss dword [rbp + 0x54], xmm1
lea r8, [rbp + 0x48]
lea rdx, [rbp + 0x50]
jmp 0x14003c0d7
cmp byte [0x14015ebd2], 0
je 0x14003bfe1
movups xmm0, xmmword [0x14013ba20]
movups xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call fcn.140002ed0
mov edx, eax
mov ecx, r14d
call fcn.140036990
movss xmm8, dword [rbp - 0x1c]
movss xmm13, dword [rbp - 0x20]
movss xmm6, dword [rbp - 0x2c]
cmp byte [0x14015eb8b], 0
je 0x14003c05f
movups xmm0, xmmword [0x14013ba20]
movups xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call fcn.140002ed0
mov dword [rbp + 0x150], eax
movaps xmm0, xmm8
subss xmm0, xmm6
comiss xmm10, xmm0
jbe 0x14003c02d
mulss xmm0, dword [0x14004c0b8]
cvttss2si r9d, xmm0
mov eax, r9d
cdq
sub eax, edx
sar eax, 1
mov r8d, eax
cdq
sub eax, edx
sar eax, 1
cvttss2si ecx, xmm13
sub ecx, eax
cvttss2si edx, xmm8
lea rax, [rbp + 0x150]
mov qword [rsp + 0x20], rax
call fcn.140030e50
cmp byte [0x14015ebad], 0
je 0x14003c0f8
movups xmm0, xmmword [0x14013ba20]
movups xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call fcn.140002ed0
mov r9d, eax
cvttss2si r8d, xmm6
cvttss2si ecx, dword [rbp - 0x30]
mov eax, dword [0x14015eb8c]
cdq
sub eax, edx
sar eax, 1
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x58], xmm0
movd xmm1, r8d
cvtdq2ps xmm1, xmm1
movss dword [rbp + 0x5c], xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x60], xmm0
movd xmm1, dword [0x14015ed90]
cvtdq2ps xmm1, xmm1
movss dword [rbp + 0x64], xmm1
lea r8, [rbp + 0x58]
lea rdx, [rbp + 0x60]
movss xmm0, dword [0x14004bfd4]
mov rcx, qword [0x14015eb90]
movss dword [rsp + 0x20], xmm0
add rcx, 0x1cc8
call fcn.14001d4f0
movaps xmm0, xmm8
subss xmm0, xmm6
movaps xmm1, xmm0
movss xmm2, dword [0x14004c0b8]
comiss xmm10, xmm1
jbe 0x14003c115
mulss xmm1, xmm2
cvttss2si eax, xmm1
cdq
sub eax, edx
sar eax, 1
cvttss2si ebx, xmm13
lea r12d, [rbx + rax]
cvttss2si r15d, xmm8
cmp byte [0x14015ebbc], 0
je 0x14003c204
xor ecx, ecx
test si, si
cmovne cx, si
comiss xmm10, xmm0
jbe 0x14003c14c
mulss xmm0, xmm2
cvttss2si r9d, xmm0
mov eax, r9d
cdq
and edx, 3
add eax, edx
sar eax, 2
sub ebx, eax
subss xmm6, xmm8
movzx eax, cx
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm6
divss xmm0, dword [0x14004c06c]
cvttss2si rdi, xmm0
cmp cx, 0x4c
jb 0x14003c18e
movaps xmm0, xmmword [0x14013b610]
jmp 0x14003c1a4
cmp cx, 0x28
jbe 0x14003c19d
movaps xmm0, xmmword [0x14013b6c0]
jmp 0x14003c1a4
movaps xmm0, xmmword [0x14013b5d0]
movups xmmword [rsp + 0x70], xmm0
add r9d, 2
lea edx, [r15 - 1]
lea ecx, [rbx - 6]
lea rax, [0x14013b770]
mov qword [rsp + 0x20], rax
mov r8d, 5
call fcn.1400315e0
mov eax, edi
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
subss xmm6, xmm0
movd xmm1, r15d
cvtdq2ps xmm1, xmm1
addss xmm6, xmm1
cvttss2si edx, xmm6
lea ecx, [rbx - 5]
lea rax, [rsp + 0x70]
mov qword [rsp + 0x20], rax
mov r9d, edi
mov r8d, 3
call fcn.1400315e0
cmp byte [0x14015ebaa], 0
je 0x14003c67b
movaps xmm12, xmm13
subss xmm12, dword [0x14004c068]
movaps xmm11, xmm8
subss xmm11, dword [0x14004c064]
mov dword [rbp + 0xa8], 9
mov dword [rbp + 0xac], 9
mov dword [rbp + 0xb0], 9
mov dword [rbp + 0xb4], 0xff
mov dword [rbp + 0xb8], 0x1c
mov dword [rbp + 0xbc], 0x36
mov dword [rbp + 0xc0], 0x3a
mov dword [rbp + 0xc4], 0xff
cvttss2si ebx, xmm11
cvttss2si edi, xmm12
lea rax, [rbp + 0xa8]
mov qword [rsp + 0x20], rax
mov r9d, 0x1a
mov r8d, 0x9b
mov edx, ebx
mov ecx, edi
call fcn.1400315e0
lea rax, [rbp + 0xb8]
mov qword [rsp + 0x20], rax
mov r9d, 0x19
lea r8d, [r9 + 5]
mov edx, ebx
mov ecx, edi
call fcn.1400315e0
movaps xmm1, xmm15
subss xmm1, dword [rbp - 0x5c]
movaps xmm2, xmm9
subss xmm2, dword [rbp - 0x60]
movaps xmm0, xmm14
subss xmm0, xmm7
mulss xmm2, xmm2
mulss xmm1, xmm1
addss xmm2, xmm1
mulss xmm0, xmm0
addss xmm2, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm2
ja 0x14003c304
xorps xmm0, xmm0
sqrtss xmm0, xmm2
jmp 0x14003c30c
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
mov dword [rsp + 0x58], 0x9ad5cadc
mov word [rsp + 0x5c], 0x100
xor ecx, ecx
nop dword [rax]
lea eax, [rcx - 7]
xor byte [rsp + rcx + 0x58], al
inc rcx
cmp rcx, 4
jb 0x14003c320
mov byte [rsp + 0x5d], 0
xorps xmm2, xmm2
cvtss2sd xmm2, xmm0
movq r8, xmm2
lea rdx, [rsp + 0x58]
lea rcx, [rbp + 0x158]
call fcn.140013760
mov dword [rbp + 0x38], 0
mov dword [rbp + 0x3c], 0xcb
mov dword [rbp + 0x40], 0xff
mov dword [rbp + 0x44], 0xff
movaps xmm0, xmm11
movss xmm7, dword [0x14004c024]
addss xmm0, xmm7
cvttss2si ebx, xmm0
movaps xmm1, xmm12
addss xmm1, dword [0x14004c03c]
cvttss2si edx, xmm1
lea rax, [rbp + 0x158]
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
lea r9, [rbp + 0x38]
mov r8d, ebx
movss xmm6, dword [0x14004c048]
movaps xmm0, xmm6
movd ecx, xmm0
call fcn.14002ef50
mov dword [rsp + 0x60], 0xb4f193dc
mov word [rsp + 0x64], 0xad
mov byte [rsp + 0x66], 1
xor ecx, ecx
nop dword [rax]
lea eax, [rcx - 7]
xor byte [rsp + rcx + 0x60], al
inc rcx
cmp rcx, 5
jb 0x14003c3e0
mov byte [rsp + 0x66], 0
mov r8d, r13d
lea rdx, [rsp + 0x60]
lea rcx, [rbp + 0x178]
call fcn.1400423f0
movaps xmm0, xmm11
subss xmm0, xmm7
cvttss2si r8d, xmm0
movaps xmm1, xmm12
addss xmm1, dword [0x14004c078]
cvttss2si edx, xmm1
lea rax, [rbp + 0x178]
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
lea r9, [rbp + 0x38]
movaps xmm0, xmm6
movd ecx, xmm0
call fcn.14002ef50
mov dword [rbp - 0x58], 0x239623dc
mov dword [rbp - 0x54], 0x2388
xor eax, eax
mov byte [rbp - 0x50], 1
mov ecx, eax
mov edx, 0x23f9
nop word [rax + rax]
lea eax, [rdx + rcx]
xor word [rbp + rcx*2 - 0x58], ax
inc rcx
cmp rcx, 3
jb 0x14003c470
mov byte [rbp - 0x50], 0
lea r9, [rbp + 0x1e0]
lea r8, [rbp - 0x58]
mov edx, 0x20
lea rcx, [rbp + 0x220]
call fcn.14002c350
mov dword [rbp + 0x10], 0xc9
mov dword [rbp + 0x14], 0x10
mov dword [rbp + 0x18], 0x10
mov dword [rbp + 0x1c], 0xff
movaps xmm0, xmm12
addss xmm0, dword [0x14004c060]
cvttss2si edx, xmm0
lea rax, [rbp + 0x220]
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
lea r9, [rbp + 0x10]
mov r8d, ebx
movaps xmm0, xmm6
movd ecx, xmm0
call fcn.14002f770
addss xmm11, dword [0x14004c05c]
movaps xmm0, xmmword [0x14004cd30]
movups xmmword [rsp + 0x70], xmm0
movaps xmm7, xmm12
addss xmm7, dword [0x14004c088]
movaps xmm0, xmm7
movss xmm2, dword [0x14004bfd4]
subss xmm0, xmm2
movss dword [rbp + 0x68], xmm0
movaps xmm6, xmm11
addss xmm6, dword [0x14004c030]
movaps xmm0, xmm6
subss xmm0, xmm2
movss dword [rbp + 0x6c], xmm0
movaps xmm1, xmm12
addss xmm1, xmm2
movss dword [rbp + 0x70], xmm1
movaps xmm0, xmm11
addss xmm0, xmm2
movss dword [rbp + 0x74], xmm0
lea rcx, [rsp + 0x70]
call fcn.140002ed0
mov r9d, eax
mov rcx, qword [0x14015eb90]
add rcx, 0x1cc8
movss xmm0, dword [0x14004bfd4]
movss dword [rsp + 0x30], xmm0
mov dword [rsp + 0x28], 0xf
movss dword [rsp + 0x20], xmm10
lea r8, [rbp + 0x68]
lea rdx, [rbp + 0x70]
call fcn.14001d670
movaps xmm0, xmmword [0x14004cd30]
movups xmmword [rsp + 0x70], xmm0
movss dword [rsp + 0x50], xmm7
movss dword [rsp + 0x54], xmm6
movss dword [rbp + 0x140], xmm12
movss dword [rbp + 0x144], xmm11
lea rcx, [rsp + 0x70]
call fcn.140002ed0
mov r9d, eax
mov rcx, qword [0x14015eb90]
add rcx, 0x1cc8
movss xmm0, dword [0x14004bfd4]
movss dword [rsp + 0x30], xmm0
mov dword [rsp + 0x28], 0xf
movss dword [rsp + 0x20], xmm10
lea r8, [rsp + 0x50]
lea rdx, [rbp + 0x140]
call fcn.14001d670
lea rdx, [0x14013b5f0]
cmp esi, 0x32
lea rax, [0x14013b610]
cmovge rdx, rax
lea r9, [0x14013b5d0]
cmp esi, 0x14
cmovge r9, rdx
mov eax, esi
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x14004bff4]
cvttss2si r8d, xmm0
cvttss2si edx, xmm11
mov qword [rsp + 0x20], r9
mov r9d, 6
mov ecx, edi
call fcn.1400315e0
movss xmm7, dword [rbp - 0x38]
movss xmm11, dword [rbp - 0x60]
movss xmm12, dword [rbp - 0x5c]
xor ebx, ebx
cmp byte [0x14015ebd5], bl
je 0x14003c741
mov dword [rbp - 0x48], 0x239623dc
mov dword [rbp - 0x44], 0x2388
mov byte [rbp - 0x40], 1
mov ecx, ebx
mov edx, 0x23f9
nop dword [rax]
nop word [rax + rax]
lea eax, [rdx + rcx]
xor word [rbp + rcx*2 - 0x48], ax
inc rcx
cmp rcx, 3
jb 0x14003c6b0
mov byte [rbp - 0x40], bl
lea r9, [rbp + 0x1e0]
lea r8, [rbp - 0x48]
mov edx, 0x20
lea rcx, [rbp + 0x260]
call fcn.14002c350
movups xmm0, xmmword [0x14013ba40]
movups xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call fcn.140002ed0
subss xmm8, dword [0x14004c050]
cvttss2si r8d, xmm8
subss xmm13, dword [0x14004c05c]
cvttss2si edx, xmm13
lea rcx, [rbp + 0x260]
mov qword [rsp + 0x30], rcx
mov byte [rsp + 0x28], bl
mov byte [rsp + 0x20], bl
mov r9d, eax
movss xmm8, dword [0x14004c048]
movaps xmm0, xmm8
movd ecx, xmm0
call fcn.1400306e0
jmp 0x14003c74a
movss xmm8, dword [0x14004c048]
cmp byte [0x14015ed97], 0
je 0x14003c7db
mov dword [rsp + 0x68], 0xb4db93dc
mov word [rsp + 0x6c], 0xad
mov byte [rsp + 0x6e], 1
mov rcx, rbx
nop
lea eax, [rcx - 7]
xor byte [rsp + rcx + 0x68], al
inc rcx
cmp rcx, 5
jb 0x14003c770
mov byte [rsp + 0x6e], 0
mov r8d, r13d
lea rdx, [rsp + 0x68]
lea rcx, [rbp + 0x198]
call fcn.1400423f0
movups xmm0, xmmword [str.L7_t_]
movups xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call fcn.140002ed0
mov r9d, eax
lea rax, [rbp + 0x198]
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
mov r8d, r15d
mov edx, r12d
movaps xmm0, xmm8
movd ecx, xmm0
call fcn.14002ff60
cmp byte [0x14015ed80], 0
je 0x14003c8dd
subss xmm15, xmm12
subss xmm9, xmm11
subss xmm14, xmm7
mulss xmm9, xmm9
mulss xmm15, xmm15
addss xmm9, xmm15
mulss xmm14, xmm14
addss xmm9, xmm14
xorps xmm0, xmm0
ucomiss xmm0, xmm9
ja 0x14003c823
xorps xmm0, xmm0
sqrtss xmm0, xmm9
jmp 0x14003c82c
movaps xmm0, xmm9
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
mov dword [rbp - 0x70], 0xd2cbdfa2
mov dword [rbp - 0x6c], 0xa298cd
mov byte [rbp - 0x68], 1
mov rcx, rbx
nop dword [rax]
nop word [rax + rax]
lea eax, [rcx - 7]
xor byte [rbp + rcx - 0x70], al
inc rcx
cmp rcx, 7
jb 0x14003c850
mov byte [rbp - 0x68], 0
xorps xmm2, xmm2
cvtss2sd xmm2, xmm0
movq r8, xmm2
lea rdx, [rbp - 0x70]
lea rcx, [rbp + 0x1b8]
call fcn.140013760
movd xmm6, r15d
cvtdq2ps xmm6, xmm6
cmp byte [0x14015ed97], 0
je 0x14003c899
addss xmm6, dword [0x14004c04c]
movups xmm0, xmmword [0x14013ba70]
movups xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call fcn.140002ed0
mov r9d, eax
cvttss2si r8d, xmm6
lea rax, [rbp + 0x1b8]
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
mov edx, r12d
movaps xmm0, xmm8
movd ecx, xmm0
call fcn.14002ff60
movss xmm13, dword [0x14004c0bc]
cmp byte [0x14015eba9], 0
je 0x14003cad7
movaps xmm2, xmm13
mov ecx, r14d
call fcn.140036be0
xor r15d, r15d
test al, al
jne 0x14003cada
mov edx, r15d
mov qword [rbp + 0x24], rdx
mov dword [rbp + 0x20], edx
mov ecx, dword [0x14015ee38]
test ecx, ecx
je 0x14003c965
sub ecx, 1
je 0x14003c95e
cmp ecx, 1
jne 0x14003c96a
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_time_l1_1_0.dll__time64]
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_srand]
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
and eax, 0x80000001
jge 0x14003c94d
dec eax
or eax, 0xfffffffe
inc eax
mov edx, 2
test eax, eax
mov eax, 5
cmove edx, eax
jmp 0x14003c96a
mov edx, 2
jmp 0x14003c96a
mov edx, 5
movaps xmm6, xmm10
movaps xmm8, xmm10
movaps xmm7, xmm10
lea rax, [0x14004b900]
mov eax, dword [rax + rdx*4]
lea ecx, [r14 + 0x568]
add ecx, eax
call fcn.1400419a0
test eax, eax
je 0x14003c9ec
lea ecx, [rax + 0x38]
call fcn.1400419a0
test eax, eax
je 0x14003c9ec
lea ecx, [rax + 0x20]
call fcn.1400419a0
test eax, eax
je 0x14003c9ec
lea edx, [rax + 0xe8]
lea rcx, [rbp + 0x134]
call fcn.140041d40
movsd xmm1, qword [rax]
mov eax, dword [rax + 8]
mov dword [rbp + 0x98], eax
movss xmm6, dword [rbp + 0x98]
movaps xmm0, xmm1
shufps xmm0, xmm0, 0x55
movaps xmm8, xmm0
movsd qword [rbp + 0x90], xmm1
movss xmm7, dword [rbp + 0x90]
movss dword [rbp + 0x108], xmm6
movaps xmm0, xmm7
unpcklps xmm0, xmm8
movsd qword [rbp + 0xf0], xmm0
mov eax, dword [rbp + 0x108]
mov dword [rbp + 0xf8], eax
mov r9d, dword [0x14015ed90]
mov r8d, dword [0x14015eb8c]
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0xf0]
call fcn.140036580
test al, al
je 0x14003cada
mov eax, dword [0x14015eb8c]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm6, dword [rbp + 0x20]
subss xmm6, xmm0
mov eax, dword [0x14015ed90]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss xmm7, dword [rbp + 0x24]
subss xmm7, xmm0
movaps xmm1, xmm7
mulss xmm1, xmm7
movaps xmm0, xmm6
mulss xmm0, xmm6
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x14003ca8e
xorps xmm0, xmm0
sqrtss xmm0, xmm1
jmp 0x14003ca96
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movss xmm9, dword [rbp - 0x34]
comiss xmm9, xmm0
jbe 0x14003cada
movss xmm1, dword [0x14015dffc]
mov r12d, 0x64
comiss xmm1, xmm0
jbe 0x14003cae0
movss dword [rbp - 0x34], xmm0
movaps xmm8, xmm6
movss dword [rsp + 0x48], xmm6
movaps xmm6, xmm7
movss dword [rsp + 0x44], xmm7
mov dil, 1
mov byte [rsp + 0x40], dil
jmp 0x14003caf2
xor r15d, r15d
mov r12d, 0x64
movss xmm8, dword [rsp + 0x48]
movss xmm6, dword [rsp + 0x44]
movzx edi, byte [rsp + 0x40]
mov eax, dword [rbp + 0x148]
inc eax
mov dword [rbp + 0x148], eax
cmp eax, 0xf
mov esi, eax
jle 0x14003ba12
movss xmm12, dword [0x14004c03c]
mov ebx, dword [rbp + 0x30]
cmp byte [0x14015eba9], 0
je 0x14003cbc0
test dil, dil
je 0x14003cbc0
mov dword [rsp + 0x70], 1
mov dword [rsp + 0x74], 2
mov dword [rsp + 0x78], 0x10
mov dword [rsp + 0x7c], 0x14
mov dword [rbp - 0x80], 9
mov dword [rbp - 0x7c], 0x12
mov dword [rbp - 0x78], 0x11
movzx eax, byte [0x14015edb0]
cmp al, 1
je 0x14003cb89
test al, al
jne 0x14003cbc0
movsxd rax, dword [0x14015e1c0]
mov ecx, dword [rsp + rax*4 + 0x70]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
shr eax, 0xf
test al, 1
je 0x14003cbc0
divss xmm8, dword [0x14015e1c4]
ucomiss xmm8, xmm10
divss xmm6, dword [0x14015e1c4]
jp 0x14003cba6
je 0x14003d209
ucomiss xmm6, xmm10
jp 0x14003cbb2
je 0x14003d209
cvttss2si edx, xmm6
cvttss2si ecx, xmm8
call fcn.140031b00
movss xmm11, dword [0x14004bf74]
cmp byte [0x14015ebd4], 0
je 0x14003cc33
test ebx, ebx
jne 0x14003cc3b
mov rcx, qword [0x14015eb98]
add rcx, 0xff3cf0
call fcn.1400419a0
mov edi, eax
mov rcx, qword [0x14015eb98]
add rcx, 0xff3c6c
call fcn.1400419a0
sub edi, eax
mov rcx, qword [0x14015eb98]
add rcx, 0xff3c68
call fcn.1400419a0
add edi, eax
mov ebx, r15d
test edi, edi
je 0x14003cc27
lea ecx, [rdi + 0xc]
lea ecx, [rcx + rbx*4]
call fcn.140042450
inc ebx
cmp ebx, 0xa
jl 0x14003cc18
jmp 0x14003cee8
test ebx, ebx
je 0x14003cee8
lea ecx, [rbx + 0xa40]
call fcn.1400419a0
test eax, eax
je 0x14003cc93
mov ecx, eax
call fcn.1400419a0
mov ebx, eax
test eax, eax
je 0x14003cc93
cmp byte [0x14015ebd6], 0
je 0x14003cc6b
lea ecx, [rax + 0x1ec]
call fcn.140042450
cmp byte [0x14015ebac], 0
je 0x14003cc7f
lea ecx, [rbx + 0x1b0]
call fcn.140042450
cmp byte [0x14015ebca], 0
je 0x14003cc93
lea ecx, [rbx + 0x264]
call fcn.140042450
mov ecx, dword [0x14004ba08]
add rcx, qword [0x14015eb98]
call fcn.1400419a0
mov edi, eax
mov ecx, dword [0x14004ba10]
add rcx, qword [0x14015eb98]
call fcn.1400419a0
mov ebx, eax
mov ecx, dword [0x14004ba0c]
add rcx, qword [0x14015eb98]
call fcn.1400419a0
sub edi, ebx
lea ebx, [rax + rdi]
mov rcx, qword [0x14015eb98]
add rcx, 0xffd878
call fcn.1400419a0
lea ecx, [rbx + 8]
call fcn.1400419a0
mov edx, eax
cmp byte [0x14015ebbf], 0
je 0x14003cd01
mov byte [0x14015eb89], 1
jmp 0x14003cd16
movzx eax, byte [0x14015eb89]
mov ecx, eax
cmp al, 1
cmove ecx, r15d
mov byte [0x14015eb89], cl
cmp byte [0x14015ebd7], 0
je 0x14003cd74
mov eax, dword [0x14013b574]
test eax, eax
jne 0x14003cd33
movss xmm1, dword [0x14004bf3c]
jmp 0x14003cd5a
cmp eax, 1
jne 0x14003cd42
movss xmm1, dword [0x14004bf5c]
jmp 0x14003cd5a
cmp eax, 2
jne 0x14003cd4d
movaps xmm1, xmm11
jmp 0x14003cd5a
cmp eax, 3
jne 0x14003cd6b
movss xmm1, dword [0x14004bf90]
lea eax, [rdx*8 + 0xa739]
add eax, edx
lea ecx, [rbx + rax*4]
call fcn.140042580
mov byte [0x14015ed95], 1
jmp 0x14003cd99
cmp byte [0x14015ed95], 1
jne 0x14003cd99
lea eax, [rdx*8 + 0xa739]
add eax, edx
lea ecx, [rbx + rax*4]
movaps xmm1, xmm10
call fcn.140042580
mov byte [0x14015ed95], 0
cmp byte [0x14015ebab], 0
je 0x14003cdab
mov byte [0x14015ed83], 1
jmp 0x14003cdc0
movzx eax, byte [0x14015ed83]
mov ecx, eax
cmp al, 1
cmove ecx, r15d
mov byte [0x14015ed83], cl
cmp byte [0x14015ebae], 0
je 0x14003cee8
mov rcx, qword [0x14015eb98]
add rcx, 0xff3c1c
call fcn.1400419a0
mov ebx, eax
mov ecx, 0x79
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test al, 1
je 0x14003cee8
mov ecx, 1
call fcn.1400443e4
mov rdi, rax
mov byte [rax], 4
mov qword [rbp + 0x140], rax
mov rcx, qword [0x14015ed70]
cmp rcx, 0xffffffffffffffff
je 0x14003cedb
mov dword [rbp + 0x148], r15d
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], 4
lea rax, [rbp + 0x148]
mov qword [rsp + 0x20], rax
mov r9d, 4
lea r8, [rbp + 0x148]
mov edx, 0x2244d8
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
cmp qword [0x14015ed70], 0xffffffffffffffff
je 0x14003cedb
mov eax, dword [rbp + 0x148]
mov dword [rsp + 0x70], eax
lea ecx, [rbx + 0x3c]
mov qword [rsp + 0x78], rcx
mov qword [rbp - 0x80], rdi
mov dword [rbp - 0x78], 1
mov ecx, 0x20
call fcn.1400443e4
mov rbx, rax
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rbp - 0x80]
movups xmmword [rax + 0x10], xmm1
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x30], r15
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], r15
mov r9d, 0x20
mov r8, rax
mov edx, 0x2244d4
mov rcx, qword [0x14015ed70]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
mov edx, 0x20
mov rcx, rbx
call fcn.1400440c8
nop
mov edx, 1
mov rcx, rdi
call fcn.1400440c8
cmp byte [0x14015eb8a], 0
je 0x14003d0e1
mov rax, qword [0x14015eb90]
movss xmm8, dword [rax + 0x10]
movss xmm9, dword [rax + 0x14]
mulss xmm8, xmm11
mulss xmm9, xmm11
lea rdi, [rax + 0x1cc8]
movups xmm0, xmmword [0x14013ba50]
movups xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call fcn.140002ed0
mov r8d, eax
movzx ecx, al
xorps xmm0, xmm0
cvtsi2ss xmm0, rcx
movss xmm1, dword [0x14004bee0]
mulss xmm0, xmm1
movss dword [rbp + 0x10], xmm0
mov ecx, eax
shr ecx, 8
movzx ecx, cl
xorps xmm0, xmm0
cvtsi2ss xmm0, rcx
mulss xmm0, xmm1
movss dword [rbp + 0x14], xmm0
mov ecx, eax
shr ecx, 0x10
movzx eax, cl
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mulss xmm0, xmm1
movss dword [rbp + 0x18], xmm0
shr r8d, 0x18
mov eax, r8d
xorps xmm0, xmm0
cvtsi2ss xmm0, rax
mulss xmm0, xmm1
movss dword [rbp + 0x1c], xmm0
movaps xmm1, xmm8
subss xmm1, xmm12
movss dword [rsp + 0x50], xmm1
movss dword [rsp + 0x54], xmm9
movaps xmm0, xmm8
addss xmm0, xmm12
movss dword [rbp + 0x140], xmm0
movss dword [rbp + 0x144], xmm9
lea rcx, [rbp + 0x10]
call fcn.140002ed0
mov ebx, eax
movss xmm7, dword [0x14004bf30]
movss dword [rsp + 0x20], xmm7
mov r9d, eax
lea r8, [rbp + 0x140]
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.14001d4f0
movss dword [rsp + 0x50], xmm8
movaps xmm0, xmm9
subss xmm0, xmm12
movss dword [rsp + 0x54], xmm0
movss dword [rbp + 0x140], xmm8
movaps xmm1, xmm9
addss xmm1, xmm12
movss dword [rbp + 0x144], xmm1
movss dword [rsp + 0x20], xmm7
mov r9d, ebx
lea r8, [rbp + 0x140]
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.14001d4f0
movaps xmm0, xmm8
movss xmm6, dword [0x14004bfe8]
subss xmm0, xmm6
movss dword [rsp + 0x50], xmm0
movss dword [rsp + 0x54], xmm9
movaps xmm0, xmm8
addss xmm0, xmm6
movss dword [rbp + 0x140], xmm0
movss dword [rbp + 0x144], xmm9
movss dword [rsp + 0x20], xmm7
mov r9d, ebx
lea r8, [rbp + 0x140]
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.14001d4f0
movss dword [rsp + 0x50], xmm8
movaps xmm0, xmm9
subss xmm0, xmm6
movss dword [rsp + 0x54], xmm0
movss dword [rbp + 0x140], xmm8
addss xmm9, xmm6
movss dword [rbp + 0x144], xmm9
movss dword [rsp + 0x20], xmm7
mov r9d, ebx
lea r8, [rbp + 0x140]
lea rdx, [rsp + 0x50]
mov rcx, rdi
call fcn.14001d4f0
cmp byte [0x14015ebbd], 0
je 0x14003d209
movups xmm0, xmmword [0x140056050]
movups xmmword [rsp + 0x70], xmm0
lea rcx, [rsp + 0x70]
call fcn.140002ed0
mov esi, eax
movss xmm2, dword [0x14015dffc]
movaps xmm0, xmm2
mulss xmm0, xmm11
cvttss2si ecx, xmm0
mov eax, dword [0x14015eb8c]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x140], xmm0
mov eax, dword [0x14015ed90]
cdq
sub eax, edx
sar eax, 1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rbp + 0x144], xmm0
mov rdi, qword [0x14015eb90]
add rdi, 0x1cc8
test esi, 0xff000000
je 0x14003d209
movd xmm0, ecx
cvtdq2ps xmm0, xmm0
movaps xmm1, xmm0
movss xmm6, dword [0x14004bfd4]
subss xmm1, xmm6
mulss xmm1, dword [0x14004c034]
divss xmm1, xmm0
cvttss2si eax, xmm2
movd xmm2, eax
cvtdq2ps xmm2, xmm2
subss xmm2, xmm11
mov dword [rsp + 0x28], ecx
movss dword [rsp + 0x20], xmm1
movaps xmm3, xmm10
lea rdx, [rbp + 0x140]
mov rcx, rdi
call fcn.14001cfb0
movss dword [rsp + 0x28], xmm6
mov byte [rsp + 0x20], 1
mov r9d, esi
mov r8d, dword [rdi + 0x80]
mov rdx, qword [rdi + 0x88]
mov rcx, rdi
call fcn.14001b8a0
mov ecx, dword [rdi + 0x84]
test ecx, ecx
jns 0x14003d202
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
mov edx, r15d
test eax, eax
cmovg edx, eax
lea rcx, [rdi + 0x80]
call fcn.140012d30
mov dword [rdi + 0x80], r15d
mov rcx, qword [rbp + 0x2a0]
xor rcx, rsp
call fcn.140043b20
lea r11, [rsp + 0x450]
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