Function at 0x180132430
Capabilities:
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], r8
mov qword [rax + 0x10], rdx
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0xf8]
sub rsp, 0x1b8
movaps xmmword [rax - 0x58], xmm6
movaps xmmword [rax - 0x68], xmm7
movaps xmmword [rax - 0x78], xmm8
movaps xmmword [rax - 0x88], xmm9
movzx edi, r9b
mov rsi, r8
mov r13, rcx
xor r14d, r14d
lea rax, str.Bind_
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], 9
mov rcx, r8
cmp qword [r8 + 0x18], 0xf
jbe 0x18013249b
mov rcx, qword [r8]
mov rax, qword [r8 + 0x10]
mov qword [rbp - 0x10], rcx
mov qword [rbp - 8], rax
movups xmm0, xmmword [rbp - 0x10]
movups xmmword [rbp + 0x38], xmm0
movabs rax, 0xc000000000000000
mov qword [rbp + 0x30], rax
mov qword [rbp - 0x10], 1
lea rax, [rbp + 0x30]
mov qword [rbp - 8], rax
movaps xmm0, xmmword [rbp - 0x10]
movdqa xmmword [rsp + 0x60], xmm0
movaps xmm1, xmmword [rbp - 0x30]
movdqa xmmword [rbp - 0x30], xmm1
lea r8, [rsp + 0x60]
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x48]
call fcn.1800ab1e0
nop
lea rbx, [rbp + 0x48]
cmp qword [rbp + 0x60], 0xf
cmova rbx, qword [rbp + 0x48]
cmp byte [0x1802563cb], 0
jne 0x180132513
cmp byte [0x1802563ca], 0
je 0x180132522
movss xmm1, dword [0x18022cae4]
xor ecx, ecx
call fcn.1800450d0
mov rax, qword [0x1802563d0]
test rbx, rbx
je 0x180132569
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x28], rbx
movss xmm0, dword [0x18022ce3c]
movss dword [rsp + 0x20], xmm0
movss xmm3, dword [0x18022ce10]
movss xmm2, dword [rax + 0x3c18]
lea rdx, [rbp + 0x108]
mov rcx, qword [rax + 0x3c10]
call fcn.18006ac40
xor edx, edx
mov r8d, 1
mov rcx, rbx
call fcn.1800766c0
cmp byte [0x1802563cb], 0
jne 0x18013258b
cmp byte [0x1802563ca], 0
je 0x180132596
mov ecx, 1
call fcn.1800451e0
nop
lea rcx, [rbp + 0x48]
call fcn.180093e20
mov ecx, dword [0x180255e0c]
mov rax, qword gs:[0x58]
mov edx, 4
mov rax, qword [rax + rcx*8]
mov ecx, dword [rdx + rax]
cmp dword [0x180267040], ecx
jle 0x1801325ef
lea rcx, [0x180267040]
call fcn.1801a548c
cmp dword [0x180267040], 0xffffffff
jne 0x1801325ef
lea rcx, [0x1801b5ae0]
call fcn.1801a58cc
lea rcx, [0x180267040]
call fcn.1801a5420
lea rbx, [0x1802514a0]
xorps xmm8, xmm8
test dil, dil
je 0x1801326a1
mov dword [0x180251784], 0xffffffff
mov rdx, rsi
lea rcx, [rbp - 0x80]
call fcn.180093ab0
mov qword [rbp - 0x60], r14
mov dword [rbp - 0x58], r14d
mov byte [rbp - 0x54], 0
mov dword [rbp - 0x50], 0
movsd qword [rbp - 0x48], xmm8
mov word [rbp - 0x40], 0x100
mov dword [rbp - 0x3c], 0xffffffff
lea rdx, [rbp - 0x80]
mov rcx, rbx
call fcn.1800939b0
mov eax, dword [rbp - 0x60]
mov dword [0x1802514c0], eax
mov eax, dword [rbp - 0x5c]
mov dword [0x1802514c4], eax
mov eax, dword [rbp - 0x58]
mov dword [0x1802514c8], eax
movzx eax, byte [rbp - 0x54]
mov byte [0x1802514cc], al
movups xmm0, xmmword [rbp - 0x50]
movaps xmmword [0x1802514d0], xmm0
movzx eax, byte [rbp - 0x40]
mov byte [0x1802514e0], al
movzx eax, byte [rbp - 0x3f]
mov byte [0x1802514e1], al
mov eax, dword [rbp - 0x3c]
mov dword [0x1802514e4], eax
lea rcx, [rbp - 0x80]
call fcn.180093e20
xorps xmm0, xmm0
movdqu xmmword [rbp + 0x18], xmm0
mov r15, r14
mov qword [rbp - 0x10], r14
mov qword [rbp + 0x28], r14
movdqu xmmword [rbp], xmm0
mov r12, r14
mov qword [rbp + 0x108], r14
mov qword [rbp + 0x10], r14
movdqu xmmword [rbp + 0x30], xmm0
mov qword [rbp + 0x40], r14
mov rdi, qword [r13 + 0x68]
mov rbx, qword [rdi]
mov rsi, qword [rbp + 8]
cmp rbx, rdi
je 0x180132720
lea r8, [rbx + 0x10]
mov eax, dword [r8]
cmp eax, 0xffffffff
je 0x180132711
cmp rsi, r12
je 0x1801326fd
mov dword [rsi], eax
add rsi, 4
mov qword [rbp + 8], rsi
jmp 0x180132711
mov rdx, rsi
lea rcx, [rbp]
call fcn.18013b900
mov r12, qword [rbp + 0x10]
mov rsi, qword [rbp + 8]
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x1801326e0
mov qword [rbp + 0x108], r12
mov r8, rsi
mov r13, qword [rbp]
sub r8, r13
sar r8, 2
movzx r9d, byte [rbp + 0x118]
mov rdx, rsi
mov rcx, r13
call fcn.18013c240
mov rdi, r13
mov ecx, 2
movabs rdx, 0xe38e38e38e38e39
mov rbx, qword [rbp + 0x38]
cmp r13, rsi
je 0x1801328b7
lea rax, str._Bind
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], 0xb
mov qword [rsp + 0x60], rcx
lea rax, [rbp - 0x80]
mov qword [rsp + 0x68], rax
movabs r13, 0x1000000000000010
movaps xmm6, xmmword [rbp - 0x30]
movaps xmm7, xmmword [rsp + 0x60]
mov r15, qword [rbp + 0x110]
movabs r12, 0xc000000000000000
movsxd r9, dword [rdi]
cmp r9d, 0xffffffff
je 0x1801327e2
mov rcx, qword [0x180252ad8]
mov r10, qword [0x180252ad0]
sub rcx, r10
mov rax, rdx
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r9, rdx
jae 0x1801327e2
lea rax, [r9 + r9*8]
lea rax, [r10 + rax*8]
jmp 0x1801327e5
mov rax, r15
mov rcx, rax
cmp qword [rax + 0x18], 0xf
jbe 0x1801327f2
mov rcx, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x68], rax
movups xmm0, xmmword [rsp + 0x60]
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x80], r12
mov dword [rbp - 0x60], r9d
mov qword [rbp - 0x78], r13
movdqa xmmword [rbp - 0x30], xmm7
movdqa xmmword [rsp + 0x40], xmm6
lea r8, [rbp - 0x30]
lea rdx, [rsp + 0x40]
lea rcx, [rbp + 0x48]
call fcn.1800ab1e0
nop
cmp rbx, r14
je 0x180132870
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
xor eax, eax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
movups xmm0, xmmword [rbp + 0x48]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rbp + 0x58]
movups xmmword [rbx + 0x10], xmm1
mov qword [rbp + 0x58], rax
mov qword [rbp + 0x60], 0xf
mov byte [rbp + 0x48], al
add rbx, 0x20
mov qword [rbp + 0x38], rbx
jmp 0x180132888
lea r8, [rbp + 0x48]
mov rdx, rbx
lea rcx, [rbp + 0x30]
call fcn.180097400
mov r14, qword [rbp + 0x40]
mov rbx, qword [rbp + 0x38]
lea rcx, [rbp + 0x48]
call fcn.180093e20
add rdi, 4
cmp rdi, rsi
movabs rdx, 0xe38e38e38e38e39
jne 0x1801327a5
mov r15, qword [rbp - 0x10]
mov r12, qword [rbp + 0x108]
mov r13, qword [rbp]
mov r14, qword [rbp + 0x30]
mov rdi, qword [rbp + 0x20]
cmp r14, rbx
je 0x18013290e
mov rax, r14
cmp qword [r14 + 0x18], 0xf
jbe 0x1801328d1
mov rax, qword [r14]
mov qword [rbp + 0x108], rax
cmp rdi, r15
je 0x1801328ea
mov qword [rdi], rax
add rdi, 8
mov qword [rbp + 0x20], rdi
jmp 0x180132905
lea r8, [rbp + 0x108]
mov rdx, rdi
lea rcx, [rbp + 0x18]
call fcn.18013b760
mov r15, qword [rbp + 0x28]
mov rdi, qword [rbp + 0x20]
add r14, 0x20
cmp r14, rbx
jne 0x1801328c4
lea rax, str.new_bind
mov qword [rbp + 0x108], rax
cmp rdi, r15
je 0x18013292e
mov qword [rdi], rax
add rdi, 8
mov qword [rbp + 0x20], rdi
jmp 0x180132949
lea r8, [rbp + 0x108]
mov rdx, rdi
lea rcx, [rbp + 0x18]
call fcn.18013b760
mov r15, qword [rbp + 0x28]
mov rdi, qword [rbp + 0x20]
mov dword [rbp + 0x108], 0xffffffff
cmp rsi, r12
je 0x180132968
mov dword [rsi], 0xffffffff
add rsi, 4
mov qword [rbp + 8], rsi
jmp 0x180132987
lea r8, [rbp + 0x108]
mov rdx, rsi
lea rcx, [rbp]
call fcn.18013b900
mov r12, qword [rbp + 0x10]
mov rsi, qword [rbp + 8]
mov r13, qword [rbp]
mov dword [rbp + 0x118], 0xfffffffe
lea rax, [rsp + 0x40]
mov qword [rbp + 0x108], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
xor eax, eax
mov qword [rsp + 0x50], rax
sub rsi, r13
mov rbx, rsi
sar rbx, 2
test rbx, rbx
je 0x1801329fd
movabs rax, 0x3fffffffffffffff
cmp rbx, rax
ja 0x180133677
mov rdx, rbx
call fcn.1800d6350
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
lea rbx, [rax + rbx*4]
mov qword [rsp + 0x50], rbx
mov r8, rsi
mov rdx, r13
mov rcx, rax
call sub.VCRUNTIME140.dll_memmove
mov qword [rsp + 0x48], rbx
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x60], xmm0
xor ebx, ebx
mov qword [rsp + 0x70], rbx
mov r14, qword [rbp + 0x18]
sub rdi, r14
mov rsi, rdi
sar rsi, 3
test rsi, rsi
je 0x180132a4b
mov rdx, rsi
lea rcx, [rsp + 0x60]
call fcn.1800bb140
mov rbx, qword [rsp + 0x60]
mov r8, rdi
mov rdx, r14
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
lea rax, [rbx + rsi*8]
mov qword [rsp + 0x68], rax
xor ebx, ebx
lea rax, [rbp + 0x118]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], 0xffffffc4
mov dword [rsp + 0x20], 8
lea r9, [rsp + 0x40]
lea r8, [rsp + 0x60]
lea rdx, [0x180251784]
lea rcx, str.Bind
call fcn.18010af20
movabs rsi, 0xcbf29ce484222325
movabs rdi, 0x100000001b3
test al, al
je 0x180132cf3
movsxd r8, dword [0x180251784]
cmp r8d, 0xffffffff
je 0x180132b73
mov rcx, qword [0x180252ad8]
mov r10, qword [0x180252ad0]
sub rcx, r10
movabs rax, 0xe38e38e38e38e39
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r8, rdx
jae 0x180132b73
lea rax, [r8 + r8*8]
lea rbx, [r10 + rax*8]
lea rax, [0x1802514a0]
cmp rax, rbx
je 0x180132b1f
mov rdx, rbx
cmp qword [rbx + 0x18], 0xf
jbe 0x180132b0c
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
mov rcx, rax
call fcn.180093e80
mov r8d, dword [0x180251784]
mov eax, dword [rbx + 0x20]
mov dword [0x1802514c0], eax
mov eax, dword [rbx + 0x24]
mov dword [0x1802514c4], eax
mov eax, dword [rbx + 0x28]
mov dword [0x1802514c8], eax
movzx eax, byte [rbx + 0x2c]
mov byte [0x1802514cc], al
movups xmm0, xmmword [rbx + 0x30]
movaps xmmword [0x1802514d0], xmm0
movzx eax, byte [rbx + 0x40]
mov byte [0x1802514e0], al
movzx eax, byte [rbx + 0x41]
mov byte [0x1802514e1], al
mov eax, dword [rbx + 0x44]
mov dword [0x1802514e4], eax
xor ebx, ebx
jmp 0x180132c19
mov rdx, qword [rbp + 0x110]
lea rcx, [rbp - 0x80]
call fcn.180093ab0
mov qword [rbp - 0x60], 0
mov dword [rbp - 0x58], ebx
mov byte [rbp - 0x54], 0
mov dword [rbp - 0x50], 0
movsd qword [rbp - 0x48], xmm8
mov word [rbp - 0x40], 0x100
mov dword [rbp - 0x3c], 0xffffffff
lea rdx, [rbp - 0x80]
lea rcx, [0x1802514a0]
call fcn.1800939b0
mov eax, dword [rbp - 0x60]
mov dword [0x1802514c0], eax
mov eax, dword [rbp - 0x5c]
mov dword [0x1802514c4], eax
mov eax, dword [rbp - 0x58]
mov dword [0x1802514c8], eax
movzx eax, byte [rbp - 0x54]
mov byte [0x1802514cc], al
movups xmm0, xmmword [rbp - 0x50]
movaps xmmword [0x1802514d0], xmm0
movzx eax, byte [rbp - 0x40]
mov byte [0x1802514e0], al
movzx eax, byte [rbp - 0x3f]
mov byte [0x1802514e1], al
mov eax, dword [rbp - 0x3c]
mov dword [0x1802514e4], eax
lea rcx, [rbp - 0x80]
call fcn.180093e20
mov r8d, dword [0x180251784]
movzx ecx, r8b
xor rcx, rsi
imul rcx, rdi
movzx eax, byte [0x180251785]
xor rcx, rax
imul rcx, rdi
movzx eax, byte [0x180251786]
xor rcx, rax
imul rcx, rdi
movzx eax, byte [0x180251787]
xor rcx, rax
imul rcx, rdi
mov rsi, qword [rbp + 0x100]
mov rdx, qword [rsi + 0x90]
and rdx, rcx
add rdx, rdx
mov rcx, qword [rsi + 0x78]
mov rax, qword [rcx + rdx*8 + 8]
cmp rax, qword [rsi + 0x68]
je 0x180132c91
mov rcx, qword [rcx + rdx*8]
cmp r8d, dword [rax + 0x10]
je 0x180132c94
nop dword [rax + rax]
cmp rax, rcx
je 0x180132c91
mov rax, qword [rax + 8]
cmp r8d, dword [rax + 0x10]
jne 0x180132c80
jmp 0x180132c94
mov rax, rbx
test rax, rax
je 0x180132d01
lea rcx, [rsi + 0x60]
lea r8, [0x180251784]
lea rdx, [rsp + 0x40]
call fcn.1800aba80
mov rcx, qword [rax]
add rcx, 0x18
lea r10, [0x180266f30]
cmp r10, rcx
je 0x180132cfa
mov r9, qword [rcx]
mov rcx, qword [rcx + 8]
sub rcx, r9
movabs rax, 0x6666666666666667
imul rcx
sar rdx, 4
mov r8, rdx
shr r8, 0x3f
add r8, rdx
mov rdx, r9
mov rcx, r10
call fcn.1800acaf0
jmp 0x180132cfa
mov rsi, qword [rbp + 0x100]
mov r8d, dword [0x180251784]
mov edx, dword [rbp + 0x118]
cmp edx, 0xfffffffe
je 0x180132f25
cmp edx, 0xffffffff
jne 0x180132e62
mov rcx, qword [0x180252ad8]
sub rcx, qword [0x180252ad0]
movabs rax, 0xe38e38e38e38e39
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov dword [0x180251784], edx
mov rdi, qword [rbp + 0x110]
mov rdx, rdi
lea rcx, [rbp - 0x80]
call fcn.180093ab0
mov qword [rbp - 0x60], 0
mov dword [rbp - 0x58], ebx
mov byte [rbp - 0x54], 0
mov dword [rbp - 0x50], 0
movsd qword [rbp - 0x48], xmm8
mov word [rbp - 0x40], 0x100
mov dword [rbp - 0x3c], 0xffffffff
lea rdx, [rbp - 0x80]
lea rcx, [0x1802514a0]
call fcn.1800939b0
mov eax, dword [rbp - 0x60]
mov dword [0x1802514c0], eax
mov eax, dword [rbp - 0x5c]
mov dword [0x1802514c4], eax
mov eax, dword [rbp - 0x58]
mov dword [0x1802514c8], eax
movzx eax, byte [rbp - 0x54]
mov byte [0x1802514cc], al
movups xmm0, xmmword [rbp - 0x50]
movaps xmmword [0x1802514d0], xmm0
movzx eax, byte [rbp - 0x40]
mov byte [0x1802514e0], al
movzx eax, byte [rbp - 0x3f]
mov byte [0x1802514e1], al
mov eax, dword [rbp - 0x3c]
mov dword [0x1802514e4], eax
lea rcx, [rbp - 0x80]
call fcn.180093e20
lea rdx, [0x1802514a0]
lea rcx, [rbp - 0x80]
call fcn.180093ab0
mov eax, dword [0x1802514c0]
mov dword [rbp - 0x60], eax
mov eax, dword [0x1802514c4]
mov dword [rbp - 0x5c], eax
mov eax, dword [0x1802514c8]
mov dword [rbp - 0x58], eax
movzx eax, byte [0x1802514cc]
mov byte [rbp - 0x54], al
movaps xmm0, xmmword [0x1802514d0]
movups xmmword [rbp - 0x50], xmm0
movzx eax, byte [0x1802514e0]
mov byte [rbp - 0x40], al
movzx eax, byte [0x1802514e1]
mov byte [rbp - 0x3f], al
mov eax, dword [0x1802514e4]
mov dword [rbp - 0x3c], eax
lea r8, [rbp - 0x80]
mov edx, dword [0x180251784]
call fcn.1800e3f00
mov r8d, dword [0x180251784]
jmp 0x180132f2c
movzx ecx, dl
movabs rax, 0xcbf29ce484222325
xor rcx, rax
imul rcx, rdi
movzx eax, byte [rbp + 0x119]
xor rcx, rax
imul rcx, rdi
movzx eax, byte [rbp + 0x11a]
xor rcx, rax
imul rcx, rdi
movzx eax, byte [rbp + 0x11b]
xor rcx, rax
imul rcx, rdi
mov r8, qword [rsi + 0x90]
and r8, rcx
add r8, r8
mov r10, qword [rsi + 0x78]
mov rax, qword [r10 + r8*8 + 8]
lea rcx, [rsi + 0x68]
mov r9, qword [rcx]
cmp rax, r9
je 0x180132ee8
mov r8, qword [r10 + r8*8]
cmp edx, dword [rax + 0x10]
je 0x180132eeb
nop dword [rax + rax]
cmp rax, r8
je 0x180132ee4
mov rax, qword [rax + 8]
cmp edx, dword [rax + 0x10]
jne 0x180132ed0
lea rcx, [rsi + 0x68]
jmp 0x180132eeb
lea rcx, [rsi + 0x68]
mov rax, rbx
test rax, rax
cmovne r9, rax
cmp r9, qword [rcx]
je 0x180132f10
mov r8, r9
lea rdx, [rbp + 0x100]
lea rcx, [rsi + 0x60]
call fcn.180139c50
mov edx, dword [rbp + 0x118]
xor r8d, r8d
call fcn.1800e3fd0
mov r8d, 0xffffffff
mov dword [0x180251784], r8d
mov rdi, qword [rbp + 0x110]
cmp r8d, 0xffffffff
sete byte [0x1802563ca]
mov rdx, qword [0x1802575d8]
mov rcx, qword [0x1802575f0]
test rcx, rcx
jns 0x180132f6d
mov rax, rcx
neg rax
je 0x180132f6d
mov rax, rcx
not rax
shr rax, 5
lea rax, [rax*4 + 4]
sub rdx, rax
mov qword [rbp - 0x10], rdx
jmp 0x180132f7c
mov rax, rcx
shr rax, 5
lea rax, [rdx + rax*4]
mov qword [rbp - 0x10], rax
and ecx, 0x1f
mov qword [rbp - 8], rcx
movaps xmm0, xmmword [rbp - 0x10]
movdqa xmmword [rsp + 0x40], xmm0
lea r9, [0x1802563ca]
lea r8, [rsp + 0x40]
lea rdx, [rsp + 0x60]
lea rcx, [0x1802575d8]
call fcn.18012b330
mov rcx, qword [0x1802563d0]
mov rax, qword [rcx + 0x3ee0]
movss xmm8, dword [rax + 0x104]
subss xmm8, dword [rax + 0x24]
movss xmm9, dword [rax + 0x100]
subss xmm9, dword [rax + 0x20]
addss xmm9, dword [rax + 0x84]
addss xmm8, dword [rax + 0x88]
movss xmm2, dword [rax + 0x28]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3ee0]
movss xmm1, dword [rax + 0x24]
subss xmm1, dword [rax + 0x88]
movss xmm6, dword [0x18022cc6c]
addss xmm1, xmm6
movss xmm0, dword [rax + 0x20]
subss xmm0, dword [rax + 0x84]
subss xmm2, dword [0x18022cc5c]
addss xmm0, xmm2
movss dword [rax + 0x100], xmm0
movss dword [rax + 0x104], xmm1
mov byte [rax + 0x141], 1
movdqa xmm7, xmmword [0x18022d610]
lea rax, [0x180223ccc]
lea rcx, [0x180223cc8]
cmp byte [0x1802514e1], 0
cmovne rcx, rax
movdqa xmmword [rsp + 0x40], xmm7
lea r8, [rsp + 0x40]
call fcn.180107070
test al, al
je 0x180133087
cmp byte [0x1802514e1], 0
sete byte [0x1802514e1]
mov rcx, qword [0x1802563d0]
mov rax, qword [rcx + 0x3ee0]
movss xmm2, dword [rax + 0x28]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3ee0]
movss xmm1, dword [rax + 0x24]
subss xmm1, dword [rax + 0x88]
addss xmm1, xmm6
movss xmm0, dword [rax + 0x20]
subss xmm0, dword [rax + 0x84]
subss xmm2, dword [0x18022cca0]
addss xmm0, xmm2
movss dword [rax + 0x100], xmm0
movss dword [rax + 0x104], xmm1
mov byte [rax + 0x141], 1
lea rax, [0x180223d18]
lea rcx, [0x180223d14]
cmp byte [0x1802514cc], 0
cmove rcx, rax
movdqa xmmword [rsp + 0x40], xmm7
lea r8, [rsp + 0x40]
call fcn.180107070
test al, al
je 0x180133124
cmp byte [0x1802514cc], 0
sete byte [0x1802514cc]
mov rcx, qword [0x1802563d0]
mov rax, qword [rcx + 0x3ee0]
mov byte [rax + 0xb8], 1
mov rax, qword [rcx + 0x3ee0]
movss xmm1, dword [rax + 0x24]
subss xmm1, dword [rax + 0x88]
addss xmm1, xmm8
movss xmm0, dword [rax + 0x20]
subss xmm0, dword [rax + 0x84]
addss xmm0, xmm9
movss dword [rax + 0x100], xmm0
movss dword [rax + 0x104], xmm1
mov byte [rax + 0x141], 1
lea rax, [rbp - 0x30]
mov qword [rbp + 0x100], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x30], xmm0
mov qword [rbp - 0x20], rbx
lea rax, [0x180220800]
mov qword [rsp + 0x60], rax
lea rax, str.Class
mov qword [rsp + 0x68], rax
lea rax, str.Weapon_type
mov qword [rsp + 0x70], rax
movdqu xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], rbx
mov edx, 3
lea rcx, [rsp + 0x40]
call fcn.1800bb140
mov rbx, qword [rsp + 0x40]
mov r8d, 0x18
lea rdx, [rsp + 0x60]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
lea rax, [rbx + 0x18]
mov qword [rsp + 0x48], rax
xor ebx, ebx
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 1
lea r9, [rbp - 0x30]
lea r8, [rsp + 0x40]
lea rdx, [0x1802514c0]
lea rcx, str.Type
call fcn.18010af20
mov ecx, dword [0x1802514c0]
test ecx, ecx
je 0x1801333bd
sub ecx, 1
je 0x1801332de
cmp ecx, 1
jne 0x18013347e
mov eax, dword [0x1802514c4]
cmp eax, 2
mov ecx, 2
cmovg eax, ecx
mov dword [0x1802514c4], eax
lea rax, [rbp - 0x30]
mov qword [rbp + 0x100], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x30], xmm0
mov qword [rbp - 0x20], rbx
lea rax, str.Hitscan
mov qword [rsp + 0x60], rax
lea rax, str.Projectile
mov qword [rsp + 0x68], rax
lea rax, str.Melee
mov qword [rsp + 0x70], rax
movdqu xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], rbx
mov edx, 3
lea rcx, [rsp + 0x40]
call fcn.1800bb140
mov rbx, qword [rsp + 0x40]
mov r8d, 0x18
lea rdx, [rsp + 0x60]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
lea rax, [rbx + 0x18]
mov qword [rsp + 0x48], rax
lea rcx, str.Weapon_type
jmp 0x180133451
mov eax, dword [0x1802514c4]
cmp eax, 8
mov ecx, 8
cmovg eax, ecx
mov dword [0x1802514c4], eax
lea rax, [rsp + 0x60]
mov qword [rbp + 0x100], rax
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], rbx
lea rax, str.Scout
mov qword [rbp - 0x80], rax
lea rax, str.Soldier
mov qword [rbp - 0x78], rax
lea rax, str.Pyro
mov qword [rbp - 0x70], rax
lea rax, str.Demoman
mov qword [rbp - 0x68], rax
lea rax, str.Heavy
mov qword [rbp - 0x60], rax
lea rax, str.Engineer
mov qword [rbp - 0x58], rax
lea rax, str.Medic
mov qword [rbp - 0x50], rax
lea rax, str.Sniper
mov qword [rbp - 0x48], rax
lea rax, [0x1802242a4]
mov qword [rbp - 0x40], rax
movdqu xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], rbx
mov edx, 9
lea rcx, [rsp + 0x40]
call fcn.1800bb140
mov rbx, qword [rsp + 0x40]
mov r8d, 0x48
lea rdx, [rbp - 0x80]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
lea rax, [rbx + 0x48]
mov qword [rsp + 0x48], rax
lea r9, [rsp + 0x60]
lea rcx, str.Class
jmp 0x180133455
mov eax, dword [0x1802514c4]
cmp eax, 2
mov ecx, 2
cmovg eax, ecx
mov dword [0x1802514c4], eax
lea rax, [rbp - 0x30]
mov qword [rbp + 0x100], rax
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x30], xmm0
mov qword [rbp - 0x20], rbx
lea rax, str.Hold
mov qword [rsp + 0x60], rax
lea rax, str.Toggle
mov qword [rsp + 0x68], rax
lea rax, str.Double_click
mov qword [rsp + 0x70], rax
movdqu xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], rbx
mov edx, 3
lea rcx, [rsp + 0x40]
call fcn.1800bb140
mov rbx, qword [rsp + 0x40]
mov r8d, 0x18
lea rdx, [rsp + 0x60]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
lea rax, [rbx + 0x18]
mov qword [rsp + 0x48], rax
lea rcx, str.Behavior
lea r9, [rbp - 0x30]
xor eax, eax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], 2
lea r8, [rsp + 0x40]
lea rdx, [0x1802514c4]
call fcn.18010af20
cmp dword [0x1802514c0], 0
jne 0x1801334a0
xor r9d, r9d
xor r8d, r8d
lea rdx, [0x1802514c8]
lea rcx, [0x180220800]
call fcn.18010f970
cmp byte [0x1802563ca], 0
jne 0x180133593
movsxd r9, dword [0x180251784]
cmp r9d, 0xffffffff
je 0x180133593
mov rcx, qword [0x180252ad8]
sub rcx, qword [0x180252ad0]
movabs rax, 0xe38e38e38e38e39
imul rcx
sar rdx, 2
mov rax, rdx
shr rax, 0x3f
add rdx, rax
cmp r9, rdx
jae 0x180133593
lea rcx, [rsi + 0x60]
lea r8, [0x180251784]
lea rdx, [rsp + 0x40]
call fcn.1800aba80
mov rcx, qword [rax]
add rcx, 0x18
lea rdx, [0x180266f30]
cmp rcx, rdx
je 0x18013354d
mov r8, qword [0x180266f38]
sub r8, qword [0x180266f30]
movabs rax, 0x6666666666666667
imul r8
sar rdx, 4
mov r8, rdx
shr r8, 0x3f
add r8, rdx
mov rdx, qword [0x180266f30]
call fcn.1800acaf0
movsxd rax, dword [0x180251784]
lea rdx, [rax + rax*8]
mov rcx, qword [0x180252ad0]
mov eax, dword [0x1802514c0]
mov dword [rcx + rdx*8 + 0x20], eax
mov eax, dword [0x1802514c4]
mov dword [rcx + rdx*8 + 0x24], eax
mov eax, dword [0x1802514c8]
mov dword [rcx + rdx*8 + 0x28], eax
movzx eax, byte [0x1802514e1]
mov byte [rcx + rdx*8 + 0x41], al
movzx eax, byte [0x1802514cc]
mov byte [rcx + rdx*8 + 0x2c], al
mov dword [rbp + 0x100], 0
mov dword [rbp + 0x104], 0x41000000
lea rcx, [rbp + 0x100]
call fcn.1800791b0
nop
lea rcx, [rbp + 0x30]
call fcn.180093c70
nop
test r13, r13
je 0x180133603
sub r12, r13
sar r12, 2
lea rdx, [r12*4]
mov rax, r13
cmp rdx, 0x1000
jb 0x1801335fa
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1801335fa
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, r13
call fcn.1801a53dc
nop
test r14, r14
je 0x180133643
sub r15, r14
and r15, 0xfffffffffffffff8
mov rax, r14
cmp r15, 0x1000
jb 0x180133637
add r15, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x180133637
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rdx, r15
mov rcx, r14
call fcn.1801a53dc
nop
mov rcx, rdi
call fcn.180093e20
lea r11, [rsp + 0x1b8]
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
movaps xmm8, xmmword [r11 - 0x38]
movaps xmm9, xmmword [r11 - 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.180093c50
nop
int3