Function at 0x180003600
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x148]
sub rsp, 0x220
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 [0x1800980c0]
xor rax, rsp
mov qword [rbp + 0x78], rax
mov rdi, rdx
xor r13d, r13d
cmp byte [0x18009a7b4], r13b
jne 0x1800036c6
lea r8, str.win32
xor edx, edx
mov ecx, 0xf001f
call qword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov qword [0x18009a7b8], rax
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov edx, 0xf001f
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov qword [0x18009a7c0], rax
mov byte [0x18009a7b4], 1
jmp 0x1800036cd
mov rax, qword [0x18009a7c0]
cmp byte [rax + 0x4ac], r13b
je 0x180003767
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
movzx esi, ax
shr esi, 0xf
and sil, 1
mov dword [rsp + 0x30], esi
cmp byte [0x18009a7b4], r13b
jne 0x180003740
lea r8, str.win32
xor edx, edx
mov ecx, 0xf001f
call qword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov qword [0x18009a7b8], rax
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov edx, 0xf001f
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov qword [0x18009a7c0], rax
mov byte [0x18009a7b4], 1
jmp 0x180003747
mov rax, qword [0x18009a7c0]
cmp byte [rax + 0x4c2], r13b
je 0x1800037d7
test sil, sil
jne 0x1800037d7
mov qword [0x18009a808], r13
mov byte [0x18009a801], r13b
mov ecx, 5
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, qword [rbp + 0x78]
xor rcx, rsp
call fcn.18003fc80
lea r11, [rsp + 0x220]
mov rbx, qword [r11 + 0x30]
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
mov rcx, rdi
call fcn.18000c7d0
mov r15, rax
mov qword [rbp - 0x80], rax
mov rcx, rdi
call fcn.18000c980
mov rbx, rax
mov rcx, rdi
call fcn.18000cce0
test r15, r15
je 0x180003772
test rbx, rbx
je 0x180003772
test rax, rax
je 0x180003772
cmp byte [0x18009a7b4], r13b
jne 0x180003861
lea r8, str.win32
xor edx, edx
mov ecx, 0xf001f
call qword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov qword [0x18009a7b8], rax
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov edx, 0xf001f
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov qword [0x18009a7c0], rax
mov byte [0x18009a7b4], 1
jmp 0x180003868
mov rax, qword [0x18009a7c0]
cmp byte [rax + 0x4c0], r13b
je 0x18000388f
mov rdx, rdi
mov rcx, r15
call fcn.18000c320
mov rdx, rdi
mov rcx, rax
call fcn.18000a590
test al, al
je 0x180003772
mov r8, rdi
lea rdx, [rbp - 0x68]
mov rcx, r15
call fcn.18000b390
movsd xmm11, qword [rbp - 0x58]
movsd xmm13, qword [rbp - 0x60]
movsd xmm8, qword [rbp - 0x68]
movsd xmm12, qword [0x18008bd70]
cmp byte [0x18009a801], r13b
jne 0x1800038c7
test sil, sil
jne 0x1800038d4
cmp qword [0x18009a808], r13
jne 0x180003b0d
movsd xmm7, qword [0x18008be38]
mov r14, r13
mov qword [rsp + 0x78], r13
mov r8, rdi
lea rdx, [rbp + 0x40]
mov rcx, rbx
call fcn.18000ce90
nop
mov rcx, qword [rbp + 0x40]
mov r12, rcx
mov qword [rbp - 0x78], rcx
cmp rcx, qword [rbp + 0x48]
je 0x180003ab9
nop dword [rax]
mov rax, qword [rdi]
mov r9, qword [rax + 0xc0]
mov r8, r15
mov rdx, qword [r12]
mov rcx, rdi
call r9
test al, al
jne 0x180003a9f
mov r8, rdi
lea rdx, [rbp + 0x58]
mov rcx, qword [r12]
call fcn.18000acb0
nop
xorps xmm0, xmm0
movups xmmword [rbp + 0x20], xmm0
mov qword [rbp + 0x30], r13
mov qword [rbp + 0x38], r13
mov r8d, 3
lea rdx, [0x18008a160]
lea rcx, [rbp + 0x20]
call fcn.180001330
lea r15, [rbp + 0x20]
mov r8, qword [rbp + 0x20]
mov qword [rbp - 0x70], r8
cmp qword [rbp + 0x38], 0xf
cmova r15, r8
lea rcx, [rbp + 0x58]
mov rsi, qword [rbp + 0x58]
mov r13, qword [rbp + 0x70]
cmp r13, 0xf
cmova rcx, rsi
mov qword [rbp - 0x50], rcx
mov r14, qword [rbp + 0x30]
mov rax, qword [rbp + 0x68]
cmp r14, rax
ja 0x180003a10
sub rax, r14
test r14, r14
jne 0x1800039ab
xor ebx, ebx
jmp 0x180003a17
lea r12, [rax + rcx]
movsx r13d, byte [r15]
lea r8, [r12 + 1]
sub r8, rcx
mov edx, r13d
call fcn.180061f10
mov rbx, rax
test rax, rax
je 0x180003a04
nop dword [rax + rax]
mov r8, r14
mov rdx, r15
mov rcx, rbx
call fcn.180062a10
test eax, eax
je 0x180003b64
inc rbx
lea r8, [r12 + 1]
sub r8, rbx
mov edx, r13d
mov rcx, rbx
call fcn.180061f10
mov rbx, rax
test rax, rax
jne 0x1800039d0
mov r12, qword [rbp - 0x78]
mov r8, qword [rbp - 0x70]
mov r13, qword [rbp + 0x70]
mov rbx, 0xffffffffffffffff
mov rax, qword [rbp + 0x38]
cmp rax, 0xf
jbe 0x180003a52
lea rdx, [rax + 1]
mov rax, r8
cmp rdx, 0x1000
jb 0x180003a4a
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004bce
mov rcx, r8
call fcn.18004004c
cmp rbx, 0xffffffffffffffff
je 0x180003b79
cmp r13, 0xf
jbe 0x180003a93
lea rdx, [r13 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x180003a8b
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004bd4
mov rcx, rsi
call fcn.18004004c
mov r14, qword [rsp + 0x78]
xor r13d, r13d
mov r15, qword [rbp - 0x80]
add r12, 8
mov qword [rbp - 0x78], r12
cmp r12, qword [rbp + 0x48]
jne 0x180003910
mov esi, dword [rsp + 0x30]
mov rcx, qword [rbp + 0x40]
test rcx, rcx
je 0x180003afb
mov rax, qword [rbp + 0x50]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180003af6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004bc8
call fcn.18004004c
test r14, r14
je 0x180003b0d
mov qword [0x18009a808], r14
call qword [sym.imp.KERNEL32.dll_GetTickCount64]
movzx ecx, byte [0x18009a7b4]
test cl, cl
jne 0x180003c41
lea r8, str.win32
xor edx, edx
mov ecx, 0xf001f
call qword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov qword [0x18009a7b8], rax
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov edx, 0xf001f
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov qword [0x18009a7c0], rax
mov cl, 1
mov byte [0x18009a7b4], cl
jmp 0x180003c48
sub rbx, qword [rbp - 0x50]
mov r12, qword [rbp - 0x78]
mov r8, qword [rbp - 0x70]
mov r13, qword [rbp + 0x70]
jmp 0x180003a17
mov r8, rdi
lea rdx, [rsp + 0x58]
mov rcx, qword [r12]
call fcn.18000b390
movaps xmm0, xmm13
subsd xmm0, qword [rsp + 0x60]
movaps xmm1, xmm12
call fcn.18005f6f0
movaps xmm6, xmm0
movaps xmm0, xmm8
subsd xmm0, qword [rsp + 0x58]
movaps xmm1, xmm12
call fcn.18005f6f0
addsd xmm6, xmm0
movaps xmm0, xmm11
subsd xmm0, qword [rsp + 0x68]
movaps xmm1, xmm12
call fcn.18005f6f0
addsd xmm6, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm6
ja 0x180003be0
xorps xmm0, xmm0
sqrtsd xmm0, xmm6
jmp 0x180003be8
movaps xmm0, xmm6
call fcn.180061488
comisd xmm7, xmm0
jb 0x180003bfc
movaps xmm7, xmm0
mov r14, qword [r12]
mov qword [rsp + 0x78], r14
jmp 0x180003c01
mov r14, qword [rsp + 0x78]
cmp r13, 0xf
jbe 0x180003a98
lea rdx, [r13 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x180003c34
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004bd4
mov rcx, rsi
call fcn.18004004c
jmp 0x180003a98
mov rax, qword [0x18009a7c0]
cmp byte [rax + 0x4c4], 0
je 0x180003c72
mov rdx, rdi
mov rcx, r15
call fcn.18000b930
test al, al
jne 0x180003767
movzx ecx, byte [0x18009a7b4]
mov rax, qword [0x18009a7c0]
test cl, cl
jne 0x180003cb8
lea r8, str.win32
xor edx, edx
mov ecx, 0xf001f
call qword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov qword [0x18009a7b8], rax
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov edx, 0xf001f
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov qword [0x18009a7c0], rax
mov byte [0x18009a7b4], 1
cmp byte [rax + 0x4c5], 0
je 0x180003cd4
mov rdx, rdi
mov rcx, r15
call fcn.18000bcf0
test al, al
jne 0x180003767
mov byte [0x18009a801], sil
mov rbx, qword [0x18009a808]
test rbx, rbx
je 0x180003772
test rdi, rdi
je 0x180003772
mov rax, qword [rdi]
mov r8, qword [rax + 0xf8]
mov rdx, rbx
mov rcx, rdi
call r8
mov rsi, rax
test rax, rax
je 0x180003772
mov r8d, 1
lea rdx, str.getHealth
lea rcx, [rsp + 0x58]
call fcn.180014c90
mov r8, rax
cmp qword [rax + 0x18], 0xf
jbe 0x180003d37
mov r8, qword [rax]
mov rax, qword [rdi]
mov r10, qword [rax + 0x108]
lea r9, [0x18008a990]
mov rdx, rsi
mov rcx, rdi
call r10
mov r14, rax
mov rdx, qword [rsp + 0x70]
cmp rdx, 0xf
jbe 0x180003d91
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180003d8c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004bda
call fcn.18004004c
movdqa xmm14, xmmword [0x18008be70]
movdqu xmmword [rsp + 0x68], xmm14
mov byte [rsp + 0x58], 0
mov rax, qword [rdi]
mov r9, qword [rax + 0xb8]
mov rdx, rsi
mov rcx, rdi
call r9
xor r9d, r9d
mov r8, rbx
mov rdx, rdi
mov rcx, r14
call fcn.180016980
xorps xmm1, xmm1
comiss xmm1, xmm0
jae 0x180003772
mov r8, rdi
lea rdx, [rsp + 0x58]
mov rcx, qword [0x18009a808]
call fcn.18000b390
movsd xmm9, qword [rsp + 0x58]
movaps xmm6, xmm9
subsd xmm6, xmm8
movsd xmm10, qword [rsp + 0x68]
movaps xmm8, xmm10
subsd xmm8, xmm11
movsd xmm11, qword [rsp + 0x60]
movaps xmm0, xmm11
subsd xmm0, xmm13
movaps xmm1, xmm12
call fcn.18005f6f0
movaps xmm7, xmm0
movaps xmm1, xmm12
movaps xmm0, xmm6
call fcn.18005f6f0
addsd xmm7, xmm0
movaps xmm1, xmm12
movaps xmm0, xmm8
call fcn.18005f6f0
addsd xmm7, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm7
ja 0x180003e56
sqrtsd xmm7, xmm7
jmp 0x180003e61
movaps xmm0, xmm7
call fcn.180061488
movaps xmm7, xmm0
movsd xmm1, qword [0x18008bd60]
comisd xmm1, xmm7
jb 0x180003e7b
mov qword [0x18009a808], r13
jmp 0x180003767
cmp byte [0x18009a7b4], 0
jne 0x180003ec8
lea r8, str.win32
xor edx, edx
mov ecx, 0xf001f
call qword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov qword [0x18009a7b8], rax
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov edx, 0xf001f
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov qword [0x18009a7c0], rax
mov byte [0x18009a7b4], 1
jmp 0x180003ecf
mov rax, qword [0x18009a7c0]
movss xmm0, dword [rax + 0x4b4]
cvtps2pd xmm0, xmm0
comisd xmm0, xmm7
jb 0x180003772
mov rdx, rdi
mov rcx, r15
call fcn.18000b270
mov rdx, rdi
mov rcx, r15
call fcn.18000b150
movaps xmm15, xmm0
mov rdx, rdi
mov rcx, r15
call fcn.18000b030
movaps xmm13, xmm0
movzx esi, byte [0x18009a7b4]
test sil, sil
jne 0x180003f63
lea r8, str.win32
xor edx, edx
mov ecx, 0xf001f
call qword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov qword [0x18009a7b8], rax
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov edx, 0xf001f
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rbx, rax
mov qword [0x18009a7c0], rax
mov sil, 1
mov byte [0x18009a7b4], sil
jmp 0x180003f6a
mov rbx, qword [0x18009a7c0]
cmp dword [rbx + 0x4c8], 1
jne 0x180004447
movaps xmm1, xmm9
movsd xmm0, qword [str.333333]
subsd xmm1, xmm0
movsd qword [rbp - 0x40], xmm1
movsd qword [rbp - 0x38], xmm11
movaps xmm2, xmm10
addsd xmm2, xmm0
movsd qword [rbp - 0x30], xmm2
movsd qword [rbp - 0x28], xmm1
movsd qword [rbp - 0x20], xmm11
subsd xmm10, xmm0
movsd qword [rbp - 0x18], xmm10
addsd xmm9, xmm0
movsd qword [rbp - 0x10], xmm9
movsd qword [rbp - 8], xmm11
movsd qword [rbp], xmm10
movsd qword [rbp + 8], xmm9
movsd qword [rbp + 0x10], xmm11
movsd qword [rbp + 0x18], xmm2
lea rsi, [rbp - 0x40]
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x40], xmm0
mov qword [rbp + 0x50], r13
mov ecx, 0x60
call fcn.18003fca0
mov rbx, rax
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x48], rax
lea rcx, [rax + 0x60]
mov qword [rbp + 0x50], rcx
mov r8d, 0x60
mov rdx, rsi
mov rcx, rax
call fcn.180061fd0
lea rcx, [rbx + 0x60]
mov qword [rbp + 0x48], rcx
mov rbx, qword [rbp + 0x40]
sub rcx, rbx
movabs r14, 0x2aaaaaaaaaaaaaab
mov rax, r14
imul rcx
mov rsi, rdx
sar rsi, 2
mov rax, rsi
shr rax, 0x3f
add rsi, rax
je 0x180004bf8
movsd xmm0, qword [rbx + 8]
movsd xmm7, qword [rbp - 0x60]
subsd xmm0, xmm7
movaps xmm1, xmm12
call fcn.18005f6f0
movaps xmm6, xmm0
movsd xmm0, qword [rbx]
movsd xmm8, qword [rbp - 0x68]
subsd xmm0, xmm8
movaps xmm1, xmm12
call fcn.18005f6f0
addsd xmm6, xmm0
movsd xmm0, qword [rbx + 0x10]
movsd xmm11, qword [rbp - 0x58]
subsd xmm0, xmm11
movaps xmm1, xmm12
call fcn.18005f6f0
addsd xmm6, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm6
ja 0x1800040b8
xorps xmm10, xmm10
sqrtsd xmm10, xmm6
jmp 0x1800040c4
movaps xmm0, xmm6
call fcn.180061488
movaps xmm10, xmm0
cmp rsi, 1
jbe 0x180004bf8
movsd xmm0, qword [rbx + 0x20]
subsd xmm0, xmm7
movaps xmm1, xmm12
call fcn.18005f6f0
movaps xmm6, xmm0
movsd xmm0, qword [rbx + 0x18]
subsd xmm0, xmm8
movaps xmm1, xmm12
call fcn.18005f6f0
addsd xmm6, xmm0
movsd xmm0, qword [rbx + 0x28]
subsd xmm0, xmm11
movaps xmm1, xmm12
call fcn.18005f6f0
addsd xmm6, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm6
ja 0x180004125
xorps xmm9, xmm9
sqrtsd xmm9, xmm6
jmp 0x180004131
movaps xmm0, xmm6
call fcn.180061488
movaps xmm9, xmm0
cmp rsi, 2
jbe 0x180004bf8
movsd xmm0, qword [rbx + 0x38]
subsd xmm0, xmm7
movaps xmm1, xmm12
call fcn.18005f6f0
movaps xmm6, xmm0
movsd xmm0, qword [rbx + 0x30]
subsd xmm0, xmm8
movaps xmm1, xmm12
call fcn.18005f6f0
addsd xmm6, xmm0
movsd xmm0, qword [rbx + 0x40]
subsd xmm0, xmm11
movaps xmm1, xmm12
call fcn.18005f6f0
addsd xmm6, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm6
ja 0x180004192
xorps xmm8, xmm8
sqrtsd xmm8, xmm6
jmp 0x18000419e
movaps xmm0, xmm6
call fcn.180061488
movaps xmm8, xmm0
cmp rsi, 3
jbe 0x180004bf8
movsd xmm0, qword [rbx + 0x50]
subsd xmm0, xmm7
movaps xmm1, xmm12
call fcn.18005f6f0
movaps xmm6, xmm0
movsd xmm0, qword [rbx + 0x48]
subsd xmm0, qword [rbp - 0x68]
movaps xmm1, xmm12
call fcn.18005f6f0
addsd xmm6, xmm0
movsd xmm0, qword [rbx + 0x58]
subsd xmm0, xmm11
movaps xmm1, xmm12
call fcn.18005f6f0
addsd xmm6, xmm0
xorps xmm1, xmm1
ucomisd xmm1, xmm6
ja 0x1800041fd
xorps xmm7, xmm7
sqrtsd xmm7, xmm6
jmp 0x180004208
movaps xmm0, xmm6
call fcn.180061488
movaps xmm7, xmm0
xorps xmm1, xmm1
movsd qword [rsp + 0x38], xmm10
movsd qword [rsp + 0x40], xmm9
movsd qword [rsp + 0x48], xmm8
movsd qword [rsp + 0x50], xmm7
lea rsi, [rsp + 0x38]
movdqu xmmword [rbp + 0x20], xmm1
mov qword [rbp + 0x30], r13
mov ecx, 0x20
call fcn.18003fca0
mov rbx, rax
mov qword [rbp + 0x20], rax
mov qword [rbp + 0x28], rax
lea rcx, [rax + 0x20]
mov qword [rbp + 0x30], rcx
mov r8d, 0x20
mov rdx, rsi
mov rcx, rax
call fcn.180061fd0
add rbx, 0x20
mov qword [rbp + 0x28], rbx
mov rax, rbx
mov r8, qword [rbp + 0x20]
sub rax, r8
sar rax, 3
test rax, rax
je 0x18000430a
mov r10, r13
mov r11d, 1
nop word [rax + rax]
mov rsi, r11
mov rdx, r11
mov rax, rbx
sub rax, r8
sar rax, 3
cmp r11, rax
jae 0x1800042f4
lea rcx, [r11*8]
mov r9, rcx
movsd xmm0, qword [r8 + r10]
movsd xmm1, qword [rcx + r8]
comisd xmm0, xmm1
jbe 0x1800042da
movsd qword [r8 + r10], xmm1
mov rax, qword [rbp + 0x20]
movsd qword [r9 + rax], xmm0
mov rbx, qword [rbp + 0x28]
mov r8, qword [rbp + 0x20]
inc rdx
add rcx, 8
add r9, 8
mov rax, rbx
sub rax, r8
sar rax, 3
cmp rdx, rax
jb 0x1800042b0
inc r11
add r10, 8
mov rcx, rbx
sub rcx, r8
sar rcx, 3
cmp rsi, rcx
jb 0x180004290
mov rcx, qword [rbp + 0x48]
mov r9, qword [rbp + 0x40]
sub rcx, r9
mov rax, r14
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
je 0x180004bf2
movups xmm6, xmmword [r9]
movsd xmm0, qword [r9 + 0x10]
movsd qword [rsp + 0x68], xmm0
sub rbx, r8
sar rbx, 3
test rbx, rbx
je 0x180004be0
movsd xmm1, qword [r8]
ucomisd xmm1, xmm10
jp 0x180004363
jne 0x180004363
movsd qword [rsp + 0x68], xmm0
ucomisd xmm1, xmm9
jp 0x180004387
jne 0x180004387
cmp rdx, 1
jbe 0x180004bf2
movups xmm6, xmmword [r9 + 0x18]
movsd xmm0, qword [r9 + 0x28]
movsd qword [rsp + 0x68], xmm0
ucomisd xmm1, xmm8
jp 0x1800043ab
jne 0x1800043ab
cmp rdx, 2
jbe 0x180004bf2
movups xmm6, xmmword [r9 + 0x30]
movsd xmm0, qword [r9 + 0x40]
movsd qword [rsp + 0x68], xmm0
ucomisd xmm1, xmm7
jp 0x1800043ce
jne 0x1800043ce
cmp rdx, 3
jbe 0x180004bf2
movups xmm6, xmmword [r9 + 0x48]
movsd xmm0, qword [r9 + 0x58]
movsd qword [rsp + 0x68], xmm0
subsd xmm6, qword [rbp - 0x68]
movsd xmm8, qword [rsp + 0x68]
subsd xmm8, xmm11
test r8, r8
je 0x180004430
mov rax, qword [rbp + 0x30]
sub rax, r8
sar rax, 3
lea rdx, [rax*8]
mov rax, r8
cmp rdx, 0x1000
jb 0x18000441c
add rdx, 0x27
mov r8, qword [r8 - 8]
sub rax, r8
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004be6
mov rcx, r8
call fcn.18004004c
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x20], xmm0
mov qword [rbp + 0x30], r13
lea rcx, [rbp + 0x40]
call fcn.180004c40
movzx esi, byte [0x18009a7b4]
mov rbx, qword [0x18009a7c0]
cvtpd2ps xmm0, xmm8
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm6
call fcn.18005e658
mulss xmm0, dword [0x18008be08]
divss xmm0, dword [0x18008bd98]
subss xmm0, dword [0x18008bdfc]
subss xmm0, xmm15
movss xmm7, dword [0x18008be10]
movaps xmm1, xmm7
call fcn.18005f4a4
movaps xmm9, xmm0
comiss xmm9, dword [0x18008be08]
jb 0x18000449c
addss xmm9, dword [0x18008be54]
movss xmm1, dword [0x18008be50]
comiss xmm1, xmm9
jbe 0x1800044af
addss xmm9, xmm7
movaps xmm6, xmm9
andps xmm6, xmmword [0x18008c120]
test sil, sil
jne 0x180004507
lea r8, str.win32
xor edx, edx
mov ecx, 0xf001f
call qword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov qword [0x18009a7b8], rax
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov edx, 0xf001f
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rbx, rax
mov qword [0x18009a7c0], rax
mov sil, 1
mov byte [0x18009a7b4], sil
cvttss2si eax, xmm6
cmp eax, dword [rbx + 0x4b8]
jg 0x180003772
comiss xmm6, dword [0x18008bd68]
jbe 0x180003772
test sil, sil
jne 0x18000456e
lea r8, str.win32
xor edx, edx
mov ecx, 0xf001f
call qword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov qword [0x18009a7b8], rax
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov edx, 0xf001f
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rbx, rax
mov qword [0x18009a7c0], rax
mov byte [0x18009a7b4], 1
call fcn.180045fa4
xorps xmm8, xmm8
cvtsi2ss xmm8, eax
movss xmm11, dword [0x18008be2c]
divss xmm8, xmm11
mulss xmm8, dword [0x18008bd40]
subss xmm8, dword [0x18008bd38]
addss xmm8, dword [rbx + 0x4bc]
call fcn.180045fa4
xorps xmm7, xmm7
cvtsi2ss xmm7, eax
divss xmm7, xmm11
call fcn.180045fa4
xorps xmm10, xmm10
cvtsi2ss xmm10, eax
divss xmm10, xmm11
mulss xmm10, dword [0x18008bdc0]
addss xmm10, dword [0x18008bd38]
addss xmm10, xmm8
mulss xmm7, dword [0x18008bcf8]
addss xmm7, dword [0x18008bcec]
mulss xmm10, xmm7
mulss xmm10, xmm9
movaps xmm1, xmm10
andps xmm1, xmmword [0x18008c120]
movss xmm0, dword [0x18008bdc4]
comiss xmm0, xmm1
jb 0x18000462f
mov edx, 8
mov ecx, 1
call fcn.180016d10
cmp eax, 2
jg 0x18000462f
mulss xmm10, dword [0x18008be4c]
call fcn.180045fa4
movd xmm0, eax
cvtdq2ps xmm0, xmm0
divss xmm0, xmm11
mulss xmm0, dword [0x18008bcc8]
movss xmm6, dword [0x18008bccc]
subss xmm6, xmm0
mulss xmm6, xmm10
mov rdx, rdi
mov rcx, r15
call fcn.18000b150
movaps xmm7, xmm0
addss xmm7, xmm6
mov rdx, rdi
mov rcx, r15
call fcn.18000b270
movaps xmm8, xmm0
addss xmm8, xmm6
mov rax, qword [rdi]
mov r8, qword [rax + 0xf8]
mov rdx, r15
mov rcx, rdi
call r8
mov rsi, rax
test rax, rax
je 0x180004759
mov r8d, 1
lea rdx, str.rotationYaw
lea rcx, [rsp + 0x38]
call fcn.180014c90
mov r8, rax
cmp qword [rax + 0x18], 0xf
jbe 0x1800046c2
mov r8, qword [rax]
mov rax, qword [rdi]
mov r10, qword [rax + 0x2f0]
lea r9, [0x18008a87c]
mov rdx, rsi
mov rcx, rdi
call r10
mov rbx, rax
mov rdx, qword [rsp + 0x50]
cmp rdx, 0xf
jbe 0x18000471c
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004717
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004bec
call fcn.18004004c
movdqu xmmword [rsp + 0x48], xmm14
mov byte [rsp + 0x38], 0
mov rax, qword [rdi]
mov r8, qword [rax + 0xb8]
mov rdx, rsi
mov rcx, rdi
call r8
test rbx, rbx
je 0x180004759
mov rax, qword [rdi]
mov r9, qword [rax + 0x378]
movaps xmm3, xmm7
mov r8, rbx
mov rdx, r15
mov rcx, rdi
call r9
mov rax, qword [rdi]
mov r8, qword [rax + 0xf8]
mov rdx, r15
mov rcx, rdi
call r8
mov rbx, rax
test rax, rax
je 0x180004834
mov r8d, 1
lea rdx, str.prevRotationYaw
lea rcx, [rsp + 0x58]
call fcn.180014c90
mov r8, rax
cmp qword [rax + 0x18], 0xf
jbe 0x18000479c
mov r8, qword [rax]
mov rax, qword [rdi]
mov r10, qword [rax + 0x2f0]
lea r9, [0x18008a87c]
mov rdx, rbx
mov rcx, rdi
call r10
mov rsi, rax
mov rdx, qword [rsp + 0x70]
cmp rdx, 0xf
jbe 0x1800047f6
inc rdx
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800047f1
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004bfe
call fcn.18004004c
movdqu xmmword [rsp + 0x68], xmm14
mov byte [rsp + 0x58], 0
mov rax, qword [rdi]
mov r8, qword [rax + 0xb8]
mov rdx, rbx
mov rcx, rdi
call r8
test rsi, rsi
je 0x180004834
mov rax, qword [rdi]
mov r9, qword [rax + 0x378]
movaps xmm3, xmm8
mov r8, rsi
mov rdx, r15
mov rcx, rdi
call r9
cmp byte [0x18009a7b4], 0
jne 0x180004881
lea r8, str.win32
xor edx, edx
mov ecx, 0xf001f
call qword [sym.imp.KERNEL32.dll_OpenFileMappingA]
mov qword [0x18009a7b8], rax
mov qword [rsp + 0x20], r13
xor r9d, r9d
xor r8d, r8d
mov edx, 0xf001f
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov qword [0x18009a7c0], rax
mov byte [0x18009a7b4], 1
jmp 0x180004888
mov rax, qword [0x18009a7c0]
cmp byte [rax + 0x4c3], 0
je 0x180003772
movss xmm0, dword [0x18009a804]
ucomiss xmm0, xmm13
jp 0x180004baa
jne 0x180004baa
mov edx, 0xa
mov ecx, 1
call fcn.180016d10
cmp eax, 1
jne 0x180004baa
andps xmm13, xmmword [0x18008c120]
movss xmm0, dword [0x18008bdf8]
comiss xmm0, xmm13
jbe 0x180004baa
call fcn.180045fa4
movd xmm6, eax
cvtdq2ps xmm6, xmm6
divss xmm6, xmm11
mulss xmm6, dword [0x18008bce4]
subss xmm6, dword [0x18008bcdc]
mov rdx, rdi
mov rcx, r15
call fcn.18000b030
movaps xmm7, xmm0
addss xmm7, xmm6
mov rax, qword [rdi]
mov r8, qword [rax + 0xf8]
mov rdx, r15
mov rcx, rdi
call r8
mov rbx, rax
test rax, rax
je 0x1800049ec
mov r8d, 1
lea rdx, str.rotationPitch
lea rcx, [rsp + 0x38]
call fcn.180014c90
mov r8, rax
cmp qword [rax + 0x18], 0xf
jbe 0x180004955
mov r8, qword [rax]
mov rax, qword [rdi]
mov r10, qword [rax + 0x2f0]
lea r9, [0x18008a87c]
mov rdx, rbx
mov rcx, rdi
call r10
mov rsi, rax
mov rdx, qword [rsp + 0x50]
cmp rdx, 0xf
jbe 0x1800049af
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800049aa
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004c04
call fcn.18004004c
movdqu xmmword [rsp + 0x48], xmm14
mov byte [rsp + 0x38], 0
mov rax, qword [rdi]
mov r8, qword [rax + 0xb8]
mov rdx, rbx
mov rcx, rdi
call r8
test rsi, rsi
je 0x1800049ec
mov rax, qword [rdi]
mov r9, qword [rax + 0x378]
movaps xmm3, xmm7
mov r8, rsi
mov rdx, r15
mov rcx, rdi
call r9
mov rax, qword [rdi]
mov r8, qword [rax + 0xf8]
mov rdx, r15
mov rcx, rdi
call r8
mov rbx, rax
test rax, rax
jne 0x180004a0f
xorps xmm0, xmm0
jmp 0x180004ad8
mov r8d, 1
lea rdx, str.prevRotationPitch
lea rcx, [rsp + 0x38]
call fcn.180014c90
mov r8, rax
cmp qword [rax + 0x18], 0xf
jbe 0x180004a33
mov r8, qword [rax]
mov rax, qword [rdi]
mov r10, qword [rax + 0x2f0]
lea r9, [0x18008a87c]
mov rdx, rbx
mov rcx, rdi
call r10
mov rsi, rax
mov rdx, qword [rsp + 0x50]
cmp rdx, 0xf
jbe 0x180004a8d
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004a88
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004c0a
call fcn.18004004c
movdqu xmmword [rsp + 0x48], xmm14
mov byte [rsp + 0x38], 0
mov rax, qword [rdi]
mov r8, qword [rax + 0xb8]
mov rdx, rbx
mov rcx, rdi
call r8
test rsi, rsi
je 0x180004ac9
mov rax, qword [rdi]
mov r9, qword [rax + 0x330]
mov r8, rsi
mov rdx, r15
mov rcx, rdi
call r9
jmp 0x180004ad8
xorps xmm0, xmm0
movss dword [rsp + 0x30], xmm0
movss xmm0, dword [rsp + 0x30]
addss xmm6, xmm0
mov rax, qword [rdi]
mov r9, qword [rax + 0xf8]
mov rdx, r15
mov rcx, rdi
call r9
mov rbx, rax
test rax, rax
je 0x180004baa
mov r8d, 1
lea rdx, str.prevRotationPitch
lea rcx, [rsp + 0x38]
call fcn.180014c90
mov r8, rax
cmp qword [rax + 0x18], 0xf
jbe 0x180004b1f
mov r8, qword [rax]
mov rax, qword [rdi]
mov r10, qword [rax + 0x2f0]
lea r9, [0x18008a87c]
mov rdx, rbx
mov rcx, rdi
call r10
mov rsi, rax
mov rdx, qword [rsp + 0x50]
cmp rdx, 0xf
jbe 0x180004b75
inc rdx
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x180004b70
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180004bc2
call fcn.18004004c
movdqu xmmword [rsp + 0x48], xmm14
mov byte [rsp + 0x38], 0
mov rax, qword [rdi]
mov rdx, rbx
mov rcx, rdi
call qword [rax + 0xb8]
test rsi, rsi
je 0x180004baa
mov rax, qword [rdi]
movaps xmm3, xmm6
mov r8, rsi
mov rdx, r15
mov rcx, rdi
call qword [rax + 0x378]
mov rdx, rdi
mov rcx, r15
call fcn.18000b030
movss dword [0x18009a804], xmm0
jmp 0x180003772
call fcn.180045ed4
int3
call fcn.180045ed4
nop
call fcn.180045ed4
nop
call fcn.180045ed4
nop
call fcn.180045ed4
nop
call fcn.180004c20
nop
call fcn.180045ed4
nop
call fcn.180045ed4
nop
call fcn.180004c20
nop
call fcn.180004c20
nop
call fcn.180045ed4
int3
call fcn.180045ed4
int3
call fcn.180045ed4
int3