Function at 0x18004d2f0
Capabilities:
Log keystrokes via polling

Disassembly:
mov r11, rsp
push rbp
push rdi
lea rbp, [r11 - 0x98]
sub rsp, 0x188
mov rax, qword [0x18010d3c0]
xor rax, rsp
mov qword [rbp - 0x30], rax
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rsi
mov qword [r11 - 0x18], r13
movaps xmmword [r11 - 0x38], xmm6
movaps xmmword [r11 - 0x58], xmm8
movaps xmmword [r11 - 0x78], xmm10
movaps xmmword [r11 - 0x88], xmm11
movaps xmmword [r11 - 0x98], xmm12
movaps xmmword [r11 - 0xa8], xmm13
movaps xmmword [r11 - 0xb8], xmm14
call fcn.18001daf0
movzx ebx, byte [0x18014986f]
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d2a0
mov esi, 1
test eax, eax
jne 0x18004d385
call fcn.18001db20
mov ecx, eax
test bl, bl
je 0x18004d37e
xor edx, edx
jmp 0x18004d380
mov edx, esi
call fcn.18001c180
cmp byte [0x1801498d7], 0
je 0x18004d3d9
call fcn.18001daf0
movsxd rcx, eax
mov rax, qword [0x18014e9e0]
imul rdx, rcx, 0x1cf
add rdx, 0x288e7b
mov rcx, rdx
and edx, 0x3ffff
shr rcx, 0x12
and ecx, 0x3f
mov rcx, qword [rax + rcx*8]
mov byte [rcx + rdx*8], sil
call fcn.1800485e0
mov rcx, qword [0x18014e9e0]
mov rdx, qword [rcx + 0x50]
mov dword [rdx + 0x63e28], eax
cvttss2si ebx, dword [0x180112368]
call fcn.18001db20
mov edx, ebx
mov ecx, eax
call fcn.180047660
cmp byte [0x180149882], 0
je 0x18004d41a
mov ebx, dword [0x18014eb40]
add ebx, 0xc
mov dword [0x18014eb40], ebx
call fcn.18001db20
movd xmm1, ebx
mov ecx, eax
cvtdq2ps xmm1, xmm1
call fcn.18001c0c0
cmp byte [0x1801498c0], 0
xorps xmm14, xmm14
je 0x18004d453
call fcn.180048dc0
call fcn.18001daf0
mov ecx, eax
xor edx, edx
call fcn.180048d00
call fcn.18001daf0
mov ecx, eax
call fcn.180048d70
xorps xmm0, xmm0
movss dword [0x180149838], xmm0
jmp 0x18004d45b
movss xmm0, dword [0x180149838]
cvttss2si ebx, xmm0
call fcn.18001daf0
mov edx, ebx
mov ecx, eax
call fcn.180048d00
call fcn.18001daf0
mov ecx, eax
call fcn.180048d70
cvttss2si ecx, dword [0x180149888]
call fcn.180048550
xor edi, edi
cmp byte [0x18014986c], dil
mov ebx, edi
sete bl
call fcn.18001db20
mov ecx, eax
mov edx, ebx
call fcn.180048cb0
call fcn.18001db20
mov ecx, eax
mov edx, ebx
call fcn.180048b70
cmp byte [0x18014988c], dil
mov ebx, edi
setne bl
call fcn.18001db20
mov ecx, eax
mov edx, ebx
call fcn.180048b20
cmp byte [0x1801498b5], dil
mov ebx, edi
setne bl
call fcn.18001db20
mov ecx, eax
lea edx, [rdi + 0x21]
mov r8d, ebx
call fcn.180048bc0
cmp byte [0x18014983c], dil
mov ecx, edi
setne cl
call fcn.180047bb0
cmp byte [0x180149855], dil
mov ecx, edi
setne cl
call fcn.180047b80
cmp byte [0x1801498cc], dil
movss xmm12, dword [0x1800ffff8]
movss xmm13, dword [0x1800fffa8]
je 0x18004d5a9
lea rcx, str.core
call fcn.180048f30
lea rcx, str.core
call fcn.180047fd0
call fcn.18001db20
movss xmm1, dword [0x18010009c]
lea rcx, str.ent_sht_flame
movss xmm0, dword [0x180100114]
mov edx, eax
movss xmm2, dword [0x1800fff50]
movaps xmm3, xmm13
mov dword [rsp + 0x60], esi
mov dword [rsp + 0x58], esi
mov dword [rsp + 0x50], esi
movss dword [rsp + 0x48], xmm12
mov dword [rsp + 0x40], 0x796e
movss dword [rsp + 0x38], xmm1
movss dword [rsp + 0x30], xmm0
movss dword [rsp + 0x28], xmm1
movss dword [rsp + 0x20], xmm14
call fcn.180047d70
call fcn.180048f10
cmp byte [0x18014989d], dil
je 0x18004d5bc
movss xmm0, dword [0x1800fffdc]
jmp 0x18004d5cf
cmp byte [0x1801498b6], dil
je 0x18004d5cb
movaps xmm0, xmm13
jmp 0x18004d5cf
movaps xmm0, xmm12
movaps xmmword [rsp + 0x150], xmm7
call fcn.180048330
cmp byte [0x180149869], dil
je 0x18004d743
lea rcx, str.scr_rcpaparazzo1
call fcn.180048f30
lea rcx, str.scr_rcpaparazzo1
call fcn.180047fd0
movss xmm6, dword [0x1801123a4]
call fcn.18001db20
mov dword [rsp + 0x60], edi
lea rcx, str.scr_mich4_firework_sparkle_spawn
mov dword [rsp + 0x58], edi
xorps xmm3, xmm3
mov dword [rsp + 0x50], edi
xorps xmm2, xmm2
movss dword [rsp + 0x48], xmm6
mov edx, eax
mov dword [rsp + 0x40], 0x49d9
movss dword [rsp + 0x38], xmm14
movss dword [rsp + 0x30], xmm14
movss dword [rsp + 0x28], xmm14
movss dword [rsp + 0x20], xmm14
call fcn.180047d70
movss xmm7, dword [0x1801000b8]
movss xmm2, dword [0x1801498bc]
movss xmm1, dword [0x180149840]
movss xmm0, dword [0x18010e8d8]
divss xmm2, xmm7
divss xmm1, xmm7
divss xmm0, xmm7
call fcn.180047f30
movss xmm0, dword [0x180112394]
divss xmm0, xmm7
call fcn.180047fa0
lea rcx, str.scr_rcpaparazzo1
call fcn.180048f30
lea rcx, str.scr_rcpaparazzo1
call fcn.180047fd0
movss xmm6, dword [0x1801123a4]
call fcn.18001db20
mov dword [rsp + 0x60], edi
lea rcx, str.scr_mich4_firework_sparkle_spawn
mov dword [rsp + 0x58], edi
xorps xmm3, xmm3
mov dword [rsp + 0x50], edi
xorps xmm2, xmm2
movss dword [rsp + 0x48], xmm6
mov edx, eax
mov dword [rsp + 0x40], 0xdead
movss dword [rsp + 0x38], xmm14
movss dword [rsp + 0x30], xmm14
movss dword [rsp + 0x28], xmm14
movss dword [rsp + 0x20], xmm14
call fcn.180047d70
movss xmm2, dword [0x1801498bc]
movss xmm1, dword [0x180149840]
movss xmm0, dword [0x18010e8d8]
divss xmm2, xmm7
divss xmm1, xmm7
divss xmm0, xmm7
call fcn.180047f30
movss xmm0, dword [0x180112394]
divss xmm0, xmm7
call fcn.180047fa0
cmp byte [0x180149875], dil
lea r13, [0x180000000]
je 0x18004d83d
cmp byte [0x180149856], dil
je 0x18004d785
movsxd r8, dword [0x180149890]
mov r9d, 0x796e
mov rcx, qword [r13 + r8*8 + 0xffd48]
mov r8, qword [r13 + r8*8 + 0xffcb0]
mov rdx, rcx
call fcn.180049830
cmp byte [0x1801498ae], dil
je 0x18004d7b3
movsxd r8, dword [0x180149890]
mov r9d, 0xdead
mov rcx, qword [r13 + r8*8 + 0xffd48]
mov r8, qword [r13 + r8*8 + 0xffcb0]
mov rdx, rcx
call fcn.180049830
cmp byte [0x1801498c2], dil
je 0x18004d7e1
movsxd r8, dword [0x180149890]
mov r9d, 0x8cbd
mov rcx, qword [r13 + r8*8 + 0xffd48]
mov r8, qword [r13 + r8*8 + 0xffcb0]
mov rdx, rcx
call fcn.180049830
cmp byte [0x180149884], dil
je 0x18004d80f
movsxd r8, dword [0x180149890]
mov r9d, 0xcc4d
mov rcx, qword [r13 + r8*8 + 0xffd48]
mov r8, qword [r13 + r8*8 + 0xffcb0]
mov rdx, rcx
call fcn.180049830
cmp byte [0x18014985c], dil
je 0x18004d83d
movsxd r8, dword [0x180149890]
mov r9d, 0x3779
mov rcx, qword [r13 + r8*8 + 0xffd48]
mov r8, qword [r13 + r8*8 + 0xffcb0]
mov rdx, rcx
call fcn.180049830
cmp byte [0x180149834], dil
je 0x18004d99a
call fcn.18001db20
mov ecx, eax
mov ebx, eax
call fcn.180047210
test eax, eax
je 0x18004d99a
xor r8d, r8d
mov ecx, ebx
lea edx, [r8 + 0x41]
call fcn.180048bc0
xor r8d, r8d
mov ecx, ebx
lea edx, [r8 + 0x42]
call fcn.180048bc0
xor r8d, r8d
mov edx, 0xa8
mov ecx, ebx
call fcn.180048bc0
mov ecx, ebx
call fcn.180048a50
test eax, eax
je 0x18004d8d6
movss xmm0, dword [0x1800fffe0]
xorps xmm3, xmm3
mov dword [rsp + 0x68], esi
xorps xmm2, xmm2
mov dword [rsp + 0x60], edi
mov ecx, ebx
mov dword [rsp + 0x48], esi
mov dword [rsp + 0x40], esi
movss dword [rsp + 0x38], xmm14
movss dword [rsp + 0x30], xmm14
movss dword [rsp + 0x28], xmm14
movss dword [rsp + 0x20], xmm0
call fcn.18001bab0
mov ecx, ebx
call fcn.180047030
comiss xmm0, dword [0x1800ffffc]
jbe 0x18004d972
xor r8d, r8d
mov ecx, ebx
lea edx, [r8 + 0x3c]
call fcn.180048bc0
xor r8d, r8d
mov ecx, ebx
lea edx, [r8 + 0x3d]
call fcn.180048bc0
xor r8d, r8d
mov ecx, ebx
lea edx, [r8 + 0x68]
call fcn.180048bc0
xor r8d, r8d
mov edx, 0x114
mov ecx, ebx
call fcn.180048bc0
mov r8d, esi
mov edx, 0x4c
mov ecx, ebx
call fcn.180048bc0
movss xmm0, dword [0x1801000f4]
xorps xmm3, xmm3
mov dword [rsp + 0x68], esi
xorps xmm2, xmm2
mov dword [rsp + 0x60], edi
mov ecx, ebx
mov dword [rsp + 0x48], esi
mov dword [rsp + 0x40], esi
movss dword [rsp + 0x38], xmm14
movss dword [rsp + 0x30], xmm14
movss dword [rsp + 0x28], xmm14
movss dword [rsp + 0x20], xmm0
call fcn.18001bab0
mov ecx, ebx
call fcn.180046e20
test eax, eax
je 0x18004d99a
mov ecx, ebx
call fcn.180048800
test eax, eax
je 0x18004d99a
mov ecx, ebx
call fcn.180048ae0
test eax, eax
je 0x18004d99a
mov ecx, ebx
call fcn.18001b5d0
movaps xmmword [rsp + 0x130], xmm9
call fcn.1800498e0
cmp byte [0x18014985f], dil
movss xmm8, dword [0x180100028]
je 0x18004db8e
call fcn.18001db20
mov edx, eax
lea rcx, [rbp - 0x70]
mov r8d, esi
call fcn.18001b7d0
movss xmm10, dword [0x18010010c]
movss xmm3, dword [0x180100080]
movaps xmm2, xmm10
movups xmm11, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
movaps xmm9, xmm11
movsd qword [rbp - 0x60], xmm0
shufps xmm9, xmm11, 0xaa
movaps xmm0, xmm11
movaps xmm1, xmm9
call fcn.1800494f0
movss xmm3, dword [0x180100080]
movaps xmm7, xmm11
addss xmm7, xmm8
movaps xmm2, xmm10
movaps xmm1, xmm9
movaps xmm0, xmm7
call fcn.1800494f0
movss xmm3, dword [0x180100080]
movaps xmm6, xmm9
addss xmm6, xmm8
movaps xmm2, xmm10
movaps xmm0, xmm11
movaps xmm1, xmm6
call fcn.1800494f0
movss xmm3, dword [0x180100080]
movaps xmm2, xmm10
movaps xmm1, xmm6
movaps xmm0, xmm7
call fcn.1800494f0
movss xmm3, dword [0x180100080]
movaps xmm8, xmm11
addss xmm8, dword [0x180100068]
movaps xmm2, xmm10
movaps xmm1, xmm9
movaps xmm0, xmm8
call fcn.1800494f0
movss xmm3, dword [0x180100080]
movaps xmm7, xmm9
addss xmm7, dword [0x180100068]
movaps xmm2, xmm10
movaps xmm0, xmm11
movaps xmm1, xmm7
call fcn.1800494f0
movss xmm3, dword [0x180100080]
movaps xmm2, xmm10
movaps xmm1, xmm7
movaps xmm0, xmm8
call fcn.1800494f0
movss xmm3, dword [0x180100080]
movaps xmm8, xmm11
addss xmm8, dword [0x180100070]
movaps xmm2, xmm10
movaps xmm1, xmm9
movaps xmm0, xmm8
call fcn.1800494f0
movss xmm3, dword [0x180100080]
movaps xmm7, xmm9
addss xmm7, dword [0x180100070]
movaps xmm2, xmm10
movaps xmm0, xmm11
movaps xmm1, xmm7
call fcn.1800494f0
movss xmm3, dword [0x180100080]
movaps xmm2, xmm10
movaps xmm1, xmm7
movaps xmm0, xmm8
call fcn.1800494f0
movss xmm3, dword [0x180100080]
movaps xmm7, xmm11
addss xmm7, dword [0x180100078]
movaps xmm2, xmm10
movaps xmm1, xmm9
movaps xmm0, xmm7
call fcn.1800494f0
addss xmm9, dword [0x180100078]
movss xmm3, dword [0x180100080]
movaps xmm2, xmm10
movaps xmm1, xmm9
movaps xmm0, xmm11
call fcn.1800494f0
movss xmm3, dword [0x180100080]
movaps xmm2, xmm10
movaps xmm1, xmm9
movaps xmm0, xmm7
call fcn.1800494f0
movss xmm8, dword [0x180100028]
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
movzx r8d, byte [0x180149883]
xor edx, edx
mov ecx, eax
mov ebx, eax
call fcn.18001ddc0
movzx r8d, byte [0x1801498ad]
mov edx, esi
mov ecx, ebx
call fcn.18001ddc0
movzx r8d, byte [0x180149844]
mov edx, 2
mov ecx, ebx
call fcn.18001ddc0
movzx r8d, byte [0x1801498b0]
mov edx, 3
mov ecx, ebx
call fcn.18001ddc0
movsxd rcx, dword [0x18014982c]
call fcn.180049f00
cmp byte [0x180149879], dil
je 0x18004dc09
call fcn.18001daf0
mov ecx, eax
call fcn.1800485b0
cmp byte [0x180149880], dil
je 0x18004dc1e
call fcn.18001daf0
mov ecx, eax
call fcn.1800485b0
cmp byte [0x1801498a4], dil
je 0x18004dc91
call fcn.18001daf0
mov ecx, eax
call fcn.1800485b0
call fcn.18001db20
mov ecx, eax
call fcn.180048a50
test eax, eax
je 0x18004dc91
call fcn.18001db20
mov ecx, eax
call fcn.1800471d0
test eax, eax
je 0x18004dc91
sub dword [0x18014eb64], 0xa
call fcn.18001db20
mov ecx, eax
call fcn.18001b840
movd xmm7, dword [0x18014eb64]
movaps xmm6, xmm0
cvtdq2ps xmm7, xmm7
call fcn.18001db20
mov dword [rsp + 0x28], edi
mov ecx, eax
mov dword [rsp + 0x20], edi
movaps xmm3, xmm6
xorps xmm2, xmm2
movaps xmm1, xmm7
call fcn.180047520
cmp byte [0x180149876], dil
je 0x18004dca4
movss xmm6, dword [0x1801122f0]
jmp 0x18004dca8
movaps xmm6, xmm12
mov qword [rsp + 0x178], r14
call fcn.18001daf0
mov ecx, eax
movaps xmm1, xmm6
call fcn.180048e90
cmp byte [0x180149877], dil
je 0x18004ddb7
mov ecx, dword [0x180113ea4]
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
mov ecx, dword [rdx + rax]
cmp dword [0x18014eb68], ecx
jle 0x18004dd1c
lea rcx, [0x18014eb68]
call fcn.18005a1e4
cmp dword [0x18014eb68], 0xffffffff
jne 0x18004dd1c
lea rcx, [0x1800651b0]
call fcn.18005a0e0
lea rcx, [0x18014eb68]
call fcn.18005a178
call fcn.18001db20
mov ecx, eax
lea rdx, [rbp - 0x48]
call fcn.180049720
mov rdx, qword [0x1801498f0]
cmp rdx, qword [0x1801498f8]
je 0x18004dd61
movups xmm0, xmmword [rbp - 0x48]
movups xmmword [rdx], xmm0
movsd xmm1, qword [rbp - 0x38]
movsd qword [rdx + 0x10], xmm1
mov r14, qword [0x1801498f0]
add r14, 0x18
mov qword [0x1801498f0], r14
jmp 0x18004dd71
lea r8, [rbp - 0x48]
call fcn.18004ebe0
mov r14, qword [0x1801498f0]
mov rbx, qword [0x1801498e8]
cmp rbx, r14
je 0x18004ddb7
nop dword [rax]
movups xmm0, xmmword [rbx]
lea rcx, [rbp - 0x70]
mov r9d, dword [0x18010e8e8]
movsd xmm1, qword [rbx + 0x10]
mov r8d, dword [0x18010e8e4]
mov edx, dword [0x18010e8e0]
movaps xmmword [rbp - 0x70], xmm0
movsd qword [rbp - 0x60], xmm1
call fcn.180047a70
add rbx, 0x18
cmp rbx, r14
jne 0x18004dd80
cmp byte [0x1801498d4], dil
je 0x18004de1c
call fcn.18001db20
mov ecx, eax
lea rdx, [rbp - 0x48]
call fcn.180049720
test eax, eax
je 0x18004de1c
mov ecx, 0x9ca6f755
call fcn.18001dd50
cvttss2si eax, dword [0x180149894]
mov ecx, 0x1e9a99f8
mov dword [rsp + 0x30], 0x9ca6f755
movss xmm3, dword [rbp - 0x38]
movss xmm2, dword [rbp - 0x40]
addss xmm3, xmm8
movss xmm1, dword [rbp - 0x48]
mov dword [rsp + 0x28], eax
call fcn.18001cf90
lea rcx, [rbp - 0x50]
mov dword [rbp - 0x50], eax
call fcn.1800473e0
cmp byte [0x1801498b1], dil
je 0x18004deb9
call fcn.18001db20
mov r8d, esi
lea rcx, [rbp - 0x70]
mov edx, eax
mov ebx, eax
call fcn.18001b7d0
mov ecx, ebx
movups xmm1, xmmword [rax]
movsd xmm3, qword [rax + 0x10]
movss dword [rsp + 0x30], xmm3
movaps xmm2, xmm1
shufps xmm2, xmm1, 0xaa
movss dword [rsp + 0x28], xmm2
movss dword [rsp + 0x20], xmm1
movsd qword [rbp - 0x80], xmm3
call fcn.1800488c0
test eax, eax
je 0x18004deb9
lea rdx, [rbp - 0x48]
mov ecx, ebx
call fcn.180049720
test eax, eax
je 0x18004deb9
movss xmm0, dword [0x180100080]
mov r9d, 0xd
movss xmm2, dword [rbp - 0x38]
movss xmm1, dword [rbp - 0x40]
mov dword [rsp + 0x40], edi
movss dword [rsp + 0x38], xmm14
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], edi
movss dword [rsp + 0x20], xmm0
movss xmm0, dword [rbp - 0x48]
call fcn.18001c1f0
cmp byte [0x1801498af], dil
je 0x18004df2a
call fcn.18001db20
mov ecx, eax
call fcn.180048c30
test eax, eax
je 0x18004df17
movss xmm0, dword [0x1800fffc8]
call fcn.180048330
call fcn.18001db20
mov ecx, eax
call fcn.180048a00
test eax, eax
je 0x18004df0b
movaps xmm0, xmm13
call fcn.180048330
lea rcx, str.Death
call fcn.18001c590
call fcn.180048020
jmp 0x18004df2a
call fcn.180048000
call fcn.180048020
jmp 0x18004df2a
movaps xmm0, xmm12
call fcn.180048330
call fcn.180048000
call fcn.180048090
cmp byte [0x180149860], dil
je 0x18004dfbf
mov qword [rsp + 0x1b0], r12
mov qword [rsp + 0x170], r15
call fcn.18001db20
mov r12d, eax
lea r14, str.WEAPON_KNIFE
mov r15d, edi
nop dword [rax]
mov rcx, qword [r14]
call fcn.18001c7a0
mov edx, eax
mov ecx, r12d
call fcn.180049610
test eax, eax
je 0x18004dfa2
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
mov ebx, eax
and ebx, 0x80000007
jge 0x18004df8d
dec ebx
or ebx, 0xfffffff8
inc ebx
mov rcx, qword [r14]
call fcn.18001c7a0
mov r8d, ebx
mov edx, eax
mov ecx, r12d
call fcn.18001e740
inc r15d
add r14, 8
cmp r15d, 0x39
jb 0x18004df60
mov r15, qword [rsp + 0x170]
mov r12, qword [rsp + 0x1b0]
cmp byte [0x18014985d], dil
movss xmm11, dword [0x1801001f0]
movss xmm10, dword [0x1800fff4c]
mov r14, qword [rsp + 0x178]
je 0x18004e122
xor edx, edx
lea rcx, [rsp + 0x70]
call fcn.180046ed0
xorps xmm8, xmm8
xorps xmm7, xmm7
movups xmm0, xmmword [rax]
movsd xmm1, qword [rax + 0x10]
mulss xmm0, xmm10
movsd qword [rbp - 0x80], xmm1
mulss xmm1, xmm10
cvtss2sd xmm8, xmm0
cvtss2sd xmm7, xmm1
movaps xmm0, xmm8
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movaps xmm0, xmm7
andps xmm1, xmm11
cvtps2pd xmm6, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
xorps xmm2, xmm2
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movaps xmm0, xmm7
xorps xmm1, xmmword [0x180100220]
cvtss2sd xmm2, xmm1
mulsd xmm2, xmm6
cvtpd2ps xmm9, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movaps xmm0, xmm8
cvtps2pd xmm2, xmm1
mulsd xmm2, xmm6
cvtpd2ps xmm7, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
xorps xmm6, xmm6
cvtsd2ss xmm6, xmm0
call fcn.18001daf0
mov ecx, eax
lea rdx, [rbp - 0x50]
call fcn.180048e30
test eax, eax
je 0x18004e122
call fcn.18001db20
mov ecx, eax
call fcn.180048a00
test eax, eax
je 0x18004e122
mov ecx, dword [rbp - 0x50]
call fcn.180047190
test eax, eax
je 0x18004e0d1
mov ecx, dword [rbp - 0x50]
mov edx, esi
call fcn.18001d2a0
test eax, eax
je 0x18004e0d1
mov ecx, dword [rbp - 0x50]
xor edx, edx
call fcn.18001d410
mov dword [rbp - 0x50], eax
jmp 0x18004e0d4
mov eax, dword [rbp - 0x50]
movss xmm0, dword [0x1801000e0]
mov ecx, eax
mov dword [rsp + 0x68], esi
mov dword [rsp + 0x60], edi
mov dword [rsp + 0x48], edi
mov dword [rsp + 0x40], edi
movss dword [rsp + 0x38], xmm14
movss dword [rsp + 0x30], xmm14
mulss xmm7, xmm0
mulss xmm9, xmm0
mulss xmm6, xmm0
movaps xmm3, xmm7
movss dword [rsp + 0x28], xmm14
movaps xmm2, xmm9
movss dword [rsp + 0x20], xmm6
call fcn.18001bab0
call fcn.18004ac40
call fcn.18004b7a0
call fcn.18004b930
call fcn.18004bef0
cmp byte [0x1801498c9], dil
je 0x18004e18a
call fcn.18001db20
mov ecx, eax
call fcn.180048a00
test eax, eax
je 0x18004e18a
call fcn.18001db20
mov ecx, eax
lea rdx, [rbp - 0x48]
call fcn.180049720
test eax, eax
je 0x18004e18a
call fcn.18001db20
movss xmm3, dword [rbp - 0x38]
mov ecx, eax
movss xmm2, dword [rbp - 0x40]
movss xmm1, dword [rbp - 0x48]
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x20], edi
call fcn.18001bee0
movzx ebx, byte [0x1801498d6]
call fcn.18001daf0
mov ecx, eax
call fcn.180048df0
test eax, eax
je 0x18004e2eb
test bl, bl
je 0x18004e2eb
xor edx, edx
lea rcx, [rsp + 0x70]
call fcn.180046ed0
xorps xmm12, xmm12
movups xmm0, xmmword [rax]
movsd xmm1, qword [rax + 0x10]
mulss xmm0, xmm10
movsd qword [rbp - 0x80], xmm1
mulss xmm1, xmm10
xorps xmm10, xmm10
cvtss2sd xmm12, xmm0
cvtss2sd xmm10, xmm1
movaps xmm0, xmm12
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
andps xmm1, xmm11
cvtps2pd xmm6, xmm1
call fcn.18001db20
mov ecx, eax
call fcn.1800495b0
mov edx, eax
lea rcx, [rsp + 0x70]
mov r8d, esi
call fcn.18001b7d0
lea rcx, [rsp + 0x70]
movups xmm13, xmmword [rax]
movsd xmm11, qword [rax + 0x10]
call fcn.180046e80
movaps xmm0, xmm10
movups xmm7, xmmword [rax]
movsd xmm8, qword [rax + 0x10]
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
xorps xmm2, xmm2
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movaps xmm0, xmm10
xorps xmm1, xmmword [0x180100220]
cvtss2sd xmm2, xmm1
mulsd xmm2, xmm6
cvtpd2ps xmm9, xmm2
addss xmm9, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
xorps xmm1, xmm1
shufps xmm7, xmm7, 0xaa
cvtsd2ss xmm1, xmm0
movaps xmm0, xmm12
cvtps2pd xmm2, xmm1
mulsd xmm2, xmm6
cvtpd2ps xmm6, xmm2
addss xmm6, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
cvttss2si eax, dword [0x180112378]
cvttss2si ecx, dword [0x1801123d8]
mov dword [rsp + 0x40], eax
cvttss2si edx, dword [0x180112474]
mov dword [rsp + 0x38], ecx
xorps xmm1, xmm1
movsd qword [rbp - 0x80], xmm8
cvtsd2ss xmm1, xmm0
mov dword [rsp + 0x30], edx
movaps xmm3, xmm9
movsd qword [rbp - 0x80], xmm11
addss xmm1, xmm8
movaps xmm2, xmm11
movaps xmm0, xmm13
movss dword [rsp + 0x28], xmm1
movaps xmm1, xmm13
shufps xmm1, xmm13, 0xaa
movss dword [rsp + 0x20], xmm6
call fcn.180047820
cmp byte [0x18014985e], dil
movaps xmm13, xmmword [rsp + 0xf0]
movaps xmm12, xmmword [rsp + 0x100]
movaps xmm11, xmmword [rsp + 0x110]
movaps xmm10, xmmword [rsp + 0x120]
movaps xmm9, xmmword [rsp + 0x130]
movaps xmm8, xmmword [rsp + 0x140]
movaps xmm7, xmmword [rsp + 0x150]
je 0x18004e3bd
call fcn.18001db20
mov ecx, eax
call fcn.180048a00
test eax, eax
je 0x18004e3bd
call fcn.18001daf0
mov ecx, eax
lea rdx, [rbp - 0x50]
call fcn.180048e30
test eax, eax
je 0x18004e3bd
mov ecx, dword [rbp - 0x50]
call fcn.18001b790
test eax, eax
je 0x18004e3bd
mov ecx, dword [rbp - 0x50]
call fcn.18001cab0
test eax, eax
je 0x18004e3bd
call fcn.18001db20
mov ecx, eax
call fcn.180048a00
test eax, eax
je 0x18004e3bd
mov ecx, dword [rbp - 0x50]
call fcn.180047320
mov ecx, dword [rbp - 0x50]
movaps xmm3, xmm14
mov dword [rsp + 0x30], edi
movaps xmm2, xmm14
mov dword [rsp + 0x28], edi
movaps xmm1, xmm14
mov dword [rsp + 0x20], edi
call fcn.18001bfe0
mov ecx, dword [rbp - 0x50]
xor edx, edx
call fcn.18001be70
lea rcx, [rbp - 0x50]
call fcn.1800472f0
cmp byte [0x180149825], dil
je 0x18004e467
call fcn.18001db20
mov ecx, eax
call fcn.180048a00
test eax, eax
je 0x18004e467
call fcn.18001db20
mov ecx, eax
lea rdx, [rbp - 0x48]
call fcn.180049720
test eax, eax
je 0x18004e467
lea rcx, str.WEAPON_VEHICLE_ROCKET
call fcn.18001c7a0
mov ecx, eax
mov ebx, eax
call fcn.1800497f0
test eax, eax
jne 0x18004e412
mov ecx, ebx
call fcn.180049780
call fcn.18001db20
movss xmm1, dword [rbp - 0x38]
movss xmm0, dword [0x1801000d0]
movaps xmm2, xmm1
addss xmm2, dword [0x18010008c]
movss dword [rsp + 0x60], xmm0
movss xmm0, dword [rbp - 0x48]
mov dword [rsp + 0x58], edi
movaps xmm3, xmm0
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], ebx
mov dword [rsp + 0x30], 0x64
movss dword [rsp + 0x28], xmm1
movss xmm1, dword [rbp - 0x40]
movss dword [rsp + 0x20], xmm1
call fcn.1800483b0
movsxd rdx, dword [0x180149858]
mov rdx, qword [r13 + rdx*8 + 0x112420]
call fcn.18004c130
cmp byte [0x1801498d5], dil
je 0x18004e4ad
call fcn.18001daf0
mov ecx, eax
call fcn.180048580
call fcn.18001db20
mov ecx, eax
call fcn.180048580
mov ecx, 0xffffffff
call fcn.18001d980
mov ecx, eax
call fcn.180048580
cmp byte [0x1801498d8], dil
je 0x18004e50e
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov ecx, eax
call fcn.180049330
test eax, eax
je 0x18004e4e4
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov ecx, eax
call fcn.18001e320
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov ecx, eax
call fcn.1800492e0
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov ecx, eax
call fcn.180049210
cmp byte [0x1801498c1], dil
je 0x18004e5bb
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov ecx, eax
mov ebx, eax
call fcn.180047070
mov ecx, ebx
movaps xmm6, xmm0
call fcn.180047250
test eax, eax
je 0x18004e5bb
comiss xmm6, dword [0x1801000b0]
ja 0x18004e556
movss xmm1, dword [0x180100118]
comiss xmm1, xmm6
jbe 0x18004e5bb
mov ecx, ebx
call fcn.1800471d0
test eax, eax
jne 0x18004e5bb
mov ecx, ebx
call fcn.180047210
test eax, eax
jne 0x18004e5bb
mov ecx, ebx
call fcn.180049260
test eax, eax
jne 0x18004e5bb
mov ecx, ebx
call fcn.1800492a0
test eax, eax
jne 0x18004e5bb
mov edx, ebx
call fcn.180055510
mov r8d, 2
lea rcx, [rsp + 0x70]
mov edx, ebx
call fcn.1800470b0
mov dword [rsp + 0x28], esi
movaps xmm2, xmm14
movaps xmm1, xmm14
mov dword [rsp + 0x20], 2
mov ecx, ebx
movsd xmm3, qword [rax + 0x10]
call fcn.180047520
cmp byte [0x180149827], dil
je 0x18004e5fd
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18004e5e6
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov edx, esi
jmp 0x18004e5f6
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
xor edx, edx
mov ecx, eax
call fcn.180049400
call fcn.18004c580
cmp byte [0x18014984d], dil
je 0x18004e620
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov ecx, eax
call fcn.180049370
cmp byte [0x1801498cb], dil
je 0x18004e652
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d2a0
test eax, eax
je 0x18004e652
call fcn.18001db20
mov ecx, eax
call fcn.18001d4b0
mov ecx, eax
movaps xmm1, xmm14
call fcn.18001deb0
cmp byte [0x1801498c8], dil
je 0x18004e6ea
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d2a0
test eax, eax
je 0x18004e6ea
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov ecx, eax
call fcn.18001cab0
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov edx, eax
lea rcx, [rsp + 0x70]
mov r8d, 2
call fcn.1800470b0
xorps xmm0, xmm0
movsd xmm1, qword [rax + 0x10]
cvtss2sd xmm0, xmm1
addsd xmm0, qword [0x180100030]
cvtpd2ps xmm6, xmm0
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov ecx, eax
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], 2
movaps xmm3, xmm6
movaps xmm2, xmm14
movaps xmm1, xmm14
call fcn.180047520
cmp byte [0x180149854], dil
je 0x18004e71a
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d2a0
test eax, eax
je 0x18004e71a
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov ecx, eax
call fcn.180049370
cmp byte [0x180149868], dil
je 0x18004e7a0
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov ecx, eax
call fcn.18001cab0
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov edx, eax
lea rcx, [rsp + 0x70]
mov r8d, 0x14
call fcn.1800470b0
xorps xmm0, xmm0
movsd xmm1, qword [rax + 0x10]
cvtss2sd xmm0, xmm1
addsd xmm0, qword [0x180100050]
cvtpd2ps xmm6, xmm0
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov ecx, eax
mov dword [rsp + 0x28], 0xa
mov dword [rsp + 0x20], 0x14
movaps xmm3, xmm6
movaps xmm2, xmm14
movaps xmm1, xmm14
call fcn.180047520
cmp byte [0x1801498e0], dil
je 0x18004e85d
cmp byte [0x1801498da], dil
je 0x18004e7d9
movsxd rcx, dword [0x180149850]
lea r8, str.wheel_rf
mov rdx, qword [r13 + rcx*8 + 0xffd18]
mov rcx, qword [r13 + rcx*8 + 0xffce8]
call fcn.18004c850
cmp byte [0x180149909], dil
je 0x18004e805
movsxd rcx, dword [0x180149850]
lea r8, str.wheel_lf
mov rdx, qword [r13 + rcx*8 + 0xffd18]
mov rcx, qword [r13 + rcx*8 + 0xffce8]
call fcn.18004c850
cmp byte [0x180149830], dil
je 0x18004e831
movsxd rcx, dword [0x180149850]
lea r8, str.wheel_rr
mov rdx, qword [r13 + rcx*8 + 0xffd18]
mov rcx, qword [r13 + rcx*8 + 0xffce8]
call fcn.18004c850
cmp byte [0x180149919], dil
je 0x18004e85d
movsxd rcx, dword [0x180149850]
lea r8, str.wheel_lr
mov rdx, qword [r13 + rcx*8 + 0xffd18]
mov rcx, qword [r13 + rcx*8 + 0xffce8]
call fcn.18004c850
cmp byte [0x18011240d], dil
mov r13, qword [rsp + 0x180]
je 0x18004e88b
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
movss xmm1, dword [0x1801000e4]
mov ecx, eax
call fcn.180047480
movzx ebx, byte [0x180112404]
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov r8d, esi
mov edx, ebx
mov ecx, eax
call fcn.180047410
cmp byte [0x180149908], dil
je 0x18004e8cc
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov ecx, eax
xor edx, edx
call fcn.18001c180
cmp byte [0x180149826], dil
movss xmm6, dword [0x1801123d4]
je 0x18004e961
call fcn.18001db20
mov ecx, eax
call fcn.18001d4b0
test eax, eax
je 0x18004e961
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
xor edx, edx
mov ecx, eax
mov ebx, eax
call fcn.18001e590
mov edx, 2
lea rcx, [rsp + 0x70]
call fcn.180046ed0
mov dword [rsp + 0x28], esi
mov ecx, ebx
mov dword [rsp + 0x20], 2
movups xmm1, xmmword [rax]
movsd xmm0, qword [rax + 0x10]
movaps xmm2, xmm1
movsd qword [rbp - 0x80], xmm0
shufps xmm2, xmm1, 0xaa
movaps xmm3, xmm0
call fcn.180047520
mov edx, 0x57
call fcn.180048740
mov ecx, ebx
test eax, eax
je 0x18004e958
movaps xmm1, xmm6
jmp 0x18004e95c
movaps xmm1, xmm14
call fcn.18001e010
cmp qword [0x180149910], rdi
je 0x18004ea5d
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov ebx, eax
mov rax, qword [0x180149910]
sub rax, rsi
je 0x18004e9e0
cmp rax, rsi
jne 0x18004ea5d
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
je 0x18004ea5d
call fcn.18001db20
mov ecx, eax
mov edx, esi
call fcn.18001d2a0
test eax, eax
je 0x18004ea5d
mov ecx, ebx
call fcn.180046ff0
movaps xmm6, xmm0
mov ecx, ebx
addss xmm6, xmm14
call fcn.180046fb0
movaps xmm2, xmm0
movss xmm0, dword [0x1800fffd8]
jmp 0x18004ea23
mov ecx, 0x20
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test sil, al
je 0x18004ea5d
call fcn.18001db20
mov ecx, eax
mov edx, esi
call fcn.18001d2a0
test eax, eax
je 0x18004ea5d
mov ecx, ebx
call fcn.180046ff0
movaps xmm6, xmm0
mov ecx, ebx
addss xmm6, xmm14
call fcn.180046fb0
movaps xmm2, xmm0
movss xmm0, dword [0x180100080]
mov dword [rsp + 0x68], esi
addss xmm2, xmm14
mov dword [rsp + 0x60], esi
movaps xmm3, xmm6
mov dword [rsp + 0x48], edi
mov ecx, ebx
mov dword [rsp + 0x40], esi
movss dword [rsp + 0x38], xmm14
movss dword [rsp + 0x30], xmm14
movss dword [rsp + 0x28], xmm14
movss dword [rsp + 0x20], xmm0
call fcn.18001bab0
cmp byte [0x18014986e], dil
movaps xmm14, xmmword [rsp + 0xe0]
movaps xmm6, xmmword [rsp + 0x160]
je 0x18004ea96
call fcn.18001db20
mov ecx, eax
call fcn.180048a90
call fcn.18001db20
xor r8d, r8d
mov ecx, eax
lea edx, [r8 + 0x20]
call fcn.180048bc0
movzx eax, byte [0x1801498ca]
test al, al
je 0x18004eaba
mov ebx, eax
call fcn.18001db20
mov ecx, eax
xor edx, edx
call fcn.18001d410
mov edx, ebx
mov ecx, eax
call fcn.1800476d0
call fcn.18004cc80
cmp byte [0x180149918], dil
mov rbx, qword [rsp + 0x1a0]
mov ecx, dword [0x18014987c]
jne 0x18004ead8
mov esi, edi
call fcn.18001d9c0
mov edx, eax
mov ecx, esi
call fcn.180048610
cmp byte [0x18014988d], dil
mov rsi, qword [rsp + 0x1a8]
je 0x18004eb46
call fcn.18001db20
mov edx, eax
lea rcx, [rsp + 0x70]
xor r8d, r8d
call fcn.18001b7d0
movd xmm1, dword [0x1801123c0]
cvtdq2ps xmm1, xmm1
movups xmm0, xmmword [rax]
movsd xmm2, qword [rax + 0x10]
subss xmm2, dword [0x180100028]
movss dword [rsp + 0x38], xmm1
movss xmm1, dword [0x1801000cc]
movss dword [rsp + 0x30], xmm1
movaps xmm1, xmm0
shufps xmm1, xmm0, 0xaa
call fcn.180047960
cmp byte [0x180149878], dil
je 0x18004eb54
call fcn.180048660
cmp byte [0x18014984c], dil
setne dil
mov ecx, edi
call fcn.180046f80
mov rcx, qword [rbp - 0x30]
xor rcx, rsp
call fcn.180059b80
add rsp, 0x188
pop rdi
pop rbp
ret