Function at 0x140070980
Capabilities:
Hash data using fnv

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x20], r9
mov qword [rax + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x378]
sub rsp, 0x440
movaps xmmword [rax - 0x48], xmm6
movaps xmmword [rax - 0x58], xmm7
movaps xmmword [rax - 0x68], xmm8
movaps xmmword [rax - 0x78], xmm9
movaps xmmword [rax - 0x88], xmm10
movaps xmmword [rax - 0x98], xmm11
movaps xmmword [rax - 0xa8], xmm12
movaps xmmword [rax - 0xb8], xmm13
movaps xmmword [rax - 0xc8], xmm14
mov r13, r8
mov rbx, rdx
mov r14, rcx
mov dword [rbp + 0x30], 0
xor edi, edi
mov qword [rbp + 0x38], rdi
mov qword [rbp + 0x40], rdi
mov ecx, 0x20
call fcn.1400bede0
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rbp + 0x38], rax
mov qword [rbp + 0x48], rdi
xorps xmm0, xmm0
movdqa xmmword [rbp + 0x50], xmm0
mov qword [rbp + 0x60], 7
mov qword [rbp + 0x68], 8
mov dword [rbp + 0x30], 0x3f800000
mov r8, rax
mov edx, 0x10
lea rcx, [rbp + 0x48]
call fcn.140060330
nop
mov eax, dword [0x1401edc98]
test eax, eax
jne 0x1400712ad
mov rcx, qword [0x1401ee228]
add rcx, rbx
xor eax, eax
mov dword [rbp + 0x13c], eax
mov dword [rbp + 0x14c], eax
mov dword [rbp + 0x15c], eax
mov dword [rbp + 0x16c], eax
mov dword [rbp + 0x17c], eax
mov dword [rbp + 0x18c], eax
mov dword [rbp + 0x19c], eax
mov dword [rbp + 0x1ac], eax
mov dword [rbp + 0x1bc], eax
mov qword [rbp + 0x78], rcx
lea rax, [rbp + 0x130]
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x88], 0x90
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x28
lea rax, [rbp + 0x70]
mov qword [rsp + 0x20], rax
mov r9d, 0x28
lea r8, [rbp + 0x70]
mov edx, 0x221a5c
mov rcx, qword [0x1401edf98]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
movups xmm0, xmmword [rbp + 0x130]
movaps xmmword [rsp + 0x70], xmm0
movups xmm1, xmmword [rbp + 0x140]
movaps xmmword [rbp - 0x80], xmm1
movups xmm0, xmmword [rbp + 0x150]
movaps xmmword [rbp - 0x70], xmm0
movups xmm1, xmmword [rbp + 0x160]
movaps xmmword [rbp - 0x60], xmm1
movups xmm0, xmmword [rbp + 0x170]
movaps xmmword [rbp - 0x50], xmm0
movups xmm1, xmmword [rbp + 0x180]
movaps xmmword [rbp - 0x40], xmm1
movups xmm0, xmmword [rbp + 0x190]
movaps xmmword [rbp - 0x30], xmm0
movups xmm1, xmmword [rbp + 0x1a0]
movaps xmmword [rbp - 0x20], xmm1
movups xmm0, xmmword [rbp + 0x1b0]
movaps xmmword [rbp - 0x10], xmm0
movdqa xmm1, xmmword [0x1400eafb0]
movdqa xmmword [rbp + 0x200], xmm1
movdqa xmm0, xmmword [0x1400eafa0]
movdqa xmmword [rbp + 0x210], xmm0
movdqa xmm1, xmmword [0x1400eaf50]
movdqa xmmword [rbp + 0x220], xmm1
movdqa xmm0, xmmword [0x1400eaf80]
movdqa xmmword [rbp + 0x230], xmm0
lea rsi, [rbp + 0x204]
lea rbx, [rbp + 0x202]
mov r15d, 8
lea r12, [0x140000000]
movabs rdi, 0xcbf29ce484222325
movsxd rax, dword [rbx - 2]
cmp eax, 8
ja case.0x140070bc7.0
mov ecx, dword [r12 + rax*4 + 0x71db4]
add rcx, r12
jmp rcx
lea rdx, [rbp - 0x80]
jmp 0x140070bfe
lea rdx, [rbp - 0x70]
jmp 0x140070bfe
lea rdx, [rbp - 0x60]
jmp 0x140070bfe
lea rdx, [rbp - 0x50]
jmp 0x140070bfe
lea rdx, [rbp - 0x40]
jmp 0x140070bfe
lea rdx, [rbp - 0x30]
jmp 0x140070bfe
lea rdx, [rbp - 0x20]
jmp 0x140070bfe
lea rdx, [rbp - 0x10]
jmp 0x140070bfe
lea rdx, [rsp + 0x70]
mov r8, r14
lea rcx, [rsp + 0x40]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm8, dword [rsp + 0x44]
movss xmm9, dword [rsp + 0x48]
movsxd rax, dword [rbx + 2]
cmp eax, 8
ja case.0x140070c2e.0
mov ecx, dword [r12 + rax*4 + 0x71dd8]
add rcx, r12
jmp rcx
lea rdx, [rbp - 0x80]
jmp 0x140070c65
lea rdx, [rbp - 0x70]
jmp 0x140070c65
lea rdx, [rbp - 0x60]
jmp 0x140070c65
lea rdx, [rbp - 0x50]
jmp 0x140070c65
lea rdx, [rbp - 0x40]
jmp 0x140070c65
lea rdx, [rbp - 0x30]
jmp 0x140070c65
lea rdx, [rbp - 0x20]
jmp 0x140070c65
lea rdx, [rbp - 0x10]
jmp 0x140070c65
lea rdx, [rsp + 0x70]
mov r8, r14
lea rcx, [rbp + 0xa0]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm6, dword [rbp + 0xa4]
movss xmm7, dword [rbp + 0xa8]
movss xmm0, dword [rsp + 0x40]
unpcklps xmm0, xmm8
movsd qword [rbp + 0x10], xmm0
movss dword [rbp + 0x18], xmm9
lea rcx, [rbp + 0x10]
call fcn.140070330
mov qword [rsp + 0x68], rax
movss xmm0, dword [rbp + 0xa0]
unpcklps xmm0, xmm6
movsd qword [rbp], xmm0
movss dword [rbp + 8], xmm7
lea rcx, [rbp]
call fcn.140070330
mov qword [rsp + 0x60], rax
movss xmm6, dword [rsp + 0x64]
movss xmm7, dword [rsp + 0x60]
movss xmm8, dword [rsp + 0x6c]
movss xmm9, dword [rsp + 0x68]
cmp dword [0x1401edcdc], 0xd
jne 0x140070f26
movzx ecx, byte [rbx - 2]
xor rcx, rdi
movabs r9, 0x100000001b3
imul rcx, r9
movzx eax, byte [rbx - 1]
xor rcx, rax
imul rcx, r9
movzx eax, byte [rbx]
xor rcx, rax
imul rcx, r9
movzx eax, byte [rbx + 1]
xor rcx, rax
imul rcx, r9
mov r10, qword [rbp + 0x60]
mov rdx, r10
and rdx, rcx
add rdx, rdx
mov rdi, qword [rbp + 0x48]
mov rcx, qword [rdi + rdx*8 + 8]
mov r11, qword [rbp + 0x38]
cmp rcx, r11
je 0x140070d62
mov rdx, qword [rdi + rdx*8]
mov eax, dword [rbx - 2]
cmp eax, dword [rcx + 0x10]
je 0x140070d64
cmp rcx, rdx
je 0x140070d62
mov rcx, qword [rcx + 8]
cmp eax, dword [rcx + 0x10]
jne 0x140070d52
jmp 0x140070d64
xor ecx, ecx
mov rax, r11
test rcx, rcx
cmovne rax, rcx
cmp rax, r11
jne 0x140070e60
movsxd rax, dword [rbx - 2]
mov r8, qword [0x1401ee1d0]
mov rdx, rax
shr rdx, 5
and al, 0x1f
movzx ecx, al
mov eax, dword [r8 + rdx*4]
bt eax, ecx
jae 0x140070e60
movsxd rax, dword [rbx + 2]
cmp eax, 8
jg 0x140070e60
mov rdx, rax
shr rdx, 5
and al, 0x1f
movzx ecx, al
mov eax, dword [r8 + rdx*4]
bt eax, ecx
jb 0x140070e29
xor ecx, ecx
mov rdx, qword [0x1401ee1e8]
test rdx, rdx
jns 0x140070ded
mov rax, rdx
neg rax
je 0x140070ded
mov rax, rdx
not rax
shr rax, 5
lea rax, [rax*4 + 4]
mov r9, r8
sub r9, rax
jmp 0x140070df8
mov rax, rdx
shr rax, 5
lea r9, [r8 + rax*4]
and edx, 0x1f
nop dword [rax + rax]
cmp r8, r9
jne 0x140070e0a
cmp rcx, rdx
je 0x140070e29
mov eax, 1
shl eax, cl
test dword [r8], eax
jne 0x140070e56
cmp rcx, 0x1f
jae 0x140070e21
inc rcx
jmp 0x140070e00
xor ecx, ecx
add r8, 4
jmp 0x140070e00
lea r8, [rsi - 4]
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0x30]
call fcn.14009b740
mov rcx, qword [rax]
movss dword [rcx + 0x14], xmm9
movss dword [rcx + 0x18], xmm8
mov r10, qword [rbp + 0x60]
mov rdi, qword [rbp + 0x48]
mov r11, qword [rbp + 0x38]
movabs r9, 0x100000001b3
movzx ecx, byte [rbx + 2]
movabs rax, 0xcbf29ce484222325
xor rcx, rax
imul rcx, r9
movzx eax, byte [rbx + 3]
xor rcx, rax
imul rcx, r9
movzx eax, byte [rbx + 4]
xor rcx, rax
imul rcx, r9
movzx eax, byte [rbx + 5]
xor rcx, rax
imul rcx, r9
and r10, rcx
add r10, r10
mov rcx, qword [rdi + r10*8 + 8]
cmp rcx, r11
je 0x140070ec2
mov rdx, qword [rdi + r10*8]
mov eax, dword [rbx + 2]
cmp eax, dword [rcx + 0x10]
je 0x140070ec4
cmp rcx, rdx
je 0x140070ec2
mov rcx, qword [rcx + 8]
cmp eax, dword [rcx + 0x10]
jne 0x140070eb2
jmp 0x140070ec4
xor ecx, ecx
mov rax, r11
test rcx, rcx
cmovne rax, rcx
cmp rax, r11
jne 0x140070f1c
movsxd r9, dword [rbx + 2]
mov rax, r9
mov r8, r9
shr r8, 5
mov rdx, qword [0x1401ee1d0]
and al, 0x1f
movzx ecx, al
mov eax, dword [rdx + r8*4]
bt eax, ecx
jae 0x140070f1c
cmp r9d, 8
jg 0x140070f1c
mov r8, rsi
lea rdx, [rbp + 0x120]
lea rcx, [rbp + 0x30]
call fcn.14009b740
mov rcx, qword [rax]
movss dword [rcx + 0x14], xmm7
movss dword [rcx + 0x18], xmm6
movabs rdi, 0xcbf29ce484222325
movss dword [rbp + 0x20], xmm9
movss dword [rbp + 0x24], xmm8
movss dword [rbp + 0x28], xmm7
movss dword [rbp + 0x2c], xmm6
mov rdx, qword [r13 + 8]
cmp rdx, qword [r13 + 0x10]
je 0x140070f54
movups xmm0, xmmword [rbp + 0x20]
movups xmmword [rdx], xmm0
add qword [r13 + 8], 0x10
jmp 0x140070f60
lea r8, [rbp + 0x20]
mov rcx, r13
call fcn.1400a4a90
add rsi, 8
add rbx, 8
sub r15, 1
jne 0x140070bb3
mov r8, r14
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x40]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [rsp + 0x44]
movss xmm2, dword [rsp + 0x48]
mov rax, qword [rbp + 0x3a0]
movss xmm0, dword [rsp + 0x40]
movss dword [rax], xmm0
movss dword [rax + 4], xmm1
movss dword [rax + 8], xmm2
movsxd rax, dword [0x1401edcdc]
cmp eax, 0xd
je 0x14007104a
cmp eax, 8
ja case.0x140070fcc.0
mov ecx, dword [r12 + rax*4 + 0x71dfc]
add rcx, r12
jmp rcx
lea rdx, [rbp - 0x80]
jmp 0x140071003
lea rdx, [rbp - 0x70]
jmp 0x140071003
lea rdx, [rbp - 0x60]
jmp 0x140071003
lea rdx, [rbp - 0x50]
jmp 0x140071003
lea rdx, [rbp - 0x40]
jmp 0x140071003
lea rdx, [rbp - 0x30]
jmp 0x140071003
lea rdx, [rbp - 0x20]
jmp 0x140071003
lea rdx, [rbp - 0x10]
jmp 0x140071003
lea rdx, [rsp + 0x70]
mov r8, r14
lea rcx, [rsp + 0x40]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [rsp + 0x44]
movss xmm2, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x40]
mov r15, qword [rbp + 0x398]
movss dword [r15], xmm0
movss dword [r15 + 4], xmm1
movss dword [r15 + 8], xmm2
cmp dword [0x1401edcdc], 0xd
jne 0x14007124b
jmp 0x140071051
mov r15, qword [rbp + 0x398]
mov dword [rbp + 0xb0], 0
xor ebx, ebx
mov qword [rbp + 0xb8], rbx
mov qword [rbp + 0xc0], rbx
mov ecx, 0x18
call fcn.1400bede0
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rbp + 0xb8], rax
mov qword [rbp + 0xc8], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0xd0], xmm0
mov qword [rbp + 0xe0], 7
mov qword [rbp + 0xe8], 8
mov dword [rbp + 0xb0], 0x3f800000
mov r8, rax
mov edx, 0x10
lea rcx, [rbp + 0xc8]
call fcn.140060330
nop
mov rdi, qword [rbp + 0x38]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x14007116b
nop word [rax + rax]
movsxd rax, dword [rbx + 0x10]
mov r8, rax
shr r8, 5
mov rdx, qword [0x1401ee1d0]
and al, 0x1f
movzx ecx, al
mov eax, dword [rdx + r8*4]
bt eax, ecx
jae 0x14007115f
movss xmm0, dword [rbx + 0x14]
subss xmm0, dword [0x1401ee1b0]
movss xmm1, dword [rbx + 0x18]
subss xmm1, dword [0x1401ee1b4]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x140071137
xorps xmm6, xmm6
sqrtss xmm6, xmm1
jmp 0x140071142
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm6, xmm0
lea r8, [rbx + 0x10]
lea rdx, [rsp + 0x50]
lea rcx, [rbp + 0xb0]
call fcn.14009b2f0
mov rcx, qword [rax]
movss dword [rcx + 0x14], xmm6
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x1400710e0
mov r8, qword [rbp + 0xb8]
mov rax, qword [r8]
cmp rax, r8
je 0x1400711c1
nop word [rax + rax]
cmp dword [rax + 0x10], 8
jle 0x14007118e
mov rax, qword [rax]
cmp rax, r8
jne 0x140071180
cmp rax, r8
je 0x1400711c1
mov rcx, qword [rax]
cmp rcx, r8
je 0x1400711c1
nop dword [rax + rax]
movss xmm0, dword [rax + 0x14]
cmp dword [rax + 0x10], 8
jg 0x1400711b6
comiss xmm0, dword [rcx + 0x14]
seta dl
test dl, dl
je 0x1400711b9
mov rax, rcx
mov rcx, qword [rcx]
cmp rcx, r8
jne 0x1400711a0
movsxd rcx, dword [rax + 0x10]
cmp ecx, 8
jg 0x14007123f
ja case.0x1400711d7.0
mov ecx, dword [r12 + rcx*4 + 0x71e20]
add rcx, r12
jmp rcx
lea rdx, [rbp - 0x80]
jmp 0x14007120e
lea rdx, [rbp - 0x70]
jmp 0x14007120e
lea rdx, [rbp - 0x60]
jmp 0x14007120e
lea rdx, [rbp - 0x50]
jmp 0x14007120e
lea rdx, [rbp - 0x40]
jmp 0x14007120e
lea rdx, [rbp - 0x30]
jmp 0x14007120e
lea rdx, [rbp - 0x20]
jmp 0x14007120e
lea rdx, [rbp - 0x10]
jmp 0x14007120e
lea rdx, [rsp + 0x70]
mov r8, r14
lea rcx, [rsp + 0x40]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [rsp + 0x44]
movss xmm2, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x40]
movss dword [r15], xmm0
movss dword [r15 + 4], xmm1
movss dword [r15 + 8], xmm2
lea rcx, [rbp + 0xb0]
call fcn.140071f80
mov r8, r14
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x40]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [rsp + 0x44]
movss xmm2, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x40]
mov rax, qword [rbp + 0x3a8]
movss dword [rax], xmm0
movss dword [rax + 4], xmm1
movss dword [rax + 8], xmm2
mov r8, r14
lea rdx, [rbp - 0x20]
lea rcx, [rsp + 0x40]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [rsp + 0x44]
movss xmm2, dword [rsp + 0x48]
movss xmm0, dword [rsp + 0x40]
jmp 0x140071d48
cmp eax, 1
jne 0x140071d5d
mov rcx, qword [0x1401ee228]
add rcx, rbx
xor eax, eax
mov dword [rbp + 0x13c], eax
mov dword [rbp + 0x14c], eax
mov dword [rbp + 0x15c], eax
mov dword [rbp + 0x16c], eax
mov dword [rbp + 0x17c], eax
mov dword [rbp + 0x18c], eax
mov dword [rbp + 0x19c], eax
mov dword [rbp + 0x1ac], eax
mov dword [rbp + 0x1bc], eax
mov qword [rbp + 0x78], rcx
lea rax, [rbp + 0x130]
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x88], 0x90
mov qword [rsp + 0x38], rdi
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x28
lea rax, [rbp + 0x70]
mov qword [rsp + 0x20], rax
mov r9d, 0x28
lea r8, [rbp + 0x70]
mov edx, 0x221a5c
mov rcx, qword [0x1401edf98]
call qword [sym.imp.KERNEL32.dll_DeviceIoControl]
movups xmm0, xmmword [rbp + 0x130]
movaps xmmword [rsp + 0x70], xmm0
movups xmm1, xmmword [rbp + 0x140]
movaps xmmword [rbp - 0x80], xmm1
movups xmm0, xmmword [rbp + 0x150]
movaps xmmword [rbp - 0x70], xmm0
movups xmm1, xmmword [rbp + 0x160]
movaps xmmword [rbp - 0x60], xmm1
movups xmm0, xmmword [rbp + 0x170]
movaps xmmword [rbp - 0x50], xmm0
movups xmm1, xmmword [rbp + 0x180]
movaps xmmword [rbp - 0x40], xmm1
movups xmm0, xmmword [rbp + 0x190]
movaps xmmword [rbp - 0x30], xmm0
movups xmm1, xmmword [rbp + 0x1a0]
movaps xmmword [rbp - 0x20], xmm1
movups xmm0, xmmword [rbp + 0x1b0]
movaps xmmword [rbp - 0x10], xmm0
movdqa xmm1, xmmword [0x1400eafb0]
movdqa xmmword [rbp + 0x240], xmm1
movdqa xmm0, xmmword [0x1400eafe0]
movdqa xmmword [rbp + 0x250], xmm0
movdqa xmm1, xmmword [0x1400eafc0]
movdqa xmmword [rbp + 0x260], xmm1
movdqa xmm0, xmmword [0x1400eaf50]
movdqa xmmword [rbp + 0x270], xmm0
movdqa xmm1, xmmword [0x1400eafd0]
movdqa xmmword [rbp + 0x280], xmm1
movdqa xmm0, xmmword [0x1400eaf90]
movdqa xmmword [rbp + 0x290], xmm0
lea rax, [rbp + 0x244]
mov qword [rsp + 0x60], rax
lea r13, [rbp + 0x242]
mov qword [rbp + 0xf8], 0xc
lea r12, [0x140000000]
movss xmm10, dword [0x1400eaa08]
movss xmm11, dword [0x1400eaa00]
movss xmm13, dword [0x1400eaa10]
movss xmm12, dword [0x1400ea9f0]
movss xmm14, dword [0x1400eaa14]
xorps xmm0, xmm0
movups xmmword [rbp + 0x70], xmm0
mov qword [rbp + 0x80], 0
lea rbx, [rbp + 0x78]
lea rdi, [r13 - 2]
mov esi, 2
movsxd rcx, dword [rdi]
cmp ecx, 8
jg 0x1400714fa
ja case.0x140071496.0
mov ecx, dword [r12 + rcx*4 + 0x71e44]
add rcx, r12
jmp rcx
lea rdx, [rbp - 0x80]
jmp 0x1400714cd
lea rdx, [rsp + 0x70]
mov r8, r14
lea rcx, [rbp + 0x1c0]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [rbp + 0x1c4]
movss xmm2, dword [rbp + 0x1c8]
movss xmm0, dword [rbp + 0x1c0]
jmp 0x140071686
sub ecx, 9
je 0x14007163a
sub ecx, 1
je 0x1400715e4
sub ecx, 1
je 0x14007157f
cmp ecx, 1
jne 0x140071694
movss xmm0, dword [rbp - 0xc]
movss dword [rbp + 0x104], xmm0
movss xmm1, dword [rbp - 0x10]
addss xmm1, xmm10
movss dword [rbp + 0x100], xmm1
movss xmm0, dword [rbp - 8]
subss xmm0, xmm11
movss dword [rbp + 0x108], xmm0
mov r8, r14
lea rdx, [rbp + 0x100]
lea rcx, [rbp + 0x1d0]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [rbp + 0x1d4]
movss xmm2, dword [rbp + 0x1d8]
movss xmm0, dword [rbp + 0x1d0]
jmp 0x140071686
movss xmm0, dword [rbp - 0xc]
movss dword [rbp + 0x114], xmm0
movss xmm1, dword [rbp - 0x10]
subss xmm1, xmm10
movss dword [rbp + 0x110], xmm1
movss xmm0, dword [rbp - 8]
subss xmm0, xmm11
movss dword [rbp + 0x118], xmm0
mov r8, r14
lea rdx, [rbp + 0x110]
lea rcx, [rbp + 0x1e0]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [rbp + 0x1e4]
movss xmm2, dword [rbp + 0x1e8]
movss xmm0, dword [rbp + 0x1e0]
jmp 0x140071686
movss xmm0, dword [rbp - 0x1c]
movss dword [rbp + 4], xmm0
movss xmm1, dword [rbp - 0x20]
addss xmm1, xmm13
movss dword [rbp], xmm1
movss xmm0, dword [rbp - 0x18]
subss xmm0, xmm12
movss dword [rbp + 8], xmm0
mov r8, r14
lea rdx, [rbp]
lea rcx, [rbp + 0x120]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [rbp + 0x124]
movss xmm2, dword [rbp + 0x128]
movss xmm0, dword [rbp + 0x120]
jmp 0x140071686
movss xmm0, dword [rbp - 0x1c]
movss dword [rbp + 0x14], xmm0
movss xmm1, dword [rbp - 0x20]
subss xmm1, xmm14
movss dword [rbp + 0x10], xmm1
movss xmm0, dword [rbp - 0x18]
subss xmm0, xmm12
movss dword [rbp + 0x18], xmm0
mov r8, r14
lea rdx, [rbp + 0x10]
lea rcx, [rsp + 0x50]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [rsp + 0x54]
movss xmm2, dword [rsp + 0x58]
movss xmm0, dword [rsp + 0x50]
movss dword [rbx - 8], xmm0
movss dword [rbx - 4], xmm1
movss dword [rbx], xmm2
add rdi, 4
add rbx, 0xc
sub rsi, 1
jne 0x140071481
movsd xmm0, qword [rbp + 0x70]
movsd qword [rbp + 0xa0], xmm0
mov eax, dword [rbp + 0x78]
mov dword [rbp + 0xa8], eax
lea rcx, [rbp + 0xa0]
call fcn.140070330
mov qword [rbp + 0xf0], rax
movsd xmm0, qword [rbp + 0x7c]
movsd qword [rbp + 0x20], xmm0
mov eax, dword [rbp + 0x84]
mov dword [rbp + 0x28], eax
lea rcx, [rbp + 0x20]
call fcn.140070330
mov qword [rsp + 0x68], rax
movss xmm6, dword [rsp + 0x6c]
movss xmm7, dword [rsp + 0x68]
movss xmm8, dword [rbp + 0xf4]
movss xmm9, dword [rbp + 0xf0]
cmp dword [0x1401edcdc], 0xd
jne 0x1400719b6
movzx edx, byte [r13 - 2]
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movabs rsi, 0x100000001b3
imul rdx, rsi
movzx eax, byte [r13 - 1]
xor rdx, rax
imul rdx, rsi
movzx eax, byte [r13]
xor rdx, rax
imul rdx, rsi
movzx eax, byte [r13 + 1]
xor rdx, rax
imul rdx, rsi
mov rdi, qword [rbp + 0x60]
and rdx, rdi
add rdx, rdx
mov rbx, qword [rbp + 0x48]
mov rcx, qword [rbx + rdx*8 + 8]
mov r11, qword [rbp + 0x38]
cmp rcx, r11
je 0x140071798
mov r8, qword [rbx + rdx*8]
mov eax, dword [r13 - 2]
cmp eax, dword [rcx + 0x10]
je 0x14007179a
cmp rcx, r8
je 0x140071798
mov rcx, qword [rcx + 8]
cmp eax, dword [rcx + 0x10]
jne 0x140071788
jmp 0x14007179a
xor ecx, ecx
mov rax, r11
test rcx, rcx
cmovne rax, rcx
cmp rax, r11
jne 0x14007187d
cmp dword [r13 + 2], 8
jg 0x14007187d
movsxd rax, dword [r13 - 2]
mov r8, qword [0x1401ee1d0]
mov rdx, rax
shr rdx, 5
and al, 0x1f
movzx ecx, al
mov eax, dword [r8 + rdx*4]
bt eax, ecx
jb 0x140071849
xor ecx, ecx
mov r9, qword [0x1401ee1e8]
test r9, r9
jns 0x140071808
mov rax, r9
neg rax
je 0x140071808
mov rax, r9
not rax
shr rax, 5
lea rax, [rax*4 + 4]
mov r10, r8
sub r10, rax
jmp 0x140071813
mov rax, r9
shr rax, 5
lea r10, [r8 + rax*4]
mov rdx, r9
and edx, 0x1f
nop dword [rax]
cmp r8, r10
jne 0x14007182a
cmp rcx, rdx
je 0x140071849
mov eax, 1
shl eax, cl
test dword [r8], eax
jne 0x140071884
cmp rcx, 0x1f
jae 0x140071841
inc rcx
jmp 0x140071820
xor ecx, ecx
add r8, 4
jmp 0x140071820
mov r8, qword [rsp + 0x60]
add r8, 0xfffffffffffffffc
lea rdx, [rbp + 0x2a0]
lea rcx, [rbp + 0x30]
call fcn.14009b740
mov rcx, qword [rax]
movss dword [rcx + 0x14], xmm9
movss dword [rcx + 0x18], xmm8
mov rdi, qword [rbp + 0x60]
mov rbx, qword [rbp + 0x48]
mov r11, qword [rbp + 0x38]
mov r9, qword [0x1401ee1e8]
movzx edx, byte [r13 + 2]
movabs rax, 0xcbf29ce484222325
xor rdx, rax
imul rdx, rsi
movzx eax, byte [r13 + 3]
xor rdx, rax
imul rdx, rsi
movzx eax, byte [r13 + 4]
xor rdx, rax
imul rdx, rsi
movzx eax, byte [r13 + 5]
xor rdx, rax
imul rdx, rsi
and rdx, rdi
add rdx, rdx
mov rcx, qword [rbx + rdx*8 + 8]
cmp rcx, r11
je 0x1400718f0
mov r8, qword [rbx + rdx*8]
mov eax, dword [r13 + 2]
cmp eax, dword [rcx + 0x10]
je 0x1400718f2
nop dword [rax + rax]
cmp rcx, r8
je 0x1400718f0
mov rcx, qword [rcx + 8]
cmp eax, dword [rcx + 0x10]
jne 0x1400718e0
jmp 0x1400718f2
xor ecx, ecx
mov rax, r11
test rcx, rcx
cmovne rax, rcx
cmp rax, r11
jne 0x1400719b6
movsxd rax, dword [r13 + 2]
cmp eax, 8
jg 0x1400719b6
mov r8, qword [0x1401ee1d0]
mov rdx, rax
shr rdx, 5
and al, 0x1f
movzx ecx, al
mov eax, dword [r8 + rdx*4]
bt eax, ecx
jb 0x14007198f
xor ecx, ecx
test r9, r9
jns 0x140071957
mov rax, r9
neg rax
je 0x140071957
mov rax, r9
not rax
shr rax, 5
lea rax, [rax*4 + 4]
mov rdx, r8
sub rdx, rax
jmp 0x140071962
mov rax, r9
shr rax, 5
lea rdx, [r8 + rax*4]
and r9d, 0x1f
cmp r8, rdx
jne 0x140071970
cmp rcx, r9
je 0x14007198f
mov eax, 1
shl eax, cl
test dword [r8], eax
jne 0x1400719b6
cmp rcx, 0x1f
jae 0x140071987
inc rcx
jmp 0x140071966
xor ecx, ecx
add r8, 4
jmp 0x140071966
mov rbx, qword [rsp + 0x60]
mov r8, rbx
lea rdx, [rbp + 0x1f0]
lea rcx, [rbp + 0x30]
call fcn.14009b740
mov rcx, qword [rax]
movss dword [rcx + 0x14], xmm7
movss dword [rcx + 0x18], xmm6
jmp 0x1400719bb
mov rbx, qword [rsp + 0x60]
movss dword [rsp + 0x40], xmm9
movss dword [rsp + 0x44], xmm8
movss dword [rsp + 0x48], xmm7
movss dword [rsp + 0x4c], xmm6
mov rax, qword [rbp + 0x390]
mov rdx, qword [rax + 8]
cmp rdx, qword [rax + 0x10]
je 0x1400719f5
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [rdx], xmm0
add qword [rax + 8], 0x10
jmp 0x140071a02
lea r8, [rsp + 0x40]
mov rcx, rax
call fcn.1400a4a90
add rbx, 8
mov qword [rsp + 0x60], rbx
add r13, 8
sub qword [rbp + 0xf8], 1
jne 0x140071462
mov r8, r14
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x50]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [rsp + 0x54]
movss xmm2, dword [rsp + 0x58]
mov rax, qword [rbp + 0x3a0]
movss xmm0, dword [rsp + 0x50]
movss dword [rax], xmm0
movss dword [rax + 4], xmm1
movss dword [rax + 8], xmm2
movsxd rax, dword [0x1401edcdc]
cmp eax, 0xd
je 0x140071af5
cmp eax, 8
ja case.0x140071a77.0
mov ecx, dword [r12 + rax*4 + 0x71e68]
add rcx, r12
jmp rcx
lea rdx, [rbp - 0x80]
jmp 0x140071aae
lea rdx, [rbp - 0x70]
jmp 0x140071aae
lea rdx, [rbp - 0x60]
jmp 0x140071aae
lea rdx, [rbp - 0x50]
jmp 0x140071aae
lea rdx, [rbp - 0x40]
jmp 0x140071aae
lea rdx, [rbp - 0x30]
jmp 0x140071aae
lea rdx, [rbp - 0x20]
jmp 0x140071aae
lea rdx, [rbp - 0x10]
jmp 0x140071aae
lea rdx, [rsp + 0x70]
mov r8, r14
lea rcx, [rsp + 0x50]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [rsp + 0x54]
movss xmm2, dword [rsp + 0x58]
movss xmm0, dword [rsp + 0x50]
mov r15, qword [rbp + 0x398]
movss dword [r15], xmm0
movss dword [r15 + 4], xmm1
movss dword [r15 + 8], xmm2
cmp dword [0x1401edcdc], 0xd
jne 0x140071ceb
jmp 0x140071afc
mov r15, qword [rbp + 0x398]
mov dword [rbp + 0xb0], 0
xor ebx, ebx
mov qword [rbp + 0xb8], rbx
mov qword [rbp + 0xc0], rbx
mov ecx, 0x18
call fcn.1400bede0
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rbp + 0xb8], rax
mov qword [rbp + 0xc8], rbx
xorps xmm0, xmm0
movdqa xmmword [rbp + 0xd0], xmm0
mov qword [rbp + 0xe0], 7
mov qword [rbp + 0xe8], 8
mov dword [rbp + 0xb0], 0x3f800000
mov r8, rax
mov edx, 0x10
lea rcx, [rbp + 0xc8]
call fcn.140060330
nop
mov rdi, qword [rbp + 0x38]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x140071c12
movsxd rax, dword [rbx + 0x10]
mov r8, rax
shr r8, 5
mov rdx, qword [0x1401ee1d0]
and al, 0x1f
movzx ecx, al
mov eax, dword [rdx + r8*4]
bt eax, ecx
jae 0x140071c06
movss xmm0, dword [rbx + 0x14]
subss xmm0, dword [0x1401ee1b0]
movss xmm1, dword [rbx + 0x18]
subss xmm1, dword [0x1401ee1b4]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm0
xorps xmm0, xmm0
ucomiss xmm0, xmm1
ja 0x140071bdc
xorps xmm6, xmm6
sqrtss xmm6, xmm1
jmp 0x140071be7
movaps xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
movaps xmm6, xmm0
lea r8, [rbx + 0x10]
lea rdx, [rbp + 0x1f0]
lea rcx, [rbp + 0xb0]
call fcn.14009b2f0
mov rcx, qword [rax]
movss dword [rcx + 0x14], xmm6
mov rbx, qword [rbx]
cmp rbx, rdi
jne 0x140071b85
mov r8, qword [rbp + 0xb8]
mov rax, qword [r8]
cmp rax, r8
je 0x140071c61
cmp dword [rax + 0x10], 8
jle 0x140071c2f
mov rax, qword [rax]
cmp rax, r8
jne 0x140071c21
cmp rax, r8
je 0x140071c61
mov rcx, qword [rax]
cmp rcx, r8
je 0x140071c61
nop dword [rax]
movss xmm0, dword [rax + 0x14]
cmp dword [rax + 0x10], 8
jg 0x140071c56
comiss xmm0, dword [rcx + 0x14]
seta dl
test dl, dl
je 0x140071c59
mov rax, rcx
mov rcx, qword [rcx]
cmp rcx, r8
jne 0x140071c40
movsxd rcx, dword [rax + 0x10]
cmp ecx, 8
jg 0x140071cdf
ja case.0x140071c77.0
mov ecx, dword [r12 + rcx*4 + 0x71e8c]
add rcx, r12
jmp rcx
lea rdx, [rbp - 0x80]
jmp 0x140071cae
lea rdx, [rbp - 0x70]
jmp 0x140071cae
lea rdx, [rbp - 0x60]
jmp 0x140071cae
lea rdx, [rbp - 0x50]
jmp 0x140071cae
lea rdx, [rbp - 0x40]
jmp 0x140071cae
lea rdx, [rbp - 0x30]
jmp 0x140071cae
lea rdx, [rbp - 0x20]
jmp 0x140071cae
lea rdx, [rbp - 0x10]
jmp 0x140071cae
lea rdx, [rsp + 0x70]
mov r8, r14
lea rcx, [rsp + 0x50]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [rsp + 0x54]
movss xmm2, dword [rsp + 0x58]
movss xmm0, dword [rsp + 0x50]
movss dword [r15], xmm0
movss dword [r15 + 4], xmm1
movss dword [r15 + 8], xmm2
lea rcx, [rbp + 0xb0]
call fcn.140071f80
mov r8, r14
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x50]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [rsp + 0x54]
movss xmm2, dword [rsp + 0x58]
movss xmm0, dword [rsp + 0x50]
mov rax, qword [rbp + 0x3a8]
movss dword [rax], xmm0
movss dword [rax + 4], xmm1
movss dword [rax + 8], xmm2
mov r8, r14
lea rdx, [rbp - 0x20]
lea rcx, [rsp + 0x50]
call qword [sym.imp.d3dx9_43.dll_D3DXVec3Transform]
movss xmm1, dword [rsp + 0x54]
movss xmm2, dword [rsp + 0x58]
movss xmm0, dword [rsp + 0x50]
mov rax, qword [rbp + 0x3b0]
movss dword [rax], xmm0
movss dword [rax + 4], xmm1
movss dword [rax + 8], xmm2
lea rcx, [rbp + 0x30]
call fcn.140071ed0
lea r11, [rsp + 0x440]
mov rbx, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
movaps xmm14, xmmword [r11 - 0x90]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret