Function at 0x180016160
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x1a8]
sub rsp, 0x280
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 [0x1800a9010]
xor rax, rsp
mov qword [rbp + 0xd0], rax
mov r15, rcx
xor esi, esi
mov dword [rsp + 0x20], esi
cmp byte [rcx + 0x30], sil
je 0x1800179dd
call fcn.180002400
mov rcx, rax
call fcn.180002a90
test al, al
je 0x1800179dd
cmp byte [0x1800ac610], sil
jne 0x1800179dd
cmp byte [r15 + 0x55], sil
je 0x18001623c
lea ecx, [rsi + 1]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jne 0x18001623c
mov dword [r15 + 0x48], 0x7fc00000
mov dword [r15 + 0x4c], 0x7fc00000
mov dword [r15 + 0x50], 0x7fc00000
jmp 0x1800179dd
mov rax, qword [0x1800ac618]
mov r13, qword [rax + 8]
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac8f0]
mov rdx, qword [r13]
call r9
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac8f8]
mov rdx, qword [r13]
call r9
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac878]
mov rdx, qword [r13]
call r9
lea rdx, [rsp + 0x28]
mov rcx, r13
call fcn.18007bf90
lea rdx, [rsp + 0x68]
mov rcx, r13
call fcn.18007c0b0
call fcn.180002400
mov rdx, qword [rax + 0xa0]
test rdx, rdx
je 0x1800162ec
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r8, qword [rax + 0xa8]
call r8
mov qword [rbp + 0xb0], rax
jmp 0x1800162f3
mov qword [rbp + 0xb0], rsi
xor edi, edi
mov qword [rbp + 0xa8], rdi
movss xmm13, dword [0x180098f8c]
movss xmm14, dword [0x180098f4c]
movaps xmm15, xmm13
movss xmm0, dword [r15 + 0x64]
movss dword [rsp + 0x38], xmm0
lea rdx, [rbp + 0xb8]
lea rcx, [rbp + 0xb0]
call fcn.180010c20
nop
mov r12, qword [rbp + 0xb8]
movss xmm11, dword [rsp + 0x6c]
movss dword [rsp + 0x24], xmm11
movss xmm10, dword [0x180099240]
movsd xmm8, qword [0x180098dc8]
cmp r12, qword [rbp + 0xc0]
je 0x180017288
mov rcx, qword [0x1800ac608]
nop dword [rax]
mov rdx, qword [r12]
test rdx, rdx
je 0x18001639c
mov rax, qword [rcx]
mov r8, qword [rax + 0xa8]
call r8
mov rbx, rax
mov qword [rbp + 0xa0], rax
mov r14, rax
mov rcx, qword [0x1800ac608]
jmp 0x1800163a8
xor ebx, ebx
mov qword [rbp + 0xa0], rbx
xor r14d, r14d
test r14, r14
je 0x180017256
mov rax, qword [rcx]
mov r9, qword [rax + 0xc0]
xor r8d, r8d
mov rdx, rbx
call r9
mov rcx, qword [0x1800ac608]
test al, al
jne 0x180017256
mov rax, qword [rcx]
mov r9, qword [rax + 0xc0]
xor r8d, r8d
mov rdx, rbx
call r9
test al, al
jne 0x1800168a7
lea rdx, [rbp + 0x80]
lea rcx, [rbp + 0xa0]
call fcn.18007bb10
nop
or esi, 1
mov dword [rsp + 0x20], esi
mov rcx, rax
cmp qword [rax + 0x18], 0x10
jb 0x180016416
mov rcx, qword [rax]
cmp qword [rax + 0x10], 9
jb 0x18001643c
mov r8d, 9
lea rdx, [0x1800941a8]
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
sete al
test al, al
jne 0x1800168a0
mov rbx, qword [rbp + 0xa0]
test rbx, rbx
je 0x1800164e7
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0xc0]
xor r8d, r8d
mov rdx, rbx
call r9
test al, al
jne 0x1800164e7
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x300]
mov r8, qword [0x1800ac8d0]
mov rdx, rbx
call r9
test al, al
jne 0x1800164e7
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0xc0]
xor r8d, r8d
mov rdx, rbx
call r9
test al, al
jne 0x1800164c4
mov r8, qword [0x1800ac8a0]
mov rdx, rbx
mov rcx, qword [0x1800ac608]
call fcn.180023f20
test al, al
je 0x1800164e7
lea rdx, [rbp + 0x60]
lea rcx, [rbp + 0xa0]
call fcn.18007bb10
nop
or esi, 2
mov dword [rsp + 0x20], esi
cmp qword [rax + 0x10], 2
jae 0x1800168a0
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0xa0]
call fcn.18007bb10
nop
or esi, 4
mov dword [rsp + 0x20], esi
mov r14, rax
cmp qword [rax + 0x18], 0x10
jb 0x18001650c
mov r14, qword [rax]
mov r8, qword [rax + 0x10]
cmp r8, 1
jb 0x18001656c
lea rbx, [r8 + r14]
mov edx, 0x5d
mov rcx, r14
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x18001656c
nop dword [rax]
cmp byte [rax], 0x5d
jne 0x180016539
xor ecx, ecx
jmp 0x18001653e
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x18001655f
inc rax
mov r8, rbx
sub r8, rax
mov edx, 0x5d
mov rcx, rax
call sub.VCRUNTIME140.dll_memchr
test rax, rax
jne 0x180016530
jmp 0x18001656c
sub rax, r14
cmp rax, 0xffffffffffffffff
jne 0x1800168a0
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0xa0]
call fcn.18007bb10
nop
or esi, 8
mov dword [rsp + 0x20], esi
mov r14, rax
cmp qword [rax + 0x18], 0x10
jb 0x180016591
mov r14, qword [rax]
mov r8, qword [rax + 0x10]
cmp r8, 1
jb 0x1800165ed
lea rbx, [r8 + r14]
mov edx, 0x5b
mov rcx, r14
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x1800165ed
cmp byte [rax], 0x5b
jne 0x1800165ba
xor ecx, ecx
jmp 0x1800165bf
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x1800165e0
inc rax
mov r8, rbx
sub r8, rax
mov edx, 0x5b
mov rcx, rax
call sub.VCRUNTIME140.dll_memchr
test rax, rax
jne 0x1800165b1
jmp 0x1800165ed
sub rax, r14
cmp rax, 0xffffffffffffffff
jne 0x1800168a0
lea rdx, [rbp]
lea rcx, [rbp + 0xa0]
call fcn.18007bb10
nop
or esi, 0x10
mov dword [rsp + 0x20], esi
mov r14, rax
cmp qword [rax + 0x18], 0x10
jb 0x180016612
mov r14, qword [rax]
mov r8, qword [rax + 0x10]
cmp r8, 1
jb 0x18001666e
lea rbx, [r8 + r14]
mov edx, 0x2d
mov rcx, r14
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x18001666e
cmp byte [rax], 0x2d
jne 0x18001663b
xor ecx, ecx
jmp 0x180016640
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x180016661
inc rax
mov r8, rbx
sub r8, rax
mov edx, 0x2d
mov rcx, rax
call sub.VCRUNTIME140.dll_memchr
test rax, rax
jne 0x180016632
jmp 0x18001666e
sub rax, r14
cmp rax, 0xffffffffffffffff
jne 0x1800168a0
lea rdx, [rbp - 0x20]
lea rcx, [rbp + 0xa0]
call fcn.18007bb10
nop
or esi, 0x20
mov dword [rsp + 0x20], esi
mov r14, rax
cmp qword [rax + 0x18], 0x10
jb 0x180016693
mov r14, qword [rax]
mov r8, qword [rax + 0x10]
cmp r8, 1
jb 0x1800166ef
lea rbx, [r14 + r8]
mov edx, 0x3a
mov rcx, r14
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x1800166ef
cmp byte [rax], 0x3a
jne 0x1800166bc
xor ecx, ecx
jmp 0x1800166c1
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x1800166e2
inc rax
mov r8, rbx
sub r8, rax
mov edx, 0x3a
mov rcx, rax
call sub.VCRUNTIME140.dll_memchr
test rax, rax
jne 0x1800166b3
jmp 0x1800166ef
sub rax, r14
cmp rax, 0xffffffffffffffff
jne 0x1800168a0
lea rdx, [rbp - 0x40]
lea rcx, [rbp + 0xa0]
call fcn.18007bb10
nop
or esi, 0x40
mov dword [rsp + 0x20], esi
mov r14, rax
cmp qword [rax + 0x18], 0x10
jb 0x180016714
mov r14, qword [rax]
mov r8, qword [rax + 0x10]
cmp r8, 1
jb 0x180016770
lea rbx, [r8 + r14]
mov edx, 0x2b
mov rcx, r14
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x180016770
cmp byte [rax], 0x2b
jne 0x18001673d
xor ecx, ecx
jmp 0x180016742
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x180016763
inc rax
mov r8, rbx
sub r8, rax
mov edx, 0x2b
mov rcx, rax
call sub.VCRUNTIME140.dll_memchr
test rax, rax
jne 0x180016734
jmp 0x180016770
sub rax, r14
cmp rax, 0xffffffffffffffff
jne 0x1800168a0
lea rdx, [rbp - 0x60]
lea rcx, [rbp + 0xa0]
call fcn.18007bb10
nop
bts esi, 7
mov dword [rsp + 0x20], esi
mov r14, rax
cmp qword [rax + 0x18], 0x10
jb 0x180016796
mov r14, qword [rax]
mov rcx, qword [rax + 0x10]
cmp rcx, 3
jb 0x180016809
lea rbx, [rcx + r14]
lea r8, [rbx - 2]
sub r8, r14
mov edx, 0x63
mov rcx, r14
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x180016809
nop dword [rax]
cmp byte [rax], 0x63
jne 0x1800167d5
cmp byte [rax + 1], 0x69
jne 0x1800167d5
cmp byte [rax + 2], 0x74
jne 0x1800167d5
xor ecx, ecx
jmp 0x1800167da
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x1800167fc
inc rax
lea r8, [rbx - 2]
sub r8, rax
mov edx, 0x63
mov rcx, rax
call sub.VCRUNTIME140.dll_memchr
test rax, rax
jne 0x1800167c0
jmp 0x180016809
sub rax, r14
cmp rax, 0xffffffffffffffff
jne 0x1800168a0
lea rdx, [rbp - 0x80]
lea rcx, [rbp + 0xa0]
call fcn.18007bb10
bts esi, 8
mov r14, rax
cmp qword [rax + 0x18], 0x10
jb 0x18001682a
mov r14, qword [rax]
mov rcx, qword [rax + 0x10]
cmp rcx, 3
jb 0x18001688b
lea rbx, [rcx + r14]
lea r8, [rbx - 2]
sub r8, r14
mov edx, 0x6e
mov rcx, r14
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x18001688b
cmp byte [rax], 0x6e
jne 0x180016866
cmp byte [rax + 1], 0x70
jne 0x180016866
cmp byte [rax + 2], 0x63
jne 0x180016866
xor ecx, ecx
jmp 0x18001686b
sbb ecx, ecx
or ecx, 1
test ecx, ecx
je 0x180016897
inc rax
lea r8, [rbx - 2]
sub r8, rax
mov edx, 0x6e
mov rcx, rax
call sub.VCRUNTIME140.dll_memchr
test rax, rax
jne 0x180016851
xor r14b, r14b
mov rbx, qword [rbp + 0xa0]
jmp 0x1800168aa
sub rax, r14
cmp rax, 0xffffffffffffffff
je 0x18001688b
mov rbx, qword [rbp + 0xa0]
mov r14b, 1
bt esi, 8
jae 0x180016903
btr esi, 8
mov rdx, qword [rbp - 0x68]
cmp rdx, 0x10
jb 0x1800168ef
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800168ea
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800172bd
call fcn.180083e14
mov qword [rbp - 0x70], 0
mov qword [rbp - 0x68], 0xf
mov byte [rbp - 0x80], 0
test sil, sil
jns 0x18001695b
btr esi, 7
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x180016947
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180016942
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800172c4
call fcn.180083e14
mov qword [rbp - 0x50], 0
mov qword [rbp - 0x48], 0xf
mov byte [rbp - 0x60], 0
test sil, 0x40
je 0x1800169b3
and esi, 0xffffffbf
mov rdx, qword [rbp - 0x28]
cmp rdx, 0x10
jb 0x18001699f
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18001699a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800172cb
call fcn.180083e14
mov qword [rbp - 0x30], 0
mov qword [rbp - 0x28], 0xf
mov byte [rbp - 0x40], 0
test sil, 0x20
je 0x180016a0b
and esi, 0xffffffdf
mov rdx, qword [rbp - 8]
cmp rdx, 0x10
jb 0x1800169f7
inc rdx
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800169f2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800172d2
call fcn.180083e14
mov qword [rbp - 0x10], 0
mov qword [rbp - 8], 0xf
mov byte [rbp - 0x20], 0
test sil, 0x10
je 0x180016a63
and esi, 0xffffffef
mov rdx, qword [rbp + 0x18]
cmp rdx, 0x10
jb 0x180016a4f
inc rdx
mov rcx, qword [rbp]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180016a4a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800172d9
call fcn.180083e14
mov qword [rbp + 0x10], 0
mov qword [rbp + 0x18], 0xf
mov byte [rbp], 0
test sil, 8
je 0x180016abb
and esi, 0xfffffff7
mov rdx, qword [rbp + 0x38]
cmp rdx, 0x10
jb 0x180016aa7
inc rdx
mov rcx, qword [rbp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180016aa2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800172e0
call fcn.180083e14
mov qword [rbp + 0x30], 0
mov qword [rbp + 0x38], 0xf
mov byte [rbp + 0x20], 0
test sil, 4
je 0x180016b13
and esi, 0xfffffffb
mov rdx, qword [rbp + 0x58]
cmp rdx, 0x10
jb 0x180016aff
inc rdx
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180016afa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800172e7
call fcn.180083e14
mov qword [rbp + 0x50], 0
mov qword [rbp + 0x58], 0xf
mov byte [rbp + 0x40], 0
test sil, 2
je 0x180016b6b
and esi, 0xfffffffd
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x180016b57
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180016b52
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800172ee
call fcn.180083e14
mov qword [rbp + 0x70], 0
mov qword [rbp + 0x78], 0xf
mov byte [rbp + 0x60], 0
test sil, 1
je 0x180016bb5
and esi, 0xfffffffe
mov rdx, qword [rbp + 0x98]
cmp rdx, 0x10
jb 0x180016bb5
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180016bb0
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800172f5
call fcn.180083e14
test r14b, r14b
je 0x180016be7
mov rcx, qword [0x1800ac608]
test rcx, rcx
je 0x180016be2
test rbx, rbx
je 0x180016be2
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
mov rdx, rbx
call r8
mov rcx, qword [0x1800ac608]
jmp 0x180017277
call fcn.18001b650
cmp byte [rax + 0x30], 0
je 0x180016c60
call fcn.18001b650
mov qword [rsp + 0x50], 0
test rbx, rbx
je 0x180016c1e
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r8, qword [rax + 0xa8]
mov rdx, rbx
call r8
jmp 0x180016c20
xor eax, eax
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x50]
call fcn.18000d920
test al, al
je 0x180016c60
mov rcx, qword [0x1800ac608]
test rcx, rcx
je 0x180016c5b
test rbx, rbx
je 0x180016c5b
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
mov rdx, rbx
call r8
mov rcx, qword [0x1800ac608]
jmp 0x180017277
lea rdx, [rbp + 0x80]
lea rcx, [rbp + 0xa0]
call fcn.18007bb10
mov rdx, qword [rbp + 0x98]
cmp rdx, 0x10
jb 0x180016cb4
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180016caf
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1800172fc
call fcn.180083e14
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0xc0]
mov rbx, qword [rbp + 0xa0]
mov r8, rbx
mov rdx, qword [r13]
call r9
test al, al
jne 0x18001722c
mov r9, rbx
mov r8, qword [0x1800ac778]
mov rdx, qword [r13]
mov rcx, qword [0x1800ac608]
call fcn.180023f20
test al, al
jne 0x180016d29
mov rcx, qword [0x1800ac608]
test rcx, rcx
je 0x180016d24
test rbx, rbx
je 0x180016d24
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
mov rdx, rbx
call r8
mov rcx, qword [0x1800ac608]
jmp 0x180017277
test rdi, rdi
je 0x180016d6c
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0xc0]
xor r8d, r8d
mov rdx, rdi
call r9
test al, al
jne 0x180016d6c
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x330]
mov r8, qword [0x1800ac880]
mov rdx, rdi
call r9
jmp 0x180016d6f
xorps xmm0, xmm0
xorps xmm12, xmm12
cvtss2sd xmm0, xmm0
subsd xmm0, xmm8
xorps xmm8, xmm8
cvtsd2ss xmm8, xmm0
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac8f0]
mov rdx, rbx
call r9
xorps xmm7, xmm7
cvtsd2ss xmm7, xmm0
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac8f8]
mov rdx, rbx
call r9
xorps xmm6, xmm6
cvtsd2ss xmm6, xmm0
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac878]
mov rdx, rbx
call r9
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
addss xmm1, xmm12
addss xmm6, xmm8
addss xmm7, xmm12
subss xmm7, dword [rsp + 0x28]
cvtps2pd xmm8, xmm7
subss xmm6, dword [rsp + 0x2c]
cvtps2pd xmm9, xmm6
subss xmm1, dword [rsp + 0x30]
cvtps2pd xmm6, xmm1
movaps xmm2, xmm6
mulsd xmm2, xmm6
movaps xmm0, xmm8
mulsd xmm0, xmm8
addsd xmm2, xmm0
xorps xmm0, xmm0
ucomisd xmm0, xmm2
ja 0x180016e43
sqrtpd xmm7, xmm2
jmp 0x180016e4e
movaps xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movaps xmm7, xmm0
movaps xmm1, xmm8
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
mulss xmm2, dword [0x180098f2c]
cvtps2pd xmm3, xmm2
divsd xmm3, qword [0x180098e70]
cvtpd2ps xmm6, xmm3
subss xmm6, dword [0x180098f08]
movaps xmm1, xmm7
movaps xmm0, xmm9
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
xorps xmm0, xmmword [0x180099230]
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
mulss xmm1, dword [0x180098f2c]
cvtps2pd xmm2, xmm1
divsd xmm2, qword [0x180098e70]
cvtpd2ps xmm0, xmm2
movss xmm3, dword [rsp + 0x68]
xorps xmm3, xmm10
xorps xmm6, xmm10
subss xmm3, xmm6
movaps xmm1, xmm11
xorps xmm1, xmm10
xorps xmm0, xmm10
subss xmm1, xmm0
movaps xmm0, xmm3
unpcklps xmm0, xmm1
movq rcx, xmm0
call fcn.180083260
mov qword [rsp + 0x40], rax
movss xmm11, dword [rsp + 0x40]
comiss xmm12, xmm11
jbe 0x180016ef9
xorps xmm11, xmm10
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac8f0]
mov rdx, rbx
call r9
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac8f8]
mov rdx, rbx
call r9
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac878]
mov rdx, rbx
call r9
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac8f0]
mov rdx, qword [r13]
call r9
xorps xmm10, xmm10
cvtsd2ss xmm10, xmm0
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac8f8]
mov rdx, qword [r13]
call r9
xorps xmm9, xmm9
cvtsd2ss xmm9, xmm0
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac878]
mov rdx, qword [r13]
call r9
xorps xmm7, xmm7
cvtsd2ss xmm7, xmm0
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac8f0]
mov rdx, rbx
call r9
xorps xmm8, xmm8
cvtsd2ss xmm8, xmm0
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac8f8]
mov rdx, rbx
call r9
xorps xmm6, xmm6
cvtsd2ss xmm6, xmm0
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac878]
mov rdx, rbx
call r9
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
subss xmm7, xmm1
subss xmm9, xmm6
cvtps2pd xmm0, xmm7
movsd xmm12, qword [0x180098e60]
movaps xmm1, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movaps xmm7, xmm0
cvtps2pd xmm0, xmm9
movaps xmm1, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movaps xmm6, xmm0
subss xmm10, xmm8
cvtps2pd xmm0, xmm10
movaps xmm1, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm0, xmm6
addsd xmm0, xmm7
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x180017094
sqrtsd xmm0, xmm0
jmp 0x180017099
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
xorps xmm6, xmm6
cvtsd2ss xmm6, xmm0
movaps xmm1, xmm11
andps xmm1, xmmword [0x180099220]
movss xmm0, dword [r15 + 0x5c]
comiss xmm0, xmm1
jb 0x180017213
movss xmm0, dword [rsp + 0x38]
comiss xmm0, xmm6
jb 0x180017213
mov r8, qword [0x1800ac7b0]
mov rdx, rbx
mov rcx, qword [0x1800ac608]
call fcn.18000bf30
movaps xmm7, xmm0
mov ecx, dword [r15 + 0x70]
sub ecx, 1
je 0x1800171bc
cmp ecx, 1
je 0x18001715b
comiss xmm13, xmm6
jbe 0x180017213
test rdi, rdi
je 0x18001711a
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
mov rdx, rdi
call r8
test rbx, rbx
je 0x180017149
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r8, qword [rax + 0xa8]
mov rdx, rbx
call r8
mov rdi, rax
mov qword [rbp + 0xa8], rax
movaps xmm13, xmm6
jmp 0x180017213
xor edi, edi
mov qword [rbp + 0xa8], rdi
movaps xmm13, xmm6
jmp 0x180017213
comiss xmm14, xmm11
jbe 0x180017213
test rdi, rdi
je 0x180017181
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
mov rdx, rdi
call r8
test rbx, rbx
je 0x1800171ad
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r8, qword [rax + 0xa8]
mov rdx, rbx
call r8
mov rdi, rax
mov qword [rbp + 0xa8], rax
movaps xmm14, xmm11
jmp 0x180017213
xor edi, edi
mov qword [rbp + 0xa8], rdi
movaps xmm14, xmm11
jmp 0x180017213
comiss xmm15, xmm7
jbe 0x180017213
test rdi, rdi
je 0x1800171de
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
mov rdx, rdi
call r8
test rbx, rbx
je 0x180017206
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r8, qword [rax + 0xa8]
mov rdx, rbx
call r8
mov rdi, rax
mov qword [rbp + 0xa8], rax
jmp 0x18001720f
xor edi, edi
mov qword [rbp + 0xa8], rdi
movaps xmm15, xmm7
movsd xmm8, qword [0x180098dc8]
movss xmm11, dword [rsp + 0x24]
movss xmm10, dword [0x180099240]
mov rcx, qword [0x1800ac608]
test rcx, rcx
je 0x180017254
test rbx, rbx
je 0x180017254
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
mov rdx, rbx
call r8
mov rcx, qword [0x1800ac608]
jmp 0x180017277
test rcx, rcx
je 0x180017277
test r14, r14
je 0x180017277
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
mov rdx, rbx
call r8
mov rcx, qword [0x1800ac608]
add r12, 8
cmp r12, qword [rbp + 0xc0]
jne 0x180016370
lea rcx, [rbp + 0xb8]
call fcn.180010b10
test rdi, rdi
jne 0x180017303
mov dword [r15 + 0x48], 0x7fc00000
mov dword [r15 + 0x4c], 0x7fc00000
mov dword [r15 + 0x50], 0x7fc00000
mov rcx, qword [0x1800ac608]
jmp 0x1800179be
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]
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]
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 qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac8f0]
mov rdx, rdi
call r9
xorps xmm11, xmm11
cvtsd2ss xmm11, xmm0
movss dword [rsp + 0x38], xmm11
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac8f8]
mov rdx, rdi
call r9
xorps xmm7, xmm7
cvtsd2ss xmm7, xmm0
movss dword [rsp + 0x48], xmm7
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac878]
mov rdx, rdi
call r9
xorps xmm6, xmm6
cvtsd2ss xmm6, xmm0
movss dword [rsp + 0x20], xmm6
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac918]
mov rdx, rdi
call r9
xorps xmm14, xmm14
cvtsd2ss xmm14, xmm0
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac910]
mov rdx, rdi
call r9
xorps xmm10, xmm10
cvtsd2ss xmm10, xmm0
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x338]
mov r8, qword [0x1800ac8c8]
mov rdx, rdi
call r9
xorps xmm9, xmm9
cvtsd2ss xmm9, xmm0
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0xc0]
xor r8d, r8d
mov rdx, rdi
call r9
test al, al
jne 0x18001743a
mov rcx, qword [0x1800ac608]
mov rax, qword [rcx]
mov r9, qword [rax + 0x330]
mov r8, qword [0x1800ac880]
mov rdx, rdi
call r9
jmp 0x18001743d
xorps xmm0, xmm0
cvtss2sd xmm0, xmm0
subsd xmm0, xmm8
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
xorps xmm0, xmm0
addss xmm6, xmm0
movss dword [rsp + 0x70], xmm6
addss xmm7, xmm1
movss dword [rsp + 0x50], xmm7
movaps xmm8, xmm11
addss xmm8, xmm0
movss dword [rbp + 0xa0], xmm8
movaps xmm12, xmm9
addss xmm12, xmm0
movaps xmm13, xmm10
addss xmm13, xmm1
movaps xmm15, xmm14
addss xmm15, xmm0
movaps xmm0, xmm11
subss xmm0, dword [rsp + 0x28]
cvtps2pd xmm11, xmm0
movss xmm1, dword [rsp + 0x48]
subss xmm1, dword [rsp + 0x2c]
cvtps2pd xmm0, xmm1
movsd qword [rsp + 0x58], xmm0
movss xmm0, dword [rsp + 0x20]
subss xmm0, dword [rsp + 0x30]
cvtps2pd xmm0, xmm0
movsd qword [rsp + 0x40], xmm0
movaps xmm1, xmm0
mulsd xmm1, xmm0
movaps xmm0, xmm11
mulsd xmm0, xmm11
addsd xmm1, xmm0
xorps xmm0, xmm0
ucomisd xmm0, xmm1
ja 0x1800174ec
sqrtpd xmm0, xmm1
jmp 0x1800174f4
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movsd qword [rsp + 0x60], xmm0
movaps xmm1, xmm11
movsd xmm0, qword [rsp + 0x40]
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
mulss xmm2, dword [0x180098f2c]
cvtps2pd xmm3, xmm2
divsd xmm3, qword [0x180098e70]
cvtpd2ps xmm11, xmm3
subss xmm11, dword [0x180098f08]
movsd xmm1, qword [rsp + 0x60]
movsd xmm0, qword [rsp + 0x58]
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
xorps xmm0, xmmword [0x180099230]
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
mulss xmm1, dword [0x180098f2c]
cvtps2pd xmm2, xmm1
divsd xmm2, qword [0x180098e70]
cvtpd2ps xmm0, xmm2
movss dword [rsp + 0x58], xmm0
movaps xmm0, xmm8
subss xmm0, dword [rsp + 0x28]
cvtps2pd xmm8, xmm0
movaps xmm1, xmm7
subss xmm1, dword [rsp + 0x2c]
cvtps2pd xmm0, xmm1
movsd qword [rsp + 0x40], xmm0
movaps xmm0, xmm6
subss xmm0, dword [rsp + 0x30]
cvtps2pd xmm6, xmm0
movaps xmm1, xmm6
mulsd xmm1, xmm6
movaps xmm0, xmm8
mulsd xmm0, xmm8
addsd xmm1, xmm0
xorps xmm0, xmm0
ucomisd xmm0, xmm1
ja 0x1800175bc
sqrtpd xmm7, xmm1
jmp 0x1800175c7
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
movaps xmm7, xmm0
movaps xmm1, xmm8
movaps xmm0, xmm6
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
mulss xmm2, dword [0x180098f2c]
cvtps2pd xmm3, xmm2
divsd xmm3, qword [0x180098e70]
cvtpd2ps xmm6, xmm3
subss xmm6, dword [0x180098f08]
movaps xmm1, xmm7
movsd xmm0, qword [rsp + 0x40]
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
xorps xmm0, xmmword [0x180099230]
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
mulss xmm1, dword [0x180098f2c]
cvtps2pd xmm2, xmm1
divsd xmm2, qword [0x180098e70]
cvtpd2ps xmm0, xmm2
movss dword [rsp + 0x60], xmm0
movss xmm8, dword [rsp + 0x68]
movss xmm2, dword [0x180099240]
xorps xmm8, xmm2
movss xmm7, dword [rsp + 0x24]
xorps xmm7, xmm2
xorps xmm6, xmm2
movaps xmm1, xmm8
subss xmm1, xmm6
xorps xmm0, xmm2
movaps xmm2, xmm7
subss xmm2, xmm0
unpcklps xmm1, xmm2
movq rcx, xmm1
call fcn.180083260
mov qword [rsp + 0x40], rax
xorps xmm11, xmmword [0x180099240]
subss xmm8, xmm11
movss xmm0, dword [rsp + 0x58]
xorps xmm0, xmmword [0x180099240]
subss xmm7, xmm0
movaps xmm1, xmm8
unpcklps xmm1, xmm7
movq rcx, xmm1
call fcn.180083260
mov qword [rsp + 0x78], rax
movss xmm7, dword [r15 + 0x68]
movaps xmm6, xmm7
xorps xmm6, xmmword [0x180099240]
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
movss xmm8, dword [0x180098f74]
divss xmm0, xmm8
subss xmm7, xmm6
mulss xmm7, xmm0
addss xmm7, xmm6
cmp byte [r15 + 0x56], 0
je 0x180017733
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x18001770d
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x18001770d
subss xmm7, dword [r15 + 0x58]
mov ecx, 0x41
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180017733
mov ecx, 0x44
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
js 0x180017733
addss xmm7, dword [r15 + 0x58]
movss xmm11, dword [rsp + 0x40]
addss xmm11, xmm7
divss xmm11, dword [r15 + 0x60]
addss xmm11, dword [rsp + 0x68]
call fcn.180002400
movsd xmm0, qword [rax + 0x84]
movsd qword [rsp + 0x28], xmm0
mov ebx, dword [rax + 0x8c]
call fcn.180002400
movss xmm4, dword [rax + 0x90]
movss xmm2, dword [rsp + 0x24]
comiss xmm2, dword [rsp + 0x58]
ja 0x180017840
movss xmm0, dword [rsp + 0x60]
comiss xmm0, xmm2
ja 0x180017840
movd xmm1, ebx
subss xmm1, xmm9
movss xmm0, dword [rsp + 0x2c]
subss xmm0, xmm10
subss xmm9, dword [rsp + 0x20]
subss xmm10, dword [rsp + 0x48]
movaps xmm3, xmm4
mulss xmm3, xmm9
movaps xmm2, xmm4
mulss xmm2, xmm10
addss xmm3, xmm1
addss xmm2, xmm0
movaps xmm1, xmm14
subss xmm1, dword [rsp + 0x38]
mulss xmm1, xmm4
movss xmm0, dword [rsp + 0x28]
subss xmm0, xmm14
addss xmm1, xmm0
movss dword [r15 + 0x48], xmm1
movss dword [r15 + 0x4c], xmm2
movss dword [r15 + 0x50], xmm3
mov byte [r15 + 0x54], 0
movss xmm7, dword [r15 + 0x6c]
movaps xmm6, xmm7
xorps xmm6, xmmword [0x180099240]
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
xorps xmm0, xmm0
cvtsi2ss xmm0, eax
divss xmm0, xmm8
subss xmm7, xmm6
mulss xmm7, xmm0
addss xmm7, xmm6
addss xmm7, dword [rsp + 0x24]
movaps xmm0, xmm11
unpcklps xmm0, xmm7
jmp 0x18001798d
movss xmm1, dword [rsp + 0x7c]
divss xmm1, dword [r15 + 0x60]
addss xmm1, xmm2
movss xmm8, dword [rsp + 0x44]
divss xmm8, dword [r15 + 0x60]
addss xmm8, xmm2
movaps xmm0, xmm2
subss xmm0, xmm1
andps xmm0, xmmword [0x180099220]
subss xmm2, xmm8
andps xmm2, xmmword [0x180099220]
movd xmm3, ebx
xorps xmm5, xmm5
mov eax, 8
subss xmm3, xmm5
comiss xmm0, xmm2
movss xmm2, dword [rsp + 0x2c]
movss xmm0, dword [rsp + 0x28]
subss xmm0, xmm5
jbe 0x1800178e8
subss xmm2, dword [0x180098d28]
subss xmm3, xmm12
subss xmm2, xmm13
subss xmm12, dword [rsp + 0x70]
subss xmm13, dword [rsp + 0x50]
mulss xmm12, xmm4
mulss xmm13, xmm4
addss xmm3, xmm12
addss xmm2, xmm13
movaps xmm1, xmm15
subss xmm1, dword [rbp + 0xa0]
subss xmm0, xmm15
jmp 0x18001792f
movaps xmm8, xmm1
subss xmm2, dword [0x180098d30]
subss xmm3, xmm9
subss xmm2, xmm10
subss xmm9, dword [rsp + 0x20]
subss xmm10, dword [rsp + 0x48]
mulss xmm9, xmm4
mulss xmm10, xmm4
addss xmm3, xmm9
addss xmm2, xmm10
movaps xmm1, xmm14
subss xmm1, dword [rsp + 0x38]
subss xmm0, xmm14
mulss xmm1, xmm4
addss xmm1, xmm0
movss dword [r15 + 0x48], xmm1
movss dword [r15 + 0x4c], xmm2
movss dword [rax + r15 + 0x48], xmm3
mov byte [r15 + 0x54], 1
movss xmm7, dword [r15 + 0x6c]
movaps xmm6, xmm7
xorps xmm6, xmmword [0x180099240]
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, dword [0x180098f74]
subss xmm7, xmm6
mulss xmm7, xmm0
addss xmm7, xmm6
addss xmm8, xmm7
movaps xmm0, xmm11
unpcklps xmm0, xmm8
movq rdx, xmm0
mov rcx, r13
call fcn.18007c1c0
nop
mov rcx, qword [0x1800ac608]
test rcx, rcx
je 0x1800179be
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
mov rdx, rdi
call r8
mov rcx, qword [0x1800ac608]
test rcx, rcx
je 0x1800179dd
mov rdx, qword [rbp + 0xb0]
test rdx, rdx
je 0x1800179dd
mov rax, qword [rcx]
mov r8, qword [rax + 0xb0]
call r8
nop
mov rcx, qword [rbp + 0xd0]
xor rcx, rsp
call fcn.180083910
lea r11, [rsp + 0x280]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
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