Function at 0x18007e2b0
Capabilities:
Log keystrokes via polling

Disassembly:
push rsi
push rdi
sub rsp, 0xae8
mov rax, qword [0x1800feb80]
xor rax, rsp
mov qword [rsp + 0xad8], rax
movzx eax, byte [0x180123a10]
test eax, eax
je 0x18007e300
call fcn.180032a30
mov ecx, eax
call fcn.18007df20
call fcn.180032500
mov ecx, eax
call fcn.18007df20
mov ecx, 0xffffffff
call fcn.18007d8f0
mov ecx, eax
call fcn.18007df20
movzx eax, byte [0x180123a11]
test eax, eax
je 0x18007e439
mov dword [rsp + 0xb8], 0
call fcn.180032500
lea rdx, [rsp + 0x5e0]
mov ecx, eax
call fcn.18007d8c0
test eax, eax
je 0x18007e439
lea rax, [rsp + 0x5c0]
mov qword [rsp + 0xd8], rax
lea rdx, str.WEAPON_AIRSTRIKE_ROCKET
mov rcx, qword [rsp + 0xd8]
call fcn.180018110
mov qword [rsp + 0xe0], rax
mov rcx, qword [rsp + 0xe0]
call fcn.18001f010
mov dword [rsp + 0x9c], eax
xor r8d, r8d
mov edx, 0x1f
mov ecx, dword [rsp + 0x9c]
call fcn.18007dcb0
mov ecx, dword [rsp + 0x9c]
call fcn.18007da30
test eax, eax
jne 0x18007e3a3
xor ecx, ecx
call fcn.1800232b0
jmp 0x18007e38a
movss xmm0, dword [rsp + 0x5f0]
addss xmm0, dword [0x1800c6240]
movss xmm1, dword [0x1800ce0fc]
movss dword [rsp + 0x60], xmm1
mov dword [rsp + 0x58], 0
mov dword [rsp + 0x50], 1
mov eax, dword [rsp + 0xb8]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x9c]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x30], 0xfa
movss xmm1, dword [rsp + 0x5f0]
movss dword [rsp + 0x28], xmm1
movss xmm1, dword [rsp + 0x5e8]
movss dword [rsp + 0x20], xmm1
movss xmm3, dword [rsp + 0x5e0]
movaps xmm2, xmm0
movss xmm1, dword [rsp + 0x5e8]
movss xmm0, dword [rsp + 0x5e0]
call fcn.18007e130
movzx eax, byte [0x180123a12]
test eax, eax
je 0x18007e45e
call fcn.180032500
mov edx, 1
mov ecx, eax
call fcn.18007df80
mov byte [0x180123a17], 1
jmp 0x18007e47e
movzx eax, byte [0x180123a17]
test eax, eax
je 0x18007e47e
call fcn.180032500
xor edx, edx
mov ecx, eax
call fcn.18007df80
mov byte [0x180123a17], 0
movzx eax, byte [0x180123a13]
test eax, eax
je 0x18007e529
call fcn.180032500
mov ecx, eax
call fcn.18007d550
test eax, eax
je 0x18007e529
lea rax, [fcn.18007dbb0]
test rax, rax
je 0x18007e529
call fcn.180032500
lea rdx, [rsp + 0x610]
mov ecx, eax
call fcn.18007d8c0
test eax, eax
je 0x18007e529
movss xmm0, dword [rsp + 0x620]
addss xmm0, dword [0x180092d2c]
movss dword [rsp + 0xbc], xmm0
call fcn.180032500
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
movss xmm0, dword [rsp + 0xbc]
movaps xmm3, xmm0
movss xmm2, dword [rsp + 0x618]
movss xmm1, dword [rsp + 0x610]
mov ecx, eax
call fcn.18007dea0
movzx eax, byte [0x180123a14]
test eax, eax
je 0x18007e594
call fcn.180032500
mov dword [rsp + 0xc0], eax
call fcn.180032500
mov ecx, eax
call fcn.18007d550
test eax, eax
je 0x18007e594
lea rax, [fcn.18007dbb0]
test rax, rax
je 0x18007e594
lea rdx, [rsp + 0x628]
mov ecx, dword [rsp + 0xc0]
call fcn.18007d8c0
test eax, eax
je 0x18007e594
movss xmm2, dword [rsp + 0x638]
movss xmm1, dword [rsp + 0x630]
movss xmm0, dword [rsp + 0x628]
call fcn.18007d4b0
movzx eax, byte [0x180123a15]
test eax, eax
je 0x18007e6a0
call fcn.180032a30
lea rdx, [rsp + 0xa4]
mov ecx, eax
call fcn.18007d6d0
test eax, eax
je 0x18007e67a
call fcn.180032a30
lea rdx, [rsp + 0x70]
mov ecx, eax
call fcn.18007d6d0
test eax, eax
je 0x18007e67a
mov ecx, dword [rsp + 0x70]
call fcn.1800203d0
mov ecx, dword [rsp + 0x70]
call fcn.18007da80
test eax, eax
je 0x18007e67a
mov edx, 1
mov ecx, dword [rsp + 0x70]
call fcn.18007db00
test eax, eax
je 0x18007e67a
xor edx, edx
mov ecx, dword [rsp + 0x70]
call fcn.18007d930
mov dword [rsp + 0xa4], eax
mov r8d, 1
mov edx, dword [rsp + 0xa4]
mov ecx, dword [rsp + 0x70]
call fcn.18007db30
test eax, eax
je 0x18007e664
mov r8d, 1
mov edx, 1
mov ecx, dword [rsp + 0x70]
call fcn.18007de60
lea rcx, [rsp + 0x70]
call fcn.18007d4f0
call fcn.180032500
mov r8d, 0xffffffff
mov edx, dword [rsp + 0x70]
mov ecx, eax
call fcn.18007dfb0
call fcn.180032500
mov r8d, 0xffffffff
mov edx, dword [rsp + 0x70]
mov ecx, eax
call fcn.18007dfb0
call fcn.180032500
mov ecx, eax
call fcn.18007db90
test eax, eax
je 0x18007e6a0
call fcn.180032500
mov r8d, 0xffffffff
mov edx, dword [rsp + 0x70]
mov ecx, eax
call fcn.18007dfb0
movzx eax, byte [0x180123a18]
test eax, eax
je 0x18007e7bf
call fcn.180032500
mov ecx, eax
call fcn.18007f950
movzx eax, al
test eax, eax
je 0x18007e7bf
call fcn.180032a30
lea rdx, [rsp + 0x78]
mov ecx, eax
call fcn.18007d6d0
test eax, eax
je 0x18007e7bf
mov ecx, dword [rsp + 0x78]
call fcn.18007d550
test eax, eax
je 0x18007e7bf
mov ecx, dword [rsp + 0x78]
call fcn.18007da80
test eax, eax
je 0x18007e7bf
mov ecx, dword [rsp + 0x78]
call fcn.18007dae0
test eax, eax
jne 0x18007e7bf
lea rax, str.shag_loop_poppy
mov qword [rsp + 0xd0], rax
mov edx, 1
xor ecx, ecx
call fcn.1800208a0
test eax, eax
jne 0x18007e740
lea rax, str.shag_loop_a
mov qword [rsp + 0xd0], rax
mov ecx, dword [rsp + 0x78]
call fcn.18007dcf0
lea rcx, [0x1800cdad0]
call fcn.18007dc60
lea rcx, [0x1800cdae0]
call fcn.18007d960
test eax, eax
je 0x18007e7bf
mov dword [rsp + 0x50], 0
mov dword [rsp + 0x48], 0
mov dword [rsp + 0x40], 0
xorps xmm0, xmm0
movss dword [rsp + 0x38], xmm0
mov dword [rsp + 0x30], 9
mov dword [rsp + 0x28], 0xffffffff
xorps xmm0, xmm0
movss dword [rsp + 0x20], xmm0
movss xmm3, dword [0x1800c73d8]
mov r8, qword [rsp + 0xd0]
lea rdx, str.rcmpaparazzo_2
mov ecx, dword [rsp + 0x78]
call fcn.18007e200
movzx eax, byte [0x180123a19]
test eax, eax
je 0x18007e888
call fcn.180032500
mov ecx, eax
call fcn.18007f950
movzx eax, al
test eax, eax
je 0x18007e888
mov dword [rsp + 0x90], 0x6d362854
mov ecx, dword [rsp + 0x90]
call fcn.18007dc90
mov ecx, dword [rsp + 0x90]
call fcn.18007d9d0
test eax, eax
jne 0x18007e815
xor ecx, ecx
call fcn.1800232b0
jmp 0x18007e7fc
call fcn.180032500
lea rdx, [rsp + 0x640]
mov ecx, eax
call fcn.18007d8c0
movss xmm0, dword [rsp + 0x650]
addss xmm0, dword [0x180098344]
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x30], 1
xorps xmm1, xmm1
movss dword [rsp + 0x28], xmm1
movss dword [rsp + 0x20], xmm0
movss xmm3, dword [rsp + 0x648]
movss xmm2, dword [rsp + 0x640]
mov edx, dword [rsp + 0x90]
mov ecx, 0x1c
call fcn.18007d430
mov ecx, dword [rsp + 0x90]
call fcn.18007df40
movzx eax, byte [0x180123a1b]
test eax, eax
je 0x18007e966
call fcn.180032500
lea rdx, [rsp + 0xac0]
mov ecx, eax
call fcn.18007d8c0
mov eax, 4
imul rax, rax, 0
movss xmm0, dword [rsp + rax + 0xac0]
ucomiss xmm0, dword [0x180094148]
jp 0x18007e902
jne 0x18007e902
mov eax, 4
imul rax, rax, 2
movss xmm0, dword [rsp + rax + 0xac0]
ucomiss xmm0, dword [0x180094148]
jp 0x18007e902
jne 0x18007e902
mov eax, 4
imul rax, rax, 4
movss xmm0, dword [rsp + rax + 0xac0]
ucomiss xmm0, dword [0x180094148]
jp 0x18007e902
je 0x18007e966
mov eax, 4
imul rax, rax, 4
mov ecx, 4
imul rcx, rcx, 2
mov edx, 4
imul rdx, rdx, 0
mov dword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 1
movss xmm3, dword [rsp + rax + 0xac0]
movss xmm2, dword [rsp + rcx + 0xac0]
movss xmm1, dword [rsp + rdx + 0xac0]
mov ecx, 0xf724026d
call fcn.18007d3c0
mov edx, 1
mov ecx, eax
call fcn.18007d590
movzx eax, byte [0x180123a1f]
test eax, eax
je 0x18007e9d1
call fcn.180032500
mov ecx, eax
call fcn.18007f950
movzx eax, al
test eax, eax
je 0x18007e9d1
call fcn.180032a30
lea rdx, [rsp + 0x7c]
mov ecx, eax
call fcn.18007d6d0
test eax, eax
je 0x18007e9d1
mov ecx, dword [rsp + 0x7c]
call fcn.18007daa0
test eax, eax
je 0x18007e9d1
mov ecx, dword [rsp + 0x7c]
call fcn.18007d550
test eax, eax
je 0x18007e9d1
mov ecx, dword [rsp + 0x7c]
call fcn.18007e110
mov ecx, dword [rsp + 0x7c]
call fcn.18007e0c0
xorps xmm1, xmm1
mov ecx, dword [rsp + 0x7c]
call fcn.18007e0e0
movzx eax, byte [0x180123a1a]
test eax, eax
je 0x18007f11f
call fcn.180032500
mov dword [rsp + 0xa0], eax
call fcn.180032500
mov r8d, 1
mov edx, eax
lea rcx, [rsp + 0x4d0]
call fcn.18007d620
lea rcx, [rsp + 0x6a0]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x4e8]
call fcn.180068520
lea rcx, [rsp + 0x6b8]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x6a0]
lea rcx, [rsp + 0x6b8]
call fcn.18007c8a0
cvtsi2ss xmm0, rax
movss dword [rsp + 0x84], xmm0
call fcn.180032500
mov r8d, 1
mov edx, eax
lea rcx, [rsp + 0x500]
call fcn.18007d620
lea rcx, [rsp + 0x6d0]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x518]
call fcn.180068520
lea rcx, [rsp + 0x6e8]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x6d0]
lea rcx, [rsp + 0x6e8]
call fcn.18007c8a0
cvtsi2ss xmm0, rax
movss dword [rsp + 0x80], xmm0
cvtss2sd xmm0, dword [rsp + 0x84]
addsd xmm0, qword [0x1800ce0e8]
cvtsd2ss xmm0, xmm0
movss dword [rsp + 0x84], xmm0
cvtss2sd xmm0, dword [rsp + 0x80]
addsd xmm0, qword [0x1800ce0f0]
cvtsd2ss xmm0, xmm0
movss dword [rsp + 0x80], xmm0
mov ecx, dword [rsp + 0xa0]
call fcn.18007f950
movzx eax, al
test eax, eax
je 0x18007f11f
mov r8d, 1
mov edx, 0x3a
mov ecx, dword [rsp + 0xa0]
call fcn.18007d880
test eax, eax
je 0x18007f11f
lea rcx, str.VEHICLE_WEAPON_ENEMY_LASER
call fcn.18007d780
mov dword [rsp + 0x94], eax
mov ecx, dword [rsp + 0x94]
call fcn.18007da30
test eax, eax
jne 0x18007eb96
xor r8d, r8d
mov edx, 0x1f
mov ecx, dword [rsp + 0x94]
call fcn.18007dcb0
mov ecx, dword [rsp + 0x94]
call fcn.18007da30
test eax, eax
jne 0x18007eb96
xor ecx, ecx
call fcn.1800232b0
jmp 0x18007eb7d
xor edx, edx
lea rcx, [rsp + 0x530]
call fcn.18007d700
lea rcx, [rsp + 0x700]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x700]
lea rcx, [rsp + 0x548]
call fcn.1800208c0
lea rcx, [rsp + 0x718]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
movss xmm2, dword [rsp + 0x80]
lea rdx, [rsp + 0x718]
lea rcx, [rsp + 0x560]
call fcn.1800207e0
lea rcx, [rsp + 0x730]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x578]
call fcn.180068520
lea rcx, [rsp + 0x748]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea r8, [rsp + 0x730]
lea rdx, [rsp + 0x748]
lea rcx, [rsp + 0x590]
call fcn.180020570
lea rcx, [rsp + 0x988]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
xor edx, edx
lea rcx, [rsp + 0x5a8]
call fcn.18007d700
lea rcx, [rsp + 0x760]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x760]
lea rcx, [rsp + 0x1d0]
call fcn.1800208c0
lea rcx, [rsp + 0x778]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
movss xmm2, dword [rsp + 0x80]
lea rdx, [rsp + 0x778]
lea rcx, [rsp + 0x1e8]
call fcn.1800207e0
lea rcx, [rsp + 0x790]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x200]
call fcn.180068520
lea rcx, [rsp + 0x7a8]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea r8, [rsp + 0x790]
lea rdx, [rsp + 0x7a8]
lea rcx, [rsp + 0x218]
call fcn.180020570
lea rcx, [rsp + 0xa30]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
xor edx, edx
lea rcx, [rsp + 0x230]
call fcn.18007d700
lea rcx, [rsp + 0x7c0]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x7c0]
lea rcx, [rsp + 0x248]
call fcn.1800208c0
lea rcx, [rsp + 0x940]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
movss xmm2, dword [rsp + 0x80]
lea rdx, [rsp + 0x940]
lea rcx, [rsp + 0x260]
call fcn.1800207e0
lea rcx, [rsp + 0x7d8]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x278]
call fcn.180068520
lea rcx, [rsp + 0x7f0]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea r8, [rsp + 0x7d8]
lea rdx, [rsp + 0x7f0]
lea rcx, [rsp + 0x290]
call fcn.180020570
lea rcx, [rsp + 0x8c8]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
xor edx, edx
lea rcx, [rsp + 0x2a8]
call fcn.18007d700
lea rcx, [rsp + 0x808]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x808]
lea rcx, [rsp + 0x2c0]
call fcn.1800208c0
lea rcx, [rsp + 0x820]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
movss xmm2, dword [rsp + 0x84]
lea rdx, [rsp + 0x820]
lea rcx, [rsp + 0x2d8]
call fcn.1800207e0
lea rcx, [rsp + 0x838]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x2f0]
call fcn.180068520
lea rcx, [rsp + 0x850]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea r8, [rsp + 0x838]
lea rdx, [rsp + 0x850]
lea rcx, [rsp + 0x308]
call fcn.180020570
lea rcx, [rsp + 0x8e0]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
xor edx, edx
lea rcx, [rsp + 0x320]
call fcn.18007d700
lea rcx, [rsp + 0x868]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x868]
lea rcx, [rsp + 0x338]
call fcn.1800208c0
lea rcx, [rsp + 0x880]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
movss xmm2, dword [rsp + 0x84]
lea rdx, [rsp + 0x880]
lea rcx, [rsp + 0x4b8]
call fcn.1800207e0
lea rcx, [rsp + 0x898]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x350]
call fcn.180068520
lea rcx, [rsp + 0xa78]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea r8, [rsp + 0x898]
lea rdx, [rsp + 0xa78]
lea rcx, [rsp + 0x368]
call fcn.180020570
lea rcx, [rsp + 0x8f8]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
xor edx, edx
lea rcx, [rsp + 0x380]
call fcn.18007d700
lea rcx, [rsp + 0xa60]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0xa60]
lea rcx, [rsp + 0x398]
call fcn.1800208c0
lea rcx, [rsp + 0xa00]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
movss xmm2, dword [rsp + 0x84]
lea rdx, [rsp + 0xa00]
lea rcx, [rsp + 0x3b0]
call fcn.1800207e0
lea rcx, [rsp + 0x9e8]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rcx, [rsp + 0x3c8]
call fcn.180068520
lea rcx, [rsp + 0x9a0]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea r8, [rsp + 0x9e8]
lea rdx, [rsp + 0x9a0]
lea rcx, [rsp + 0x3e0]
call fcn.180020570
lea rcx, [rsp + 0x910]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
movss xmm0, dword [0x1800c631c]
movss dword [rsp + 0x60], xmm0
mov dword [rsp + 0x58], 0
mov dword [rsp + 0x50], 1
mov eax, dword [rsp + 0xa0]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0x94]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x30], 0xfa
movss xmm0, dword [rsp + 0x998]
movss dword [rsp + 0x28], xmm0
movss xmm0, dword [rsp + 0xa38]
movss dword [rsp + 0x20], xmm0
movss xmm3, dword [rsp + 0x8c8]
movss xmm2, dword [rsp + 0x8f0]
movss xmm1, dword [rsp + 0x900]
movss xmm0, dword [rsp + 0x910]
call fcn.18007e130
movzx eax, byte [0x180123a1c]
test eax, eax
je 0x18007f4c9
call fcn.180032500
mov dword [rsp + 0xa8], eax
call fcn.180032500
mov edx, 1
mov ecx, eax
call fcn.18007db00
test eax, eax
jne 0x18007f4c9
call fcn.180032500
mov edx, 1
mov ecx, eax
call fcn.18007d520
lea rcx, [rsp + 0x3f8]
call fcn.18007f7e0
lea rcx, [rsp + 0x928]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x9d0]
lea rcx, [rsp + 0x928]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
xor edx, edx
lea rcx, [rsp + 0x410]
call fcn.18007d700
lea rcx, [rsp + 0x958]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x970]
lea rcx, [rsp + 0x958]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x170]
lea rcx, [rsp + 0x970]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x170]
lea rcx, [rsp + 0x428]
call fcn.18007dd80
lea rcx, [rsp + 0xa18]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x688]
lea rcx, [rsp + 0xa18]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x150]
lea rcx, [rsp + 0x688]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
movss xmm2, dword [0x180092d2c]
lea rdx, [rsp + 0x150]
lea rcx, [rsp + 0x440]
call fcn.18007fa40
lea rcx, [rsp + 0x9b8]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x130]
lea rcx, [rsp + 0x9b8]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0xf0]
lea rcx, [rsp + 0x9d0]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea r8, [rsp + 0x130]
lea rdx, [rsp + 0xf0]
lea rcx, [rsp + 0x458]
call fcn.18007f880
lea rcx, [rsp + 0xaa8]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x5f8]
lea rcx, [rsp + 0xaa8]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x110]
lea rcx, [rsp + 0x688]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
movss xmm2, dword [0x1800ce0f8]
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x470]
call fcn.18007fa40
lea rcx, [rsp + 0xa48]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x1b0]
lea rcx, [rsp + 0xa48]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x190]
lea rcx, [rsp + 0x5f8]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea r8, [rsp + 0x1b0]
lea rdx, [rsp + 0x190]
lea rcx, [rsp + 0x488]
call fcn.18007f880
lea rcx, [rsp + 0xa90]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x658]
lea rcx, [rsp + 0xa90]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
mov r8d, 1
lea rdx, [rsp + 0xc4]
mov ecx, dword [rsp + 0xa8]
call fcn.18007d5c0
mov edx, 0xd0
mov ecx, 2
call fcn.18007da50
test eax, eax
jne 0x18007f43e
mov ecx, 1
call qword [sym.imp.USER32.dll_GetKeyState]
cwde
and eax, 0x8000
test eax, eax
je 0x18007f4c9
movss xmm0, dword [0x1800ce0fc]
movss dword [rsp + 0x60], xmm0
mov dword [rsp + 0x58], 1
mov dword [rsp + 0x50], 1
mov eax, dword [rsp + 0xa8]
mov dword [rsp + 0x48], eax
mov eax, dword [rsp + 0xc4]
mov dword [rsp + 0x40], eax
mov dword [rsp + 0x38], 1
mov dword [rsp + 0x30], 0x32
movss xmm0, dword [rsp + 0x668]
movss dword [rsp + 0x28], xmm0
movss xmm0, dword [rsp + 0x660]
movss dword [rsp + 0x20], xmm0
movss xmm3, dword [rsp + 0x658]
movss xmm2, dword [rsp + 0x608]
movss xmm1, dword [rsp + 0x600]
movss xmm0, dword [rsp + 0x5f8]
call fcn.18007e130
movzx eax, byte [0x180123a1e]
test eax, eax
je 0x18007f641
call fcn.180032500
mov dword [rsp + 0xac], eax
mov dword [rsp + 0x98], 0
jmp 0x18007f501
mov eax, dword [rsp + 0x98]
inc eax
mov dword [rsp + 0x98], eax
cmp dword [rsp + 0x98], 0x20
jge 0x18007f641
mov ecx, dword [rsp + 0x98]
call fcn.18007d910
mov dword [rsp + 0x74], eax
mov ecx, dword [rsp + 0x74]
call fcn.18007d550
test eax, eax
je 0x18007f63c
mov eax, dword [rsp + 0xac]
cmp dword [rsp + 0x74], eax
jne 0x18007f53f
jmp 0x18007f4f1
call fcn.180032500
mov ecx, eax
call fcn.18007d550
test eax, eax
je 0x18007f63c
mov r8d, 0x11
mov edx, dword [rsp + 0x74]
mov ecx, dword [rsp + 0xac]
call fcn.18007d990
test eax, eax
je 0x18007f63c
mov ecx, dword [rsp + 0x74]
call fcn.18007db70
test eax, eax
jne 0x18007f63c
mov ecx, dword [rsp + 0x74]
call fcn.18007d600
cmp eax, 0xff
jne 0x18007f63c
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x18007f63c
xorps xmm0, xmm0
movss dword [rsp + 0x28], xmm0
xorps xmm0, xmm0
movss dword [rsp + 0x20], xmm0
movss xmm3, dword [0x180098344]
mov r8d, 0x796e
mov edx, dword [rsp + 0x74]
lea rcx, [rsp + 0x4a0]
call fcn.18007d7b0
lea rcx, [rsp + 0x8b0]
mov rdi, rcx
mov rsi, rax
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
lea rax, [rsp + 0x670]
lea rcx, [rsp + 0x8b0]
mov rdi, rax
mov rsi, rcx
mov ecx, 0x18
rep movsb byte [rdi], byte [rsi]
call fcn.180032500
mov dword [rsp + 0x20], 1
movss xmm3, dword [rsp + 0x680]
movss xmm2, dword [rsp + 0x678]
movss xmm1, dword [rsp + 0x670]
mov ecx, eax
call fcn.18007dff0
jmp 0x18007f4f1
movzx eax, byte [0x180123a1d]
test eax, eax
je 0x18007f703
call fcn.180032a30
lea rdx, [rsp + 0xb0]
mov ecx, eax
call fcn.18007d6d0
test eax, eax
je 0x18007f703
mov ecx, 1
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
cwde
test eax, eax
je 0x18007f703
mov ecx, dword [rsp + 0xb0]
call fcn.18007da80
test eax, eax
je 0x18007f703
mov ecx, dword [rsp + 0xb0]
call fcn.18007d6b0
mov dword [rsp + 0x88], eax
mov ecx, dword [rsp + 0x88]
call fcn.18007dac0
test eax, eax
je 0x18007f703
mov ecx, dword [rsp + 0x88]
call fcn.18007dc90
mov ecx, dword [rsp + 0x88]
call fcn.18007d9d0
test eax, eax
jne 0x18007f6d8
xor ecx, ecx
call fcn.1800232b0
jmp 0x18007f6bf
call fcn.180032a30
mov edx, dword [rsp + 0x88]
mov ecx, eax
call fcn.18007e090
call fcn.180032500
mov ecx, eax
call fcn.18007df60
mov ecx, dword [rsp + 0x88]
call fcn.18007df40
movzx eax, byte [0x180123a16]
test eax, eax
je 0x18007f7c3
call fcn.180032500
mov dword [rsp + 0xb4], eax
mov dword [rsp + 0x8c], 0
jmp 0x18007f73b
mov eax, dword [rsp + 0x8c]
inc eax
mov dword [rsp + 0x8c], eax
movsxd rax, dword [rsp + 0x8c]
cmp rax, 0x39
jae 0x18007f7c3
movsxd rax, dword [rsp + 0x8c]
lea rcx, str.WEAPON_KNIFE
mov rcx, qword [rcx + rax*8]
call fcn.18007d780
xor r8d, r8d
mov edx, eax
mov ecx, dword [rsp + 0xb4]
call fcn.18007d9f0
test eax, eax
je 0x18007f7be
call qword [sym.imp.api_ms_win_crt_utility_l1_1_0.dll_rand]
cdq
and edx, 7
add eax, edx
and eax, 7
sub eax, edx
mov dword [rsp + 0xc8], eax
movsxd rcx, dword [rsp + 0x8c]
lea rdx, str.WEAPON_KNIFE
mov rcx, qword [rdx + rcx*8]
call fcn.18007d780
mov ecx, dword [rsp + 0xc8]
mov r8d, ecx
mov edx, eax
mov ecx, dword [rsp + 0xb4]
call fcn.18007e050
jmp 0x18007f72b
mov rcx, qword [rsp + 0xad8]
xor rcx, rsp
call fcn.1800803c0
add rsp, 0xae8
pop rdi
pop rsi
ret