Function at 0x180047cb0
Capabilities:
Encode data using xor
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x20], rbx
push rbp
lea rbp, [rax - 0x2f8]
sub rsp, 0x3f0
movaps xmmword [rax - 0x18], xmm6
movaps xmmword [rax - 0x28], xmm7
movaps xmmword [rax - 0x38], xmm8
mov rax, qword [0x180090010]
xor rax, rsp
mov qword [rbp + 0x270], rax
mov rax, qword [0x180090c90]
cmp byte [rax + 0x14c], 0
je 0x180047fa2
cmp byte [0x180084ed1], 0
movups xmm0, xmmword [0x180084eb8]
movzx eax, word [0x180084ed0]
mov word [rbp + 0x68], ax
movups xmmword [rbp + 0x50], xmm0
movsd xmm0, qword [0x180084ec8]
movsd qword [rbp + 0x60], xmm0
je 0x180047ed4
xor r8d, r8d
cmp dword [0x180090018], 2
jl 0x180047e91
movdqa xmm0, xmmword [0x180085c60]
lea rcx, [rbp + 0x54]
movdqa xmm5, xmmword [0x180085bb0]
mov eax, 0x1a
movdqa xmm4, xmmword [0x1800860e0]
movdqa xmm7, xmmword [0x180085c50]
movdqa xmmword [rbp - 0x60], xmm0
mov edx, dword [rbp - 0x60]
movd xmm6, eax
mov eax, 0x1f
movd xmm8, eax
nop word [rax + rax]
movd xmm2, r8d
lea eax, [r8 + 4]
pshufd xmm2, xmm2, 0
lea rcx, [rcx + 8]
paddd xmm2, xmm5
movd xmm3, eax
movdqa xmm1, xmm2
pshufd xmm3, xmm3, 0
punpckldq xmm1, xmm2
movdqa xmm0, xmm2
punpckhdq xmm0, xmm2
paddd xmm3, xmm5
pmuldq xmm0, xmm4
add r8d, 8
pmuldq xmm1, xmm4
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm2
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm2, xmm0
pshuflw xmm0, xmm2, 0xd8
pshufhw xmm1, xmm0, 0xd8
pshufd xmm2, xmm1, 0xd8
movdqa xmm1, xmm3
pand xmm2, xmmword [0x180085c10]
packuswb xmm2, xmm2
punpckldq xmm1, xmm3
pmuldq xmm1, xmm4
movd xmm0, edx
paddb xmm2, xmm0
movd xmm0, dword [rcx - 0xc]
pxor xmm2, xmm0
movdqa xmm0, xmm3
punpckhdq xmm0, xmm3
pmuldq xmm0, xmm4
movd dword [rcx - 0xc], xmm2
shufps xmm1, xmm0, 0xdd
paddd xmm1, xmm3
psrad xmm1, xmm6
movdqa xmm0, xmm1
psrld xmm0, xmm8
paddd xmm0, xmm1
pmulld xmm0, xmm7
psubd xmm3, xmm0
pshuflw xmm0, xmm3, 0xd8
pshufhw xmm1, xmm0, 0xd8
movd xmm0, edx
pshufd xmm2, xmm1, 0xd8
pand xmm2, xmmword [0x180085c10]
packuswb xmm2, xmm2
paddb xmm2, xmm0
movd xmm0, dword [rcx - 8]
pxor xmm2, xmm0
movd dword [rcx - 8], xmm2
cmp r8d, 0x18
jl 0x180047d80
cmp r8d, 0x1a
jge 0x180047ed4
movsxd rax, r8d
lea r9, [rbp + 0x50]
add r9, rax
nop dword [rax + rax]
mov eax, 0x8b6e9c87
lea r9, [r9 + 1]
imul r8d
add edx, r8d
sar edx, 0x1a
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, dl
imul ecx, eax, 0x7a
movzx eax, r8b
inc r8d
sub al, cl
add al, 0x34
xor byte [r9 - 1], al
cmp r8d, 0x1a
jl 0x180047ea0
xor r9d, r9d
lea r8, [rbp + 0x50]
xor edx, edx
call fcn.18005bb20
test rax, rax
je 0x180047f78
xor edx, edx
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
lea ecx, [rdx + 2]
call qword [sym.imp.USER32.dll_mouse_event]
mov byte [0x180090bf0], 1
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cmp rbx, 0x989680
jne 0x180047f2a
imul rax, rax, 0x64
jmp 0x180047f48
cqo
idiv rbx
mov rcx, rax
imul rax, rdx, 0x3b9aca00
imul rcx, rcx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
movabs rcx, 0x7ffffffffff0bdbf
cmp rax, rcx
jge 0x180047f5f
add rax, 0xf4240
jmp 0x180047f69
movabs rax, 0x7fffffffffffffff
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x50], rax
call fcn.180048c60
cmp byte [0x180090bf0], 0
je 0x180047fa2
xor edx, edx
mov qword [rsp + 0x20], 0
xor r9d, r9d
xor r8d, r8d
lea ecx, [rdx + 4]
call qword [sym.imp.USER32.dll_mouse_event]
mov byte [0x180090bf0], 0
mov rax, qword [0x180090c90]
cmp byte [rax + 0x134], 0
je 0x180048c30
mov rax, qword [0x180090da8]
mov qword [rsp + 0x408], rdi
movaps xmmword [rsp + 0x3b0], xmm9
movaps xmmword [rsp + 0x380], xmm12
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x410], r14
mov rax, qword [rcx]
test rax, rax
jne 0x180047ff0
xor r14d, r14d
jmp 0x180047ff4
mov r14, qword [rax + 8]
mov qword [rsp + 0x400], rsi
call fcn.180047950
movss xmm12, dword [0x180085994]
mov rdi, rax
mov rax, qword [0x180090c90]
xorps xmm8, xmm8
movss xmm9, dword [0x180085940]
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x48], 0
cmp byte [rax + 0x13d], 0
je 0x18004811e
mov rcx, qword [0x180090b80]
lea r8, str.Foreground
mov rdx, qword [rcx + 0x4890]
mov rcx, qword [rdx]
mov edx, 1
call fcn.180009ba0
movaps xmm0, xmmword [0x180086040]
lea rcx, [rbp - 0x60]
movups xmmword [rbp - 0x60], xmm0
mov rbx, rax
call fcn.180006610
mov rcx, qword [0x180090d78]
mov esi, eax
mov rax, qword [0x180090c90]
movss xmm0, dword [rcx]
movss xmm1, dword [rcx + 4]
movd xmm2, dword [rax + 0x160]
mulss xmm0, xmm9
mulss xmm1, xmm9
movss dword [rsp + 0x50], xmm0
cvtdq2ps xmm2, xmm2
movss dword [rsp + 0x54], xmm1
test esi, 0xff000000
je 0x180048125
comiss xmm9, xmm2
ja 0x180048125
movss xmm0, dword [0x180085a10]
subss xmm2, xmm9
mov dword [rsp + 0x28], 0x63
lea rdx, [rsp + 0x50]
xorps xmm3, xmm3
movss dword [rsp + 0x20], xmm0
mov rcx, rbx
call fcn.180027e10
mov r8d, dword [rbx + 0x78]
mov r9d, esi
mov rdx, qword [rbx + 0x80]
mov rcx, rbx
movss dword [rsp + 0x28], xmm12
mov dword [rsp + 0x20], 1
call fcn.1800263b0
mov dword [rbx + 0x78], 0
mov rax, qword [0x180090c90]
mov rcx, qword [0x180090d78]
test rdi, rdi
je 0x180048c06
cmp byte [rax + 0x135], 0
movaps xmmword [rsp + 0x3a0], xmm10
movaps xmmword [rsp + 0x390], xmm11
movsd xmm11, qword [0x1800859d0]
jne 0x18004848c
lea rcx, str.FiveM_b2802_GTAProcess.exe
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
jne 0x1800482fc
lea rcx, str.FiveM_b2802_GameProcess.exe
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
test rax, rax
jne 0x1800482fc
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x438]
lea r8, [rbp - 0x30]
movups xmm1, xmmword [rdi + 0x70]
lea rdx, [rbp - 0x50]
mov dword [rbp - 0x48], eax
movups xmmword [rbp - 0x30], xmm0
lea rcx, [rbp - 0x80]
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp - 0x20], xmm1
movups xmm1, xmmword [rdi + 0x90]
movups xmmword [rbp - 0x10], xmm0
movsd xmm0, qword [rdi + 0x430]
movsd qword [rbp - 0x50], xmm0
movups xmmword [rbp], xmm1
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm0, dword [rbp - 0x80]
mov rcx, qword [0x180090c90]
movss xmm1, dword [rbp - 0x7c]
movss dword [rsp + 0x40], xmm0
movss xmm0, dword [rbp - 0x78]
mov ecx, dword [rcx + 0x15c]
movss dword [rsp + 0x44], xmm1
movss dword [rsp + 0x48], xmm0
sub ecx, 1
je 0x1800482d6
sub ecx, 1
je 0x1800482b0
sub ecx, 1
je 0x18004828d
cmp ecx, 1
jne 0x180048975
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x498]
movups xmmword [rbp + 0x10], xmm0
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp + 0x30], xmm0
movsd xmm0, qword [rdi + 0x490]
movups xmm1, xmmword [rdi + 0x70]
lea r8, [rbp + 0x10]
movups xmmword [rbp + 0x20], xmm1
movups xmm1, xmmword [rdi + 0x90]
movups xmmword [rbp + 0x40], xmm1
lea rdx, [rsp + 0x68]
movsd qword [rsp + 0x68], xmm0
lea rcx, [rsp + 0x58]
mov dword [rsp + 0x70], eax
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm0, dword [rsp + 0x58]
movss xmm1, dword [rsp + 0x5c]
movss dword [rsp + 0x40], xmm0
movss xmm0, dword [rsp + 0x60]
jmp 0x180048969
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x488]
movups xmmword [rbp + 0x10], xmm0
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp + 0x30], xmm0
movsd xmm0, qword [rdi + 0x480]
jmp 0x18004823f
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x4b8]
movups xmmword [rbp + 0x10], xmm0
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp + 0x30], xmm0
movsd xmm0, qword [rdi + 0x4b0]
jmp 0x18004823f
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x4a8]
movups xmmword [rbp + 0x10], xmm0
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp + 0x30], xmm0
movsd xmm0, qword [rdi + 0x4a0]
jmp 0x18004823f
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x488]
lea r8, [rbp + 0x10]
movups xmm1, xmmword [rdi + 0x70]
lea rdx, [rbp - 0x50]
mov dword [rbp - 0x48], eax
movups xmmword [rbp + 0x10], xmm0
lea rcx, [rbp - 0x80]
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp + 0x20], xmm1
movups xmm1, xmmword [rdi + 0x90]
movups xmmword [rbp + 0x30], xmm0
movsd xmm0, qword [rdi + 0x480]
movsd qword [rbp - 0x50], xmm0
movups xmmword [rbp + 0x40], xmm1
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm0, dword [rbp - 0x80]
mov rcx, qword [0x180090c90]
movss xmm1, dword [rbp - 0x7c]
movss dword [rsp + 0x40], xmm0
movss xmm0, dword [rbp - 0x78]
mov ecx, dword [rcx + 0x15c]
movss dword [rsp + 0x44], xmm1
movss dword [rsp + 0x48], xmm0
sub ecx, 1
je 0x18004844f
sub ecx, 1
je 0x180048412
sub ecx, 1
je 0x1800483d5
cmp ecx, 1
jne 0x180048975
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x468]
lea r8, [rbp - 0x30]
movups xmm1, xmmword [rdi + 0x70]
movups xmmword [rbp - 0x30], xmm0
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp - 0x20], xmm1
movups xmm1, xmmword [rdi + 0x90]
movups xmmword [rbp - 0x10], xmm0
movsd xmm0, qword [rdi + 0x460]
movups xmmword [rbp], xmm1
jmp 0x180048256
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x478]
lea r8, [rbp - 0x30]
movups xmm1, xmmword [rdi + 0x70]
movups xmmword [rbp - 0x30], xmm0
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp - 0x20], xmm1
movups xmm1, xmmword [rdi + 0x90]
movups xmmword [rbp - 0x10], xmm0
movsd xmm0, qword [rdi + 0x470]
movups xmmword [rbp], xmm1
jmp 0x180048256
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x498]
lea r8, [rbp - 0x30]
movups xmm1, xmmword [rdi + 0x70]
movups xmmword [rbp - 0x30], xmm0
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp - 0x20], xmm1
movups xmm1, xmmword [rdi + 0x90]
movups xmmword [rbp - 0x10], xmm0
movsd xmm0, qword [rdi + 0x490]
movups xmmword [rbp], xmm1
jmp 0x180048256
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x618]
lea r8, [rbp - 0x30]
movups xmm1, xmmword [rdi + 0x70]
movups xmmword [rbp - 0x30], xmm0
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp - 0x20], xmm1
movups xmm1, xmmword [rdi + 0x90]
movups xmmword [rbp - 0x10], xmm0
movsd xmm0, qword [rdi + 0x610]
movups xmmword [rbp], xmm1
jmp 0x180048256
movss xmm7, dword [rcx]
lea rdx, [rbp - 0x70]
movss xmm6, dword [rcx + 4]
xor r9d, r9d
mov r8, rdi
mulss xmm7, xmm9
mulss xmm6, xmm9
call fcn.180042970
mov r9d, 7
lea rdx, [rbp - 0x40]
mov r8, rdi
call fcn.180042970
mov r9d, 8
lea rdx, [rbp + 0x110]
mov r8, rdi
call fcn.180042970
mov r9d, 1
lea rdx, [rbp + 0x118]
mov r8, rdi
call fcn.180042970
mov r9d, 2
lea rdx, [rbp + 0x120]
mov r8, rdi
call fcn.180042970
mov r9d, 6
lea rdx, [rsp + 0x68]
mov r8, rdi
call fcn.180042970
mov r9d, 5
lea rdx, [rbp - 0x50]
mov r8, rdi
call fcn.180042970
movss xmm0, dword [rbp - 0x6c]
cvtps2pd xmm1, xmm6
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
movaps xmm1, xmm11
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movaps xmm6, xmm0
movss xmm0, dword [rbp - 0x70]
cvtps2pd xmm1, xmm7
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
movaps xmm1, xmm11
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm6, xmm0
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm6
ucomiss xmm1, xmm0
ja 0x180048573
xorps xmm6, xmm6
sqrtss xmm6, xmm0
jmp 0x18004857b
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm6, xmm0
movss xmm7, dword [0x180085a3c]
comiss xmm7, xmm6
jbe 0x180048975
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x438]
lea r8, [rbp + 0x10]
movups xmm1, xmmword [rdi + 0x70]
lea rdx, [rbp + 0x70]
mov dword [rbp + 0x78], eax
movups xmmword [rbp + 0x10], xmm0
lea rcx, [rbp + 0xc0]
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp + 0x20], xmm1
movups xmm1, xmmword [rdi + 0x90]
movups xmmword [rbp + 0x30], xmm0
movsd xmm0, qword [rdi + 0x430]
movsd qword [rbp + 0x70], xmm0
movups xmmword [rbp + 0x40], xmm1
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
comiss xmm7, xmm6
movss xmm0, dword [rbp + 0xc0]
movss xmm1, dword [rbp + 0xc4]
movss dword [rsp + 0x40], xmm0
movss xmm0, dword [rbp + 0xc8]
movss dword [rsp + 0x48], xmm0
movss dword [rsp + 0x44], xmm1
jbe 0x180048975
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x4a8]
lea r8, [rbp - 0x30]
movups xmm1, xmmword [rdi + 0x70]
lea rdx, [rbp + 0x80]
mov dword [rbp + 0x88], eax
movups xmmword [rbp - 0x30], xmm0
lea rcx, [rbp + 0xd0]
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp - 0x20], xmm1
movups xmm1, xmmword [rdi + 0x90]
movups xmmword [rbp - 0x10], xmm0
movsd xmm0, qword [rdi + 0x4a0]
movsd qword [rbp + 0x80], xmm0
movups xmmword [rbp], xmm1
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
comiss xmm7, xmm6
movss xmm0, dword [rbp + 0xd0]
movss xmm1, dword [rbp + 0xd4]
movss dword [rsp + 0x40], xmm0
movss xmm0, dword [rbp + 0xd8]
movss dword [rsp + 0x48], xmm0
movss dword [rsp + 0x44], xmm1
jbe 0x180048975
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x4b8]
lea r8, [rbp + 0x130]
movups xmm1, xmmword [rdi + 0x70]
lea rdx, [rbp + 0x90]
mov dword [rbp + 0x98], eax
movups xmmword [rbp + 0x130], xmm0
lea rcx, [rbp + 0xe0]
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp + 0x140], xmm1
movups xmm1, xmmword [rdi + 0x90]
movups xmmword [rbp + 0x150], xmm0
movsd xmm0, qword [rdi + 0x4b0]
movsd qword [rbp + 0x90], xmm0
movups xmmword [rbp + 0x160], xmm1
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
comiss xmm7, xmm6
movss xmm0, dword [rbp + 0xe0]
movss xmm1, dword [rbp + 0xe4]
movss dword [rsp + 0x40], xmm0
movss xmm0, dword [rbp + 0xe8]
movss dword [rsp + 0x48], xmm0
movss dword [rsp + 0x44], xmm1
jbe 0x180048975
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x448]
lea r8, [rbp + 0x170]
movups xmm1, xmmword [rdi + 0x70]
lea rdx, [rbp + 0xa0]
mov dword [rbp + 0xa8], eax
movups xmmword [rbp + 0x170], xmm0
lea rcx, [rbp + 0xf0]
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp + 0x180], xmm1
movups xmm1, xmmword [rdi + 0x90]
movups xmmword [rbp + 0x190], xmm0
movsd xmm0, qword [rdi + 0x440]
movsd qword [rbp + 0xa0], xmm0
movups xmmword [rbp + 0x1a0], xmm1
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
comiss xmm7, xmm6
movss xmm0, dword [rbp + 0xf0]
movss xmm1, dword [rbp + 0xf4]
movss dword [rsp + 0x40], xmm0
movss xmm0, dword [rbp + 0xf8]
movss dword [rsp + 0x48], xmm0
movss dword [rsp + 0x44], xmm1
jbe 0x180048975
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x458]
lea r8, [rbp + 0x1b0]
movups xmm1, xmmword [rdi + 0x70]
lea rdx, [rbp + 0xb0]
mov dword [rbp + 0xb8], eax
movups xmmword [rbp + 0x1b0], xmm0
lea rcx, [rbp + 0x100]
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp + 0x1c0], xmm1
movups xmm1, xmmword [rdi + 0x90]
movups xmmword [rbp + 0x1d0], xmm0
movsd xmm0, qword [rdi + 0x450]
movsd qword [rbp + 0xb0], xmm0
movups xmmword [rbp + 0x1e0], xmm1
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
comiss xmm7, xmm6
movss xmm0, dword [rbp + 0x100]
movss xmm1, dword [rbp + 0x104]
movss dword [rsp + 0x40], xmm0
movss xmm0, dword [rbp + 0x108]
movss dword [rsp + 0x48], xmm0
movss dword [rsp + 0x44], xmm1
jbe 0x180048975
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x498]
lea r8, [rbp + 0x1f0]
movups xmm1, xmmword [rdi + 0x70]
lea rdx, [rsp + 0x58]
mov dword [rsp + 0x60], eax
movups xmmword [rbp + 0x1f0], xmm0
lea rcx, [rbp + 0x50]
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp + 0x200], xmm1
movups xmm1, xmmword [rdi + 0x90]
movups xmmword [rbp + 0x210], xmm0
movsd xmm0, qword [rdi + 0x490]
movsd qword [rsp + 0x58], xmm0
movups xmmword [rbp + 0x220], xmm1
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
comiss xmm7, xmm6
movss xmm0, dword [rbp + 0x50]
movss xmm1, dword [rbp + 0x54]
movss dword [rsp + 0x40], xmm0
movss xmm0, dword [rbp + 0x58]
movss dword [rsp + 0x48], xmm0
movss dword [rsp + 0x44], xmm1
jbe 0x180048975
movups xmm0, xmmword [rdi + 0x60]
mov eax, dword [rdi + 0x488]
lea r8, [rbp + 0x230]
movups xmm1, xmmword [rdi + 0x70]
lea rdx, [rbp - 0x80]
mov dword [rbp - 0x78], eax
movups xmmword [rbp + 0x230], xmm0
lea rcx, [rbp - 0x60]
movups xmm0, xmmword [rdi + 0x80]
movups xmmword [rbp + 0x240], xmm1
movups xmm1, xmmword [rdi + 0x90]
movups xmmword [rbp + 0x250], xmm0
movsd xmm0, qword [rdi + 0x480]
movsd qword [rbp - 0x80], xmm0
movups xmmword [rbp + 0x260], xmm1
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm0, dword [rbp - 0x60]
movss xmm1, dword [rbp - 0x5c]
movss dword [rsp + 0x40], xmm0
movss xmm0, dword [rbp - 0x58]
movss dword [rsp + 0x44], xmm1
movss dword [rsp + 0x48], xmm0
mov rax, qword [0x180090c90]
mov esi, dword [rsp + 0x48]
movsd xmm10, qword [rsp + 0x40]
cmp byte [rax + 0x144], 0
je 0x180048a9d
mov rax, qword [0x180090da8]
lea r8, [rsp + 0x54]
mov rbx, qword [0x180090b80]
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x40]
movsd qword [rsp + 0x40], xmm10
mov dword [rsp + 0x48], esi
mov qword [rsp + 0x50], 0
call qword [rax + 0x38]
movss xmm7, dword [rsp + 0x50]
mulss xmm7, dword [rbx + 0x10]
movss xmm6, dword [rsp + 0x54]
movaps xmm0, xmmword [0x180085e10]
mulss xmm6, dword [rbx + 0x14]
movaps xmmword [rbp - 0x60], xmm0
movss xmm0, dword [0x180085904]
comiss xmm0, xmm7
movss dword [rsp + 0x50], xmm7
movss dword [rsp + 0x54], xmm6
ja 0x180048a9d
movsd xmm0, qword [0x1800859b0]
cvtps2pd xmm1, xmm6
comisd xmm0, xmm1
ja 0x180048a9d
mov rax, qword [0x180090b80]
comiss xmm7, dword [rax + 0x10]
ja 0x180048a9d
comiss xmm6, dword [rax + 0x14]
ja 0x180048a9d
mov rax, qword [rax + 0x4890]
lea r8, str.Background
xor edx, edx
mov rcx, qword [rax]
call fcn.180009ba0
movaps xmm0, xmm7
movss dword [rbp - 0x40], xmm7
addss xmm0, dword [0x180085a00]
lea rcx, [rbp - 0x60]
movss dword [rbp - 0x3c], xmm6
mov r10, rax
movss dword [rbp - 0x70], xmm0
movaps xmm0, xmm6
addss xmm0, dword [0x180085a00]
movss dword [rbp - 0x6c], xmm0
call fcn.180006610
movss dword [rsp + 0x30], xmm12
lea rdx, [rbp - 0x40]
mov r9d, eax
movss dword [rsp + 0x20], xmm8
lea r8, [rbp - 0x70]
mov rcx, r10
call fcn.180028910
mov rax, qword [0x180090c90]
mov ecx, dword [rax + 0x164]
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x180048bf4
mov rax, qword [0x180090d78]
lea r8, [rsp + 0x54]
mov rbx, qword [0x180090b80]
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x80]
movss xmm8, dword [rax]
movss xmm6, dword [rax + 4]
mov rax, qword [0x180090da8]
mulss xmm8, xmm9
mov dword [rbp - 0x78], esi
mulss xmm6, xmm9
mov qword [rsp + 0x50], 0
movsd qword [rbp - 0x80], xmm10
call qword [rax + 0x38]
movss xmm0, dword [rsp + 0x54]
movaps xmm1, xmm11
mulss xmm0, dword [rbx + 0x14]
movss xmm7, dword [rsp + 0x50]
mulss xmm7, dword [rbx + 0x10]
movss dword [rsp + 0x54], xmm0
cvtps2pd xmm0, xmm0
cvtps2pd xmm2, xmm6
movss dword [rsp + 0x50], xmm7
subsd xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movaps xmm6, xmm0
movaps xmm1, xmm11
cvtps2pd xmm0, xmm7
cvtps2pd xmm2, xmm8
subsd xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm6, xmm0
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm6
ucomiss xmm1, xmm0
ja 0x180048b6d
xorps xmm6, xmm6
sqrtss xmm6, xmm0
jmp 0x180048b75
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm6, xmm0
mov rax, qword [0x180090c90]
cmp byte [rax + 0x154], 0
je 0x180048bbe
mov rax, qword [0x180090da8]
mov r9d, 0xe0c26c4
mov r8b, 1
mov byte [rsp + 0x20], 0
mov rdx, rdi
mov rcx, r14
mov r10, qword [rax + 0xd0]
call r10
test al, al
mov rax, qword [0x180090c90]
setne cl
mov byte [0x180090034], cl
jmp 0x180048bc5
movzx ecx, byte [0x180090034]
movd xmm0, dword [rax + 0x160]
cvtdq2ps xmm0, xmm0
comiss xmm0, xmm6
jbe 0x180048bf4
test cl, cl
je 0x180048bf4
cmp byte [rax + 0x13c], 0
jne 0x180048bf4
lea rdx, [rbp - 0x80]
movsd qword [rbp - 0x80], xmm10
mov dword [rbp - 0x78], esi
call fcn.180042a80
movaps xmm11, xmmword [rsp + 0x390]
movaps xmm10, xmmword [rsp + 0x3a0]
mov rsi, qword [rsp + 0x400]
mov r14, qword [rsp + 0x410]
mov rdi, qword [rsp + 0x408]
movaps xmm9, xmmword [rsp + 0x3b0]
movaps xmm12, xmmword [rsp + 0x380]
mov rcx, qword [rbp + 0x270]
xor rcx, rsp
call fcn.18005bea0
lea r11, [rsp + 0x3f0]
mov rbx, qword [r11 + 0x28]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
mov rsp, r11
pop rbp
ret