Function at 0x18015c1f0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x48]
sub rsp, 0x148
vmovaps xmmword [rax - 0x58], xmm6
vmovaps xmmword [rax - 0x68], xmm7
vmovaps xmmword [rax - 0x78], xmm8
xor r13d, r13d
mov dword [rbp + 0x90], 2
lea r8, [rbp + 0x90]
lea rdx, [rsp + 0x60]
call fcn.18018b050
mov dword [rsp + 0x78], r13d
lea r8, [rsp + 0x78]
lea rdx, [rbp]
call fcn.18018b050
mov r15, qword [rax]
add r15, 0x18
mov dword [rbp - 0x80], 1
lea r8, [rbp - 0x80]
lea rdx, [rbp - 0x10]
call fcn.18018b050
mov rax, qword [rax]
add rax, 0x18
mov qword [rsp + 0x70], rax
mov r12d, dword [r15 + 8]
mov rcx, qword [0x180243f50]
mov rax, qword [rcx]
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, dword [0x180253324]
call qword [rax + 0x360]
test byte [0x1802533a4], 0x20
je 0x18015c3d2
mov dword [rbp + 0x90], 9
lea r8, [rbp + 0x90]
lea rdx, [rsp + 0x60]
lea rcx, [0x18023d900]
call fcn.1800c8090
mov rcx, qword [rax]
mov rbx, qword [rcx + 0x18]
mov rsi, qword [rcx + 0x20]
cmp rbx, rsi
je 0x18015c3d2
lea r14, [0x180253024]
mov rdi, qword [rbx]
mov dword [rbp + 0xa0], r13d
mov dword [rbp + 0x90], r13d
mov dword [rbp + 0x98], r13d
mov dword [rbp + 0xa8], r13d
lea rax, [rbp + 0xa8]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x98]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x90]
lea r8, [rbp + 0xa0]
mov rdx, rdi
call fcn.1801583c0
test al, al
je 0x18015c3c5
lea rcx, [rdi + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x10]
test rax, rax
je 0x18015c371
mov ecx, dword [rax + 0x28]
cmp ecx, 0x53
jg 0x18015c7c6
je 0x18015c7ba
cmp ecx, 0x30
je 0x18015c7ae
cmp ecx, 0x49
je 0x18015c7a2
cmp ecx, 0x52
je 0x18015c7ba
lea rcx, str.Unknown_NPC
mov dword [rbp + 0xa8], 1
mov r9d, dword [rbp + 0x90]
sub r9d, r12d
mov eax, dword [rbp + 0x98]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rbp + 0xa0]
mov qword [rsp + 0x30], rcx
lea rcx, [rbp + 0xa8]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], r14
mov r8d, eax
mov rdx, r15
lea rcx, [0x18023d260]
call fcn.1801887c0
add rbx, 8
cmp rbx, rsi
jne 0x18015c2e0
test byte [0x1802533a4], 0x40
je 0x18015c4d8
mov dword [rbp + 0x90], 6
lea r8, [rbp + 0x90]
lea rdx, [rsp + 0x60]
lea rcx, [0x18023d900]
call fcn.1800c8090
mov rcx, qword [rax]
mov rdi, qword [rcx + 0x20]
mov rbx, qword [rcx + 0x18]
cmp rbx, rdi
je 0x18015c4d8
lea rsi, str.Health
lea r14, [0x1802528a4]
nop dword [rax]
nop word [rax + rax]
mov dword [rbp + 0xa0], r13d
mov dword [rbp + 0x90], r13d
mov dword [rbp + 0x98], r13d
mov dword [rbp + 0xa8], r13d
lea rax, [rbp + 0xa8]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x98]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x90]
lea r8, [rbp + 0xa0]
mov rdx, qword [rbx]
call fcn.1801583c0
test al, al
je 0x18015c4cb
mov dword [rbp + 0xa8], 4
mov r9d, dword [rbp + 0x90]
sub r9d, r12d
mov eax, dword [rbp + 0x98]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rbp + 0xa0]
mov qword [rsp + 0x30], rsi
lea rcx, [rbp + 0xa8]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], r14
mov r8d, eax
mov rdx, r15
lea rcx, [0x18023d260]
call fcn.1801887c0
add rbx, 8
cmp rbx, rdi
jne 0x18015c430
test byte [0x1802533a4], 0x80
je 0x18015c5d8
mov dword [rbp + 0x90], 7
lea r8, [rbp + 0x90]
lea rdx, [rsp + 0x60]
lea rcx, [0x18023d900]
call fcn.1800c8090
mov rcx, qword [rax]
mov rdi, qword [rcx + 0x20]
mov rbx, qword [rcx + 0x18]
cmp rbx, rdi
je 0x18015c5d8
lea rsi, str.Ammo
lea r14, [0x1802524a4]
nop dword [rax]
mov dword [rbp + 0xa0], r13d
mov dword [rbp + 0x90], r13d
mov dword [rbp + 0x98], r13d
mov dword [rbp + 0xa8], r13d
lea rax, [rbp + 0xa8]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x98]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x90]
lea r8, [rbp + 0xa0]
mov rdx, qword [rbx]
call fcn.1801583c0
test al, al
je 0x18015c5cb
mov dword [rbp + 0xa8], 4
mov r9d, dword [rbp + 0x90]
sub r9d, r12d
mov eax, dword [rbp + 0x98]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rbp + 0xa0]
mov qword [rsp + 0x30], rsi
lea rcx, [rbp + 0xa8]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], r14
mov r8d, eax
mov rdx, r15
lea rcx, [0x18023d260]
call fcn.1801887c0
add rbx, 8
cmp rbx, rdi
jne 0x18015c530
test dword [0x1802533a4], 0x100
je 0x18015c6d8
mov dword [rbp + 0x90], 0xb
lea r8, [rbp + 0x90]
lea rdx, [rsp + 0x60]
lea rcx, [0x18023d900]
call fcn.1800c8090
mov rcx, qword [rax]
mov rdi, qword [rcx + 0x20]
mov rbx, qword [rcx + 0x18]
cmp rbx, rdi
je 0x18015c6d8
lea rsi, str.Money
lea r14, [0x180252fa4]
nop dword [rax]
mov dword [rbp + 0xa0], r13d
mov dword [rbp + 0x90], r13d
mov dword [rbp + 0x98], r13d
mov dword [rbp + 0xa8], r13d
lea rax, [rbp + 0xa8]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x98]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x90]
lea r8, [rbp + 0xa0]
mov rdx, qword [rbx]
call fcn.1801583c0
test al, al
je 0x18015c6cb
mov dword [rbp + 0xa8], 1
mov r9d, dword [rbp + 0x90]
sub r9d, r12d
mov eax, dword [rbp + 0x98]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rbp + 0xa0]
mov qword [rsp + 0x30], rsi
lea rcx, [rbp + 0xa8]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], r14
mov r8d, eax
mov rdx, r15
lea rcx, [0x18023d260]
call fcn.1801887c0
add rbx, 8
cmp rbx, rdi
jne 0x18015c630
test dword [0x1802533a4], 0x200
je 0x18015c859
mov dword [rbp + 0x90], 0xa
lea r8, [rbp + 0x90]
lea rdx, [rsp + 0x60]
lea rcx, [0x18023d900]
call fcn.1800c8090
mov rcx, qword [rax]
mov rbx, qword [rcx + 0x18]
mov rsi, qword [rcx + 0x20]
cmp rbx, rsi
je 0x18015c859
lea r14, [0x180252b24]
mov rdi, qword [rbx]
mov dword [rbp + 0xa0], r13d
mov dword [rbp + 0x90], r13d
mov dword [rbp + 0x98], r13d
mov dword [rbp + 0xa8], r13d
lea rax, [rbp + 0xa8]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x98]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x90]
lea r8, [rbp + 0xa0]
mov rdx, rdi
call fcn.1801583c0
test al, al
je 0x18015c84c
lea rcx, [rdi + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x10]
test rax, rax
je 0x18015c7f8
mov ecx, dword [rax + 0x28]
sub ecx, 0xd5
je 0x18015c7ef
cmp ecx, 0x45
jne 0x18015c7f8
lea rcx, str.Pumpkin_Bomb
jmp 0x18015c7ff
lea rcx, str.Horseless_Headless_Horsemann
jmp 0x18015c378
lea rcx, str.Monoculus
jmp 0x18015c378
lea rcx, str.Merasmus
jmp 0x18015c378
sub ecx, 0x13c
je 0x18015c7e3
cmp ecx, 0x26
jne 0x18015c371
lea rcx, str.Skeleton
jmp 0x18015c378
lea rcx, str.Tank
jmp 0x18015c378
lea rcx, str.Bomb
jmp 0x18015c7ff
lea rcx, str.Unknown_Bomb
mov dword [rbp + 0xa8], 1
mov r9d, dword [rbp + 0x90]
sub r9d, r12d
mov eax, dword [rbp + 0x98]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rbp + 0xa0]
mov qword [rsp + 0x30], rcx
lea rcx, [rbp + 0xa8]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], r14
mov r8d, eax
mov rdx, r15
lea rcx, [0x18023d260]
call fcn.1801887c0
add rbx, 8
cmp rbx, rsi
jne 0x18015c725
lea rsi, [0x180252924]
test dword [0x1802533a4], 0x400
je 0x18015c958
mov dword [rbp + 0x90], 0xc
lea r8, [rbp + 0x90]
lea rdx, [rsp + 0x60]
lea rcx, [0x18023d900]
call fcn.1800c8090
mov rcx, qword [rax]
mov rdi, qword [rcx + 0x20]
mov rbx, qword [rcx + 0x18]
cmp rbx, rdi
je 0x18015c958
lea r14, str.Spellbook
nop dword [rax]
mov dword [rbp + 0xa0], r13d
mov dword [rbp + 0x90], r13d
mov dword [rbp + 0x98], r13d
mov dword [rbp + 0xa8], r13d
lea rax, [rbp + 0xa8]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x98]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x90]
lea r8, [rbp + 0xa0]
mov rdx, qword [rbx]
call fcn.1801583c0
test al, al
je 0x18015c94b
mov dword [rbp + 0xa8], 1
mov r9d, dword [rbp + 0x90]
sub r9d, r12d
mov eax, dword [rbp + 0x98]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rbp + 0xa0]
mov qword [rsp + 0x30], r14
lea rcx, [rbp + 0xa8]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rsi
mov r8d, eax
mov rdx, r15
lea rcx, [0x18023d260]
call fcn.1801887c0
add rbx, 8
cmp rbx, rdi
jne 0x18015c8b0
test dword [0x1802533a4], 0x800
je 0x18015ca58
mov dword [rbp + 0x90], 0xd
lea r8, [rbp + 0x90]
lea rdx, [rsp + 0x60]
lea rcx, [0x18023d900]
call fcn.1800c8090
mov rcx, qword [rax]
mov rdi, qword [rcx + 0x20]
mov rbx, qword [rcx + 0x18]
cmp rbx, rdi
je 0x18015ca58
lea r14, str.Gargoyle
nop word [rax + rax]
mov dword [rbp + 0xa0], r13d
mov dword [rbp + 0x90], r13d
mov dword [rbp + 0x98], r13d
mov dword [rbp + 0xa8], r13d
lea rax, [rbp + 0xa8]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x98]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x90]
lea r8, [rbp + 0xa0]
mov rdx, qword [rbx]
call fcn.1801583c0
test al, al
je 0x18015ca4b
mov dword [rbp + 0xa8], 1
mov r9d, dword [rbp + 0x90]
sub r9d, r12d
mov eax, dword [rbp + 0x98]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rbp + 0xa0]
mov qword [rsp + 0x30], r14
lea rcx, [rbp + 0xa8]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rsi
mov r8d, eax
mov rdx, r15
lea rcx, [0x18023d260]
call fcn.1801887c0
add rbx, 8
cmp rbx, rdi
jne 0x18015c9b0
test dword [0x1802533a4], 0x1000
je 0x18015ce1b
mov dword [rbp + 0x90], 0xe
lea r8, [rbp + 0x90]
lea rdx, [rsp + 0x60]
lea rcx, [0x18023d900]
call fcn.1800c8090
mov rcx, qword [rax]
mov rdi, qword [rcx + 0x18]
mov rax, qword [rcx + 0x20]
mov qword [rsp + 0x50], rax
cmp rdi, rax
je 0x18015ce1b
vmovss xmm6, dword [0x1802189b0]
nop dword [rax + rax]
mov rsi, qword [rdi]
mov dword [rbp + 0xa8], r13d
mov dword [rsp + 0x48], r13d
mov dword [rsp + 0x4c], r13d
mov dword [rsp + 0x40], r13d
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x4c]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x48]
lea r8, [rbp + 0xa8]
mov rdx, rsi
call fcn.1801583c0
test al, al
je 0x18015ce0c
movzx eax, byte [0x180252f21]
mov byte [rsp + 0x20], al
mov r9, rsi
mov r8, qword [0x18023d8e0]
lea rdx, [rsp + 0x44]
call fcn.180187840
mov rcx, rsi
call fcn.1801581a0
mov ecx, dword [rax]
mov r14d, dword [rbp + 0xa8]
mov ebx, dword [rsp + 0x48]
mov r13d, dword [rsp + 0x4c]
test ecx, ecx
je 0x18015cd69
cmp ecx, 2
jne 0x18015cdbc
mov dword [rbp + 0xa8], 0
mov dword [rbp + 0x90], 0xff57cafe
lea r8d, [r14 + 4]
add r8d, r13d
lea rcx, str.DROPPED
mov qword [rsp + 0x30], rcx
lea rcx, [rbp + 0xa8]
mov qword [rsp + 0x28], rcx
lea rcx, [rbp + 0x90]
mov qword [rsp + 0x20], rcx
mov r9d, ebx
mov rdx, qword [rsp + 0x70]
lea rcx, [0x18023d260]
call fcn.1801885a0
mov rcx, qword [rsp + 0x70]
mov eax, dword [rcx + 8]
mov dword [rbp + 0xa8], eax
mov ecx, 4
mov eax, dword [0x18024256c]
mov rdx, qword gs:[0x58]
mov rax, qword [rdx + rax*8]
mov ecx, dword [rcx + rax]
cmp dword [0x1802444ac], ecx
jle 0x18015cc71
lea rcx, [0x1802444ac]
call fcn.1801905cc
cmp dword [0x1802444ac], 0xffffffff
jne 0x18015cc71
mov rcx, qword [0x180243e98]
mov rax, qword [rcx]
call qword [rax + 0x40]
mov r10, rax
test rax, rax
je 0x18015cc5d
nop dword [rax]
mov r8, qword [r10 + 0x10]
mov rcx, 0xffffffffffffffff
mov r9d, 0x811c9dc5
inc rcx
cmp byte [r8 + rcx], 0
jne 0x18015cc11
xor edx, edx
test rcx, rcx
je 0x18015cc54
nop dword [rax]
nop word [rax + rax]
movsx eax, byte [rdx + r8]
xor eax, r9d
imul r9d, eax, 0x1000193
inc rdx
cmp rdx, rcx
jb 0x18015cc30
cmp r9d, 0x33faa6b2
je 0x18015cd54
mov r10, qword [r10 + 0x20]
test r10, r10
jne 0x18015cc00
xor eax, eax
mov dword [0x1802444c4], eax
lea rcx, [0x1802444ac]
call fcn.180190560
movsxd rax, dword [0x1802444c4]
vmovss xmm0, dword [rax + rsi]
mov rax, qword [0x180243f18]
vsubss xmm0, xmm0, dword [rax + 0xc]
vaddss xmm1, xmm0, xmm6
lea rax, str.RETURNS_IN_:.1f_SEC
mov qword [rbp - 0x50], rax
mov qword [rbp - 0x48], 0x15
vmovss dword [rbp - 0x70], xmm1
movabs rax, 0x7000000000000000
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x60], 1
lea rax, [rbp - 0x78]
mov qword [rbp - 0x58], rax
vmovups xmm0, xmmword [rbp - 0x60]
vmovdqa xmmword [rbp - 0x20], xmm0
vmovups xmm1, xmmword [rbp - 0x50]
vmovdqa xmmword [rsp + 0x60], xmm1
lea r8, [rbp - 0x20]
lea rdx, [rsp + 0x60]
lea rcx, [rbp - 0x40]
call fcn.1800b12c0
nop
lea rax, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rax, qword [rbp - 0x40]
mov dword [rsp + 0x40], 0
mov dword [rbp + 0x98], 0xff57cafe
mov r9d, dword [rbp + 0xa8]
add r9d, ebx
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x98]
mov qword [rsp + 0x20], rax
lea r8d, [r14 + 4]
add r8d, r13d
mov rdx, qword [rsp + 0x70]
lea rcx, [0x18023d260]
call fcn.1801885a0
nop
lea rcx, [rbp - 0x40]
call fcn.180098e30
jmp 0x18015cdbc
lea r8, str.m_flResetTime
mov rdx, qword [r10 + 0x18]
call fcn.180190160
jmp 0x18015cc5f
mov dword [rbp + 0xa8], 0
mov dword [rbp + 0xa0], 0xff57cafe
lea r8d, [r14 + 4]
add r8d, r13d
lea rax, str.HOME
mov qword [rsp + 0x30], rax
lea rax, [rbp + 0xa8]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0xa0]
mov qword [rsp + 0x20], rax
mov r9d, ebx
mov rdx, qword [rsp + 0x70]
lea rcx, [0x18023d260]
call fcn.1801885a0
mov dword [rbp + 0xa8], 1
sub ebx, r12d
mov eax, r13d
cdq
sub eax, edx
sar eax, 1
lea r8d, [r14 + rax]
lea rcx, str.Intel
mov qword [rsp + 0x30], rcx
lea rcx, [rbp + 0xa8]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x44]
mov qword [rsp + 0x20], rcx
mov r9d, ebx
mov rdx, r15
lea rcx, [0x18023d260]
call fcn.1801887c0
xor r13d, r13d
add rdi, 8
cmp rdi, qword [rsp + 0x50]
jne 0x18015cab0
test dword [0x1802533a4], 0x2000
je 0x18015d0d5
mov dword [rbp + 0x90], 8
lea r8, [rbp + 0x90]
lea rdx, [rbp - 0x10]
lea rcx, [0x18023d900]
call fcn.1800c8090
mov rcx, qword [rax]
mov rdi, qword [rcx + 0x18]
mov r14, qword [rcx + 0x20]
cmp rdi, r14
je 0x18015d0d5
lea rbx, [0x180000000]
vmovss xmm6, dword [0x180219360]
vxorps xmm8, xmm8, xmm8
vmovss xmm7, dword [0x1802188f0]
nop dword [rax]
mov rsi, qword [rdi]
mov dword [rbp + 0xa0], r13d
mov dword [rbp + 0x90], r13d
mov dword [rbp + 0x98], r13d
mov dword [rbp + 0xa8], r13d
lea rax, [rbp + 0xa8]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0x98]
mov qword [rsp + 0x20], rax
lea r9, [rbp + 0x90]
lea r8, [rbp + 0xa0]
mov rdx, rsi
call fcn.1801583c0
test al, al
je 0x18015d0c8
lea rcx, [rsi + 0x10]
mov rax, qword [rcx]
call qword [rax + 0x10]
test rax, rax
je case.0x18015cf0f.198
mov eax, dword [rax + 0x28]
add eax, 0xffffff4a
cmp eax, 0x83
ja case.0x18015cf0f.198
cdqe
movzx eax, byte [rbx + rax + 0x15d15c]
mov ecx, dword [rbx + rax*4 + 0x15d118]
add rcx, rbx
jmp rcx
lea rbx, str.Rocket
jmp 0x18015d050
mov rcx, rsi
call fcn.1800c2b50
mov edx, dword [rax]
sub edx, 1
je 0x18015cf4e
sub edx, 1
je 0x18015cf4e
cmp edx, 1
je 0x18015cf42
lea rbx, str.Pipe
jmp 0x18015d050
lea rbx, str.Cannonball
jmp 0x18015d050
lea rbx, str.Sticky
jmp 0x18015d050
lea rbx, str.Bread_Monster
jmp 0x18015d050
lea rbx, str.Jarate
jmp 0x18015d050
lea rbx, str.Gas_Can
jmp 0x18015d050
lea rbx, str.Milk
jmp 0x18015d050
vmovss dword [rsp + 0x58], xmm8
vmovss dword [rsp + 0x54], xmm8
vmovss dword [rsp + 0x50], xmm8
lea rdx, [rsp + 0x50]
mov rcx, rsi
call qword [0x18023cea8]
vmovss xmm0, dword [rsp + 0x50]
vandps xmm0, xmm0, xmm6
vcomiss xmm7, xmm0
jbe 0x18015cfde
vmovss xmm0, dword [rsp + 0x54]
vandps xmm0, xmm0, xmm6
vcomiss xmm7, xmm0
jbe 0x18015cfde
vmovss xmm0, dword [rsp + 0x58]
vandps xmm0, xmm0, xmm6
vcomiss xmm7, xmm0
ja 0x18015d0c8
lea rbx, str.Arrow
jmp 0x18015d050
lea rbx, str.Flare
jmp 0x18015d050
lea rbx, str.Cleaver
jmp 0x18015d050
lea rbx, str.Energy_Ball
jmp 0x18015d050
lea rbx, str.Laser
jmp 0x18015d050
lea rbx, str.Heal_Arrow
jmp 0x18015d050
mov rcx, rsi
call fcn.1800c2a50
cmp byte [rax], 0
jne 0x18015d0c8
lea rbx, str.Baseball
jmp 0x18015d050
lea rbx, str.Ornament_Ball
jmp 0x18015d050
lea rbx, str.Energy_Orb
jmp 0x18015d050
lea rbx, str.Fireball
jmp 0x18015d050
lea rbx, str.Unknown_Projectile
movzx eax, byte [0x180252f21]
mov byte [rsp + 0x20], al
mov r9, rsi
mov r8, qword [0x18023d8e0]
lea rdx, [rsp + 0x44]
call fcn.180187840
mov dword [rbp + 0xa8], 1
mov r9d, dword [rbp + 0x90]
sub r9d, r12d
mov eax, dword [rbp + 0x98]
cdq
sub eax, edx
sar eax, 1
add eax, dword [rbp + 0xa0]
mov qword [rsp + 0x30], rbx
lea rcx, [rbp + 0xa8]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x44]
mov qword [rsp + 0x20], rcx
mov r8d, eax
mov rdx, r15
lea rcx, [0x18023d260]
call fcn.1801887c0
lea rbx, [0x180000000]
add rdi, 8
cmp rdi, r14
jne 0x18015ce80
mov rcx, qword [0x180243f50]
mov rax, qword [rcx]
vmovss xmm1, dword [0x180218a50]
lea r11, [rsp + 0x148]
vmovaps xmm6, xmmword [r11 - 0x18]
vmovaps xmm7, xmmword [r11 - 0x28]
vmovaps xmm8, xmmword [r11 - 0x38]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
jmp qword [rax + 0x360]