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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x1f0
mov dword [esp + 0x5c], ecx
mov ecx, dword [ebp + 8]
mov eax, dword [0x1017f528]
xor eax, ebp
mov dword [esp + 0x1e8], eax
mov edi, dword [ecx + 0x4c]
sub edi, dword [ecx + 0x48]
cmp edi, 0x20
jb 0x100ab1c1
mov eax, dword [0x1017f610]
vmovss xmm0, dword [eax + 0x10]
vucomiss xmm0, dword [ecx + 0x2c]
jae 0x100ab1c1
movzx ebx, byte [ebp + 0xc]
mov esi, edi
sar esi, 4
call fcn.10021450
mov dword [esp + 0x80], eax
test bl, bl
je 0x100ab1c8
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x4c]
mov eax, dword [0x1017f608]
mov edx, dword [eax]
mov eax, dword [0x10184dfc]
test al, 1
mov dword [esp + 0x60], ecx
je 0x100ac38d
mov ebx, dword [0x10184df8]
mov eax, dword [ebx + 4]
vmovss xmm0, dword [eax + edx + 8]
vsubss xmm0, xmm0, dword [ecx - 8]
vmovss xmm1, dword [eax + edx]
vmovss xmm2, dword [eax + edx + 4]
vsubss xmm2, xmm2, dword [ecx - 0xc]
vsubss xmm1, xmm1, dword [ecx - 0x10]
vmulss xmm2, xmm2, xmm2
vfmadd231ss xmm2, xmm1, xmm1
vfmadd231ss xmm2, xmm0, xmm0
vcvtss2sd xmm0, xmm2, xmm2
vxorps xmm1, xmm1, xmm1
vucomisd xmm0, xmm1
jb 0x100ab4ed
vsqrtsd xmm0, xmm0, xmm0
jmp 0x100ab507
xor ebx, ebx
jmp 0x100ac30d
mov ecx, dword [0x1017f614]
mov eax, dword [ecx]
call dword [eax + 0x94]
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x48]
vmovups xmm0, xmmword [eax]
vmovups xmm1, xmmword [eax + 4]
vmovups xmm2, xmmword [eax + 8]
vmovups xmm3, xmmword [eax + 0xc]
vbroadcastss xmm4, dword [ecx + 4]
vinsertps xmm1, xmm1, dword [eax + 0x14], 0x10
vmulps xmm1, xmm4, xmm1
vinsertps xmm0, xmm0, dword [eax + 0x10], 0x10
vbroadcastss xmm5, dword [ecx]
vfmadd213ps xmm0, xmm5, xmm1
vinsertps xmm1, xmm2, dword [eax + 0x18], 0x10
vbroadcastss xmm2, dword [ecx + 8]
vfmadd213ps xmm1, xmm2, xmm0
vinsertps xmm0, xmm3, dword [eax + 0x1c], 0x10
vmulss xmm3, xmm4, dword [eax + 0x34]
vfmadd231ss xmm3, xmm5, dword [eax + 0x30]
vfmadd231ss xmm3, xmm2, dword [eax + 0x38]
vaddps xmm0, xmm1, xmm0
vaddss xmm1, xmm3, dword [eax + 0x3c]
vmovss xmm2, dword [0x10134d2c]
vucomiss xmm2, xmm1
seta cl
jbe 0x100ab264
vbroadcastss xmm1, dword [0x10134d30]
vmulps xmm1, xmm0, xmm1
jmp 0x100ab29c
vbroadcastss xmm1, xmm1
vdivps xmm0, xmm0, xmm1
mov eax, dword [esp + 0x80]
vmovsd xmm1, qword [eax + 8]
vbroadcastss xmm2, dword [0x10129738]
vmulps xmm3, xmm1, xmm2
vmulps xmm0, xmm0, xmm1
vmulps xmm0, xmm0, xmm2
vaddps xmm1, xmm3, xmm0
vsubps xmm0, xmm3, xmm0
vblendps xmm1, xmm1, xmm0, 2
cmp esi, 3
mov eax, 2
cmovae eax, esi
mov dword [esp + 0x30], eax
mov esi, 1
mov ebx, 0x18
vbroadcastss xmm0, dword [0x10134d30]
vmovaps xmmword [esp + 0x60], xmm0
vbroadcastss xmm0, dword [0x10129738]
vmovaps xmmword [esp + 0x70], xmm0
jmp 0x100ab2f4
vmulps xmm1, xmm0, xmmword [esp + 0x60]
inc esi
add ebx, 0x10
cmp dword [esp + 0x30], esi
je 0x100ac30b
vmovaps xmmword [esp + 0x40], xmm1
mov byte [esp + 0x20], cl
mov ecx, dword [0x1017f614]
mov eax, dword [ecx]
call dword [eax + 0x94]
mov ecx, dword [edi + 0x48]
mov edx, dword [edi + 0x4c]
sub edx, ecx
sar edx, 4
cmp edx, esi
jbe 0x100ac37d
vmovups xmm0, xmmword [eax]
vmovups xmm1, xmmword [eax + 4]
vmovups xmm2, xmmword [eax + 8]
vmovups xmm3, xmmword [eax + 0xc]
vinsertps xmm1, xmm1, dword [eax + 0x14], 0x10
vbroadcastss xmm4, dword [ecx + ebx - 4]
vmulps xmm1, xmm1, xmm4
vinsertps xmm0, xmm0, dword [eax + 0x10], 0x10
vbroadcastss xmm5, dword [ecx + ebx - 8]
vfmadd213ps xmm0, xmm5, xmm1
vinsertps xmm1, xmm2, dword [eax + 0x18], 0x10
vbroadcastss xmm2, dword [ecx + ebx]
vfmadd213ps xmm1, xmm2, xmm0
vinsertps xmm0, xmm3, dword [eax + 0x1c], 0x10
vaddps xmm0, xmm0, xmm1
vmulss xmm1, xmm4, dword [eax + 0x34]
vfmadd231ss xmm1, xmm5, dword [eax + 0x30]
vfmadd231ss xmm1, xmm2, dword [eax + 0x38]
vaddss xmm1, xmm1, dword [eax + 0x3c]
vmovss xmm2, dword [0x10134d2c]
vucomiss xmm2, xmm1
seta cl
ja 0x100ab2e0
vbroadcastss xmm1, xmm1
vdivps xmm0, xmm0, xmm1
mov eax, dword [esp + 0x80]
vmovsd xmm1, qword [eax + 8]
vmovaps xmm3, xmmword [esp + 0x70]
vmulps xmm2, xmm1, xmm3
vmulps xmm0, xmm0, xmm1
vmulps xmm0, xmm0, xmm3
vsubps xmm3, xmm2, xmm0
vaddps xmm0, xmm2, xmm0
vblendps xmm1, xmm0, xmm3, 2
test byte [esp + 0x20], 1
jne 0x100ab2e6
mov byte [esp + 0x20], cl
mov ecx, dword [esp + 0x5c]
vmovaps xmmword [esp + 0x90], xmm1
vmovaps xmmword [esp + 0xc0], xmm0
vmovss xmm0, dword [0x1012973c]
vmulss xmm0, xmm0, dword [ecx + 0x1d0]
vcvttss2si eax, xmm0
movzx eax, al
vmovsd xmm0, qword [ecx + 0x1d4]
vbroadcastss xmm1, dword [0x1012973c]
vmulps xmm0, xmm0, xmm1
vcvttps2dq xmm0, xmm0
vpshufb xmm0, xmm0, xmmword [0x10134d40]
vpsllvd xmm0, xmm0, xmmword [0x10129960]
vmovd ecx, xmm0
or ecx, eax
vpextrd eax, xmm0, 1
or eax, ecx
or eax, 0xb4000000
mov ecx, dword [0x1017f64c]
mov edx, dword [ecx]
mov dword [esp], eax
vmovaps xmmword [esp + 0xd0], xmm3
call dword [edx + 0x38]
sub esp, 4
mov ecx, dword [0x1017f64c]
vmovshdup xmm0, xmmword [esp + 0xd0]
vcvttss2si eax, xmm0
mov dword [esp + 0xac], eax
mov eax, dword [ecx]
mov dword [esp + 0xd0], eax
vcvttss2si eax, dword [esp + 0xc0]
mov dword [esp + 0xc0], eax
vmovaps xmm1, xmmword [esp + 0x40]
vmovshdup xmm0, xmm1
vcvttss2si eax, xmm0
vcvttss2si edx, xmm1
mov edi, dword [esp + 0xac]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0xc0]
mov dword [esp + 8], edi
mov edi, dword [ebp + 8]
mov dword [esp + 4], eax
mov dword [esp], edx
mov eax, dword [esp + 0xd0]
call dword [eax + 0x4c]
sub esp, 0x10
vmovaps xmm1, xmmword [esp + 0x90]
movzx ecx, byte [esp + 0x20]
jmp 0x100ab2e6
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
fstp qword [esp + 0x110]
vmovsd xmm0, qword [esp + 0x110]
vmovsd qword [esp + 0x70], xmm0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x48]
mov ecx, dword [eax + 8]
mov dword [esp + 0x140], ecx
vmovsd xmm0, qword [eax]
vmovsd qword [esp + 0x138], xmm0
cmp edi, 0x11
jb 0x100ab6eb
mov eax, esi
lea esi, [esp + 0x164]
cmp eax, 3
mov ecx, 2
cmovae ecx, eax
mov dword [esp + 0x40], ecx
mov ebx, 1
mov edi, 0x10
vbroadcastss xmm0, dword [0x1012973c]
vmovaps xmmword [esp + 0x30], xmm0
jmp 0x100ab599
mov eax, dword [esp + 0x20]
vmovsd xmm0, qword [eax]
vmovsd qword [esp + 0x138], xmm0
mov eax, dword [eax + 8]
mov dword [esp + 0x140], eax
inc ebx
add edi, 0x10
cmp dword [esp + 0x40], ebx
je 0x100ab6eb
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x48]
mov ecx, dword [ecx + 0x4c]
sub ecx, eax
sar ecx, 4
cmp ecx, ebx
jbe 0x100ac37d
lea ecx, [eax + edi]
mov dword [esp + 0x20], ecx
vxorps xmm0, xmm0, xmm0
vmovaps xmmword [esp + 0x150], xmm0
mov dword [esp + 0x160], 0
mov dword [esp + 0x184], 0xffffffff
vxorps xmm1, xmm1, xmm1
vmovups ymmword [esi + 0x30], ymm1
vmovups ymmword [esi + 0x24], ymm1
vmovups xmmword [esi + 0x64], xmm0
mov dword [esi + 0x78], 0
mov dword [esi + 0x74], 0
mov ecx, dword [esp + 0x140]
mov dword [esi + 8], ecx
vmovsd xmm0, qword [esp + 0x138]
vmovsd qword [esi], xmm0
mov ecx, dword [eax + edi + 8]
mov dword [esi + 0x14], ecx
vmovsd xmm0, qword [eax + edi]
vmovsd qword [esi + 0xc], xmm0
mov ecx, dword [0x1017f658]
mov eax, dword [ecx]
mov dword [esp], str.sprites_white.vmt
vzeroupper
call dword [eax + 8]
sub esp, 4
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], str.sprites_white.vmt
vmovaps xmm0, xmmword [0x10134d50]
vmovups xmmword [esp + 0x18c], xmm0
vmovsd xmm0, qword [0x10134d60]
vmovsd qword [esp + 0x1a4], xmm0
mov dword [esp + 0x1c4], 4
mov byte [esp + 0x1c0], 1
mov eax, dword [esp + 0x5c]
vmovsd xmm0, qword [eax + 0x1d0]
vmulps xmm0, xmm0, xmmword [esp + 0x30]
vmovlps qword [esp + 0x1b4], xmm0
vmovss xmm0, dword [0x1012973c]
vmulss xmm0, xmm0, dword [eax + 0x1d8]
vmovss dword [esp + 0x1bc], xmm0
mov ecx, dword [0x1017f65c]
mov eax, dword [ecx]
lea edx, [esp + 0x150]
mov dword [esp], edx
call dword [eax + 0x30]
sub esp, 4
test eax, eax
je 0x100ab570
mov ecx, dword [0x1017f65c]
mov edx, dword [ecx]
mov dword [esp], eax
call dword [edx + 0x10]
sub esp, 4
jmp 0x100ab570
vmovsd xmm0, qword [esp + 0x70]
vcvtsd2ss xmm0, xmm0, xmm0
vmovss dword [esp + 0x90], xmm0
mov ecx, dword [0x1017f614]
mov eax, dword [ecx]
call dword [eax + 0x94]
mov ecx, dword [esp + 0x60]
vmovss xmm2, dword [ecx - 0x10]
vmovss xmm3, dword [ecx - 0xc]
vmovss xmm0, dword [ecx - 8]
vmulss xmm1, xmm3, dword [eax + 0x34]
vfmadd231ss xmm1, xmm2, dword [eax + 0x30]
vfmadd231ss xmm1, xmm0, dword [eax + 0x38]
vaddss xmm1, xmm1, dword [eax + 0x3c]
vmovss xmm4, dword [0x10134d2c]
vucomiss xmm4, xmm1
jbe 0x100ab762
vmovss xmm4, dword [esp + 0x90]
vucomiss xmm4, dword [0x101298b0]
mov edi, dword [ebp + 8]
jbe 0x100ab857
jmp 0x100ac30b
vmovups xmm4, xmmword [eax + 8]
vmovups xmm5, xmmword [eax + 4]
vinsertps xmm5, xmm5, dword [eax + 0x14], 0x10
vmovups xmm6, xmmword [eax]
vbroadcastss xmm3, xmm3
vinsertps xmm6, xmm6, dword [eax + 0x10], 0x10
vmulps xmm3, xmm5, xmm3
vbroadcastss xmm2, xmm2
vinsertps xmm4, xmm4, dword [eax + 0x18], 0x10
vfmadd213ps xmm2, xmm6, xmm3
vbroadcastss xmm0, xmm0
vfmadd213ps xmm0, xmm4, xmm2
vmovups xmm2, xmmword [eax + 0xc]
vinsertps xmm2, xmm2, dword [eax + 0x1c], 0x10
vaddps xmm0, xmm2, xmm0
vbroadcastss xmm1, xmm1
vdivps xmm0, xmm0, xmm1
mov eax, dword [esp + 0x80]
vmovsd xmm3, qword [eax + 8]
vbroadcastss xmm1, dword [0x10129738]
vmulps xmm2, xmm3, xmm1
vmulps xmm0, xmm0, xmm3
vmulps xmm1, xmm0, xmm1
vsubps xmm0, xmm2, xmm1
vaddps xmm4, xmm2, xmm1
vblendps xmm1, xmm4, xmm0, 2
vmovaps xmmword [esp + 0x30], xmm1
vmovlps qword [esp + 0x130], xmm1
vbroadcastss xmm1, dword [0x10134d70]
vdivps xmm1, xmm3, xmm1
vbroadcastss xmm2, dword [0x10129734]
vxorps xmm5, xmm1, xmm2
vucomiss xmm5, xmm4
mov edi, dword [ebp + 8]
vmovss xmm4, dword [esp + 0x90]
ja 0x100ab857
vaddps xmm3, xmm1, xmm3
vcmpltps xmm3, xmm3, xmmword [esp + 0x30]
vpmovsxdq xmm3, xmm3
vmovmskpd eax, xmm3
test al, 1
jne 0x100ab857
vmovshdup xmm0, xmm0
vmovshdup xmm1, xmm1
vxorps xmm1, xmm1, xmm2
vucomiss xmm1, xmm0
ja 0x100ab857
shr al, 1
je 0x100abc22
mov esi, dword [0x1017f648]
vmovss xmm0, dword [esi + 0xc8]
vmulss xmm0, xmm0, dword [0x10131fc4]
vcvtss2sd xmm2, xmm0, xmm0
vucomiss xmm0, dword [0x101320e4]
jae 0x100ac327
vmovss xmm1, dword [0x10129a0c]
vucomiss xmm1, xmm0
jae 0x100ac327
vmovsd qword [esp], xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp dword [esp + 0xbc]
vmovss xmm0, dword [esp + 0xbc]
vmovaps xmmword [esp + 0x20], xmm0
vmovss xmm0, dword [0x10131fc4]
vmulss xmm0, xmm0, dword [esi + 0xcc]
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esp + 0x40], xmm0
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp qword [esp + 0x108]
vmovsd xmm0, qword [esp + 0x40]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp qword [esp + 0x100]
vmovsd xmm0, qword [esp + 0x100]
vmovhpd xmm0, xmm0, qword [esp + 0x108]
vcvtpd2ps xmm2, xmm0
vmovss xmm0, dword [0x10131fc4]
vmulss xmm0, xmm0, dword [esi + 0xd0]
vucomiss xmm0, dword [0x101320e4]
jae 0x100ac344
vmovss xmm1, dword [0x10129a0c]
vucomiss xmm1, xmm0
jae 0x100ac344
vbroadcastss xmm0, dword [esp + 0x20]
vmulps xmm1, xmm0, xmm2
vmulps xmm0, xmm1, xmm1
vmovshdup xmm0, xmm0
vmovaps xmm4, xmm1
vfmadd231ss xmm0, xmm1, xmm1
vxorps xmm1, xmm1, xmm1
vxorps xmm5, xmm5, xmm5
vaddss xmm0, xmm0, xmm1
vcvtss2sd xmm0, xmm0, xmm0
vxorps xmm1, xmm1, xmm1
vucomisd xmm0, xmm1
jb 0x100ab975
vsqrtsd xmm0, xmm0, xmm0
jmp 0x100ab99f
vmovsd qword [esp], xmm0
vmovaps xmmword [esp + 0x20], xmm4
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
vxorps xmm5, xmm5, xmm5
vmovaps xmm4, xmmword [esp + 0x20]
fstp qword [esp + 0xf8]
vmovsd xmm0, qword [esp + 0xf8]
mov ecx, dword [esp + 0x60]
vcvtsd2ss xmm0, xmm0, xmm0
vucomiss xmm0, xmm5
jne 0x100ab9af
jnp 0x100ab9c0
vbroadcastss xmm1, xmm0
vdivps xmm4, xmm4, xmm1
vxorps xmm1, xmm1, xmm1
vdivss xmm5, xmm1, xmm0
mov eax, dword [esp + 0x80]
vmovss xmm0, dword [eax + 0xc]
vdivss xmm3, xmm0, dword [0x10134d74]
mov eax, dword [0x1017f648]
vmovsd xmm0, qword [ecx - 0xc]
vmovsd xmm1, qword [eax + 0xc0]
vsubps xmm1, xmm0, xmm1
vmovss xmm0, dword [ecx - 0x10]
vsubss xmm2, xmm0, dword [eax + 0xbc]
vmovshdup xmm0, xmm1
vmovaps xmm7, xmm1
vmulss xmm1, xmm1, xmm1
vfmadd231ss xmm1, xmm2, xmm2
vfmadd231ss xmm1, xmm0, xmm0
vcvtss2sd xmm0, xmm1, xmm1
vxorps xmm1, xmm1, xmm1
vucomisd xmm0, xmm1
jb 0x100aba21
vsqrtsd xmm0, xmm0, xmm0
jmp 0x100aba77
vmovsd qword [esp], xmm0
vmovaps xmmword [esp + 0x20], xmm4
vmovss dword [esp + 0x30], xmm5
vmovaps xmmword [esp + 0x60], xmm7
vmovss dword [esp + 0x40], xmm2
vmovss dword [esp + 0x70], xmm3
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
vmovss xmm3, dword [esp + 0x70]
vmovss xmm2, dword [esp + 0x40]
vmovaps xmm7, xmmword [esp + 0x60]
vmovss xmm5, dword [esp + 0x30]
vmovaps xmm4, xmmword [esp + 0x20]
fstp qword [esp + 0xf0]
vmovsd xmm0, qword [esp + 0xf0]
vmulss xmm1, xmm3, dword [0x10134d78]
vmovaps xmmword [esp + 0x20], xmm1
vcvtsd2ss xmm1, xmm0, xmm0
vxorps xmm0, xmm0, xmm0
vucomiss xmm1, xmm0
jne 0x100aba95
jnp 0x100abaaa
vdivss xmm2, xmm2, xmm1
vmovss dword [esp + 0x40], xmm2
vbroadcastss xmm1, xmm1
vdivps xmm7, xmm7, xmm1
jmp 0x100abab0
vmovss dword [esp + 0x40], xmm2
vmovshdup xmm1, xmm4
vbroadcastss xmm6, dword [0x10129734]
vmulss xmm2, xmm4, xmm6
vmovaps xmmword [esp + 0x30], xmm6
vmovaps xmmword [esp + 0x60], xmm1
vfmadd231ss xmm2, xmm1, xmm0
vxorps xmm0, xmm0, xmm0
vfmsub213ss xmm0, xmm5, xmm1
vmulss xmm3, xmm5, xmm6
vaddss xmm3, xmm4, xmm3
vmulss xmm3, xmm3, xmm7
vmovss xmm1, dword [esp + 0x40]
vfmadd231ss xmm3, xmm1, xmm0
vmulss xmm0, xmm7, dword [esp + 0x60]
vfmadd231ss xmm0, xmm4, xmm1
vmovshdup xmm1, xmm7
vfmadd231ss xmm3, xmm1, xmm2
vfmadd231ss xmm0, xmm5, xmm1
vxorps xmm1, xmm3, xmm6
vmovaps xmm2, xmmword [esp + 0x20]
vmulss xmm1, xmm2, xmm1
vxorps xmm0, xmm0, xmm6
vmulss xmm0, xmm2, xmm0
vcvtss2sd xmm0, xmm0, xmm0
vcvtss2sd xmm1, xmm1, xmm1
vmovsd qword [esp + 8], xmm0
vmovsd qword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_atan2
fstp dword [esp + 0xb8]
vmovss xmm0, dword [esp + 0xb8]
vaddss xmm0, xmm0, dword [0x101307c4]
vmulss xmm0, xmm0, dword [0x10134d7c]
vmulss xmm0, xmm0, dword [0x10131fc4]
vcvtss2sd xmm1, xmm0, xmm0
vmovsd qword [esp + 0x60], xmm1
vmovaps xmm0, xmmword [esp + 0x30]
vxorps xmm0, xmm0, xmmword [esp + 0x20]
vmovaps xmmword [esp + 0x40], xmm0
mov esi, dword [esp + 0x80]
vmovups xmm0, xmmword [esi + 8]
vmovaps xmmword [esp + 0x30], xmm0
vmovsd qword [esp], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp qword [esp + 0xe8]
vmovaps xmm0, xmmword [esp + 0x30]
vinsertps xmm0, xmm0, dword [esi + 0xc], 0x10
vbroadcastss xmm1, dword [0x10129738]
vmulps xmm0, xmm0, xmm1
vmovaps xmmword [esp + 0x30], xmm0
vmovsd xmm0, qword [esp + 0x60]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp qword [esp + 0xe0]
vmovsd xmm0, qword [esp + 0xe8]
vmovhpd xmm0, xmm0, qword [esp + 0xe0]
vcvtpd2ps xmm0, xmm0
vmovaps xmm1, xmmword [esp + 0x20]
vinsertps xmm1, xmm1, dword [esp + 0x40], 0x10
vfmadd213ps xmm1, xmm0, xmmword [esp + 0x30]
vcvttps2dq xmm0, xmm1
vcvtdq2ps xmm0, xmm0
vmovaps xmmword [esp + 0x30], xmm0
vmovlps qword [esp + 0x130], xmm0
vmovss xmm4, dword [esp + 0x90]
vmovss xmm0, dword [0x10134d80]
vminss xmm1, xmm0, xmm4
vdivss xmm0, xmm1, xmm0
vmovss xmm1, dword [0x10129710]
vsubss xmm0, xmm1, xmm0
vmulss xmm0, xmm0, dword [0x1012973c]
vcvttss2si eax, xmm0
movzx eax, al
or eax, 0xb4000000
lea esi, [esp + 0x130]
mov dword [esp], esi
mov dword [esp + 0xc], eax
mov dword [esp + 8], pe_nt_image_headers32
mov dword [esp + 4], 0x41b80000
call fcn.100ac510
sub esp, 0x10
mov dword [esp], esi
mov dword [esp + 0xc], 0xb4000000
mov dword [esp + 8], pe_nt_image_headers32
mov dword [esp + 4], 0x41b80000
call fcn.100ac730
sub esp, 0x10
vmovss xmm0, dword [edi + 0x2c]
mov eax, dword [0x1017f610]
vsubss xmm0, xmm0, dword [eax + 0x10]
vmovss dword [esp + 0x20], xmm0
vxorps xmm7, xmm7, xmm7
vcvtsi2ss xmm0, xmm7, dword [edi + 0x34]
vmulss xmm0, xmm0, dword [eax + 0x20]
vmovss dword [esp + 0x40], xmm0
vxorps xmm0, xmm0, xmm0
vmovlps qword [esp + 0x124], xmm0
mov dword [esp + 0x12c], 0
vmovlps qword [esp + 0x118], xmm0
mov dword [esp + 0x120], 0
mov dword [esp], 0x780
call fcn.100d7f9d
mov edi, eax
mov esi, dword [esp + 0x124]
mov eax, dword [esp + 0x128]
sub eax, esi
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], edi
call sub.VCRUNTIME140.dll_memmove
test esi, esi
je 0x100abd54
mov eax, dword [esp + 0x12c]
sub eax, esi
cmp eax, 0x1000
jb 0x100abd48
mov ecx, dword [esi - 4]
add esi, 0xfffffffc
sub esi, ecx
cmp esi, 0x20
jae 0x100ac387
add eax, 0x23
mov esi, ecx
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.100d7fd2
mov dword [esp + 0x124], edi
mov dword [esp + 0x128], edi
add edi, 0x780
mov dword [esp + 0x12c], edi
mov ecx, dword [esp + 0x118]
mov eax, dword [esp + 0x120]
sub eax, ecx
cmp eax, 0x77f
ja 0x100abe20
mov dword [esp + 0x80], ecx
mov ebx, dword [esp + 0x11c]
mov dword [esp], 0x780
call fcn.100d7f9d
mov edi, eax
mov esi, dword [esp + 0x118]
mov eax, dword [esp + 0x11c]
sub eax, esi
mov dword [esp + 8], eax
mov dword [esp + 4], esi
mov dword [esp], edi
call sub.VCRUNTIME140.dll_memmove
test esi, esi
je 0x100abdfc
mov eax, dword [esp + 0x120]
sub eax, esi
cmp eax, 0x1000
jb 0x100abdf0
mov ecx, dword [esi - 4]
add esi, 0xfffffffc
sub esi, ecx
cmp esi, 0x20
jae 0x100ac387
add eax, 0x23
mov esi, ecx
mov dword [esp + 4], eax
mov dword [esp], esi
call fcn.100d7fd2
sub ebx, dword [esp + 0x80]
mov dword [esp + 0x118], edi
add ebx, edi
mov dword [esp + 0x11c], ebx
add edi, 0x780
mov dword [esp + 0x120], edi
vmovss xmm0, dword [esp + 0x20]
vdivss xmm0, xmm0, dword [esp + 0x40]
vxorps xmm1, xmm1, xmm1
vmaxss xmm1, xmm1, xmm0
vmulss xmm1, xmm1, dword [0x101307e8]
vmovss xmm2, dword [0x10129710]
vcmpltss xmm0, xmm2, xmm0
vbroadcastss xmm2, dword [0x101307e8]
vblendvps xmm0, xmm1, xmm2, xmm0
vxorps xmm1, xmm1, xmm1
vmovaps xmmword [esp + 0x60], xmm0
vucomiss xmm0, xmm1
vmovshdup xmm0, xmmword [esp + 0x30]
vmovaps xmmword [esp + 0x80], xmm0
jbe 0x100abfb1
vmovaps xmm0, xmmword [esp + 0x60]
vdivss xmm0, xmm0, dword [0x10134d84]
vmovss dword [esp + 0x70], xmm0
lea esi, [esp + 0x150]
lea edi, [esp + 0x124]
lea ebx, [esp + 0x118]
jmp 0x100abedd
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, ebx
call fcn.100081c0
sub esp, 8
vmovss xmm1, dword [esp + 0x20]
vaddss xmm1, xmm1, dword [esp + 0x70]
vmovaps xmm0, xmmword [esp + 0x60]
vucomiss xmm0, xmm1
jbe 0x100abfb1
vmovss dword [esp + 0x20], xmm1
vcvtss2sd xmm0, xmm1, xmm1
vmovsd qword [esp + 0x40], xmm0
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp dword [esp + 0xb4]
vmovss xmm0, dword [esp + 0xb4]
vmovss xmm1, dword [0x10134d88]
vfmadd213ss xmm0, xmm1, dword [esp + 0x30]
vcvttss2si ecx, xmm0
mov dword [esp + 0x150], ecx
mov eax, dword [esp + 0x128]
cmp eax, dword [esp + 0x12c]
je 0x100abf40
mov dword [eax], ecx
add dword [esp + 0x128], 4
jmp 0x100abf51
mov dword [esp + 4], esi
mov dword [esp], eax
mov ecx, edi
call fcn.100081c0
sub esp, 8
vmovsd xmm0, qword [esp + 0x40]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp dword [esp + 0xb0]
vmovss xmm0, dword [esp + 0xb0]
vmovss xmm1, dword [0x10134d88]
vfmadd213ss xmm0, xmm1, dword [esp + 0x80]
vcvttss2si ecx, xmm0
mov dword [esp + 0x150], ecx
mov eax, dword [esp + 0x11c]
cmp eax, dword [esp + 0x120]
je 0x100abeb0
mov dword [eax], ecx
add dword [esp + 0x11c], 4
jmp 0x100abec1
mov esi, dword [esp + 0x128]
sub esi, dword [esp + 0x124]
cmp esi, 5
jb 0x100ac09f
sar esi, 2
cmp esi, 3
mov edi, 2
cmovae edi, esi
dec edi
lea ebx, [esi*4 - 4]
dec esi
jmp 0x100ac007
mov ecx, dword [ecx]
mov dword [eax], ecx
add dword [esp + 0x11c], 4
add ebx, 0xfffffffc
dec esi
dec edi
je 0x100ac09f
mov ecx, dword [esp + 0x124]
mov eax, dword [esp + 0x128]
mov edx, eax
sub edx, ecx
sar edx, 2
cmp edx, esi
jbe 0x100ac382
cmp eax, dword [esp + 0x12c]
je 0x100ac040
mov ecx, dword [ecx + esi*4]
mov dword [eax], ecx
add dword [esp + 0x128], 4
jmp 0x100ac058
add ecx, ebx
mov dword [esp + 4], ecx
mov dword [esp], eax
lea ecx, [esp + 0x124]
call fcn.100081c0
sub esp, 8
mov ecx, dword [esp + 0x118]
mov eax, dword [esp + 0x11c]
mov edx, eax
sub edx, ecx
sar edx, 2
cmp edx, esi
jbe 0x100ac382
add ecx, ebx
cmp eax, dword [esp + 0x120]
jne 0x100abff0
mov dword [esp + 4], ecx
mov dword [esp], eax
lea ecx, [esp + 0x118]
call fcn.100081c0
sub esp, 8
jmp 0x100abffc
mov ecx, dword [0x1017f64c]
mov eax, dword [ecx]
mov dword [esp], 0xb4ffffff
call dword [eax + 0x38]
sub esp, 4
mov ecx, dword [0x1017f64c]
mov eax, dword [esp + 0x124]
mov edx, dword [esp + 0x128]
sub edx, eax
sar edx, 2
mov esi, dword [esp + 0x118]
mov edi, dword [ecx]
mov dword [esp + 8], edx
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edi + 0x50]
sub esp, 0xc
vmovaps xmm0, xmmword [esp + 0x80]
vaddss xmm1, xmm0, dword [0x10134d8c]
vmovss dword [esp + 0x20], xmm1
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 0x22c]
vmovaps xmm0, xmmword [esp + 0x30]
vaddss xmm0, xmm0, dword [0x10129710]
mov dword [esp + 8], eax
vmovss dword [esp + 4], xmm1
vmovss dword [esp], xmm0
mov dword [esp + 0x18], 3
mov dword [esp + 0x14], 0xb431c0c5
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 0x101710a2
call fcn.100ac930
sub esp, 0x1c
vmovss xmm0, dword [esp + 0x20]
vaddss xmm0, xmm0, dword [0x10134d90]
vmovss dword [esp + 0x20], xmm0
vmovss dword [esp + 0x134], xmm0
vmovss xmm0, dword [esp + 0x90]
vmulss xmm0, xmm0, dword [0x10134d94]
vcvttss2si eax, xmm0
mov dword [esp + 0x14c], eax
mov dword [esp + 0x148], 0x10000000
vxorps xmm0, xmm0, xmm0
vmovaps xmmword [esp + 0x150], xmm0
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0xf
lea eax, [esp + 0x148]
mov dword [esp + 0x14], eax
lea esi, [esp + 0x150]
mov dword [esp + 4], esi
lea eax, [esp + 0x144]
mov dword [esp], eax
mov dword [esp + 0x10], 1
mov dword [esp + 0xc], 5
mov dword [esp + 8], str._ft
call fcn.1009acf0
cmp dword [esp + 0x164], 0x10
jb 0x100ac202
mov esi, dword [esp + 0x150]
mov dword [esp], esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
mov ecx, dword [esp + 0x5c]
mov ecx, dword [ecx + 0x224]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], esi
mov dword [esp + 8], ecx
vmovss xmm0, dword [esp + 0x20]
vmovss dword [esp + 4], xmm0
vmovaps xmm0, xmmword [esp + 0x30]
vmovss dword [esp], xmm0
mov dword [esp + 0x18], 1
mov dword [esp + 0x14], 0xb4ffffff
call fcn.100ac930
sub esp, 0x1c
mov eax, dword [esp + 0x164]
cmp eax, 0x10
jb 0x100ac291
mov ecx, dword [esp + 0x150]
lea edx, [eax + 1]
cmp edx, 0x1000
jb 0x100ac285
mov esi, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, esi
cmp ecx, 0x20
jae 0x100ac387
add eax, 0x24
mov edx, eax
mov ecx, esi
mov dword [esp + 4], edx
mov dword [esp], ecx
call fcn.100d7fd2
mov ecx, dword [esp + 0x118]
test ecx, ecx
je 0x100ac2ce
mov eax, dword [esp + 0x120]
sub eax, ecx
cmp eax, 0x1000
jb 0x100ac2c2
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x100ac387
add eax, 0x23
mov ecx, edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.100d7fd2
mov ecx, dword [esp + 0x124]
test ecx, ecx
je 0x100ac30b
mov eax, dword [esp + 0x12c]
sub eax, ecx
cmp eax, 0x1000
jb 0x100ac2ff
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x100ac387
add eax, 0x23
mov ecx, edx
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.100d7fd2
mov bl, 1
mov ecx, dword [esp + 0x1e8]
xor ecx, ebp
call fcn.100d7fe0
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
vmovsd qword [esp], xmm2
vmovsd qword [esp + 0x20], xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp st(0)
vmovsd xmm2, qword [esp + 0x20]
jmp 0x100ab891
vcvtss2sd xmm0, xmm0, xmm0
vmovsd qword [esp + 0x30], xmm0
vmovsd qword [esp], xmm0
vmovapd xmmword [esp + 0x40], xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp st(0)
vmovsd xmm0, qword [esp + 0x30]
vmovsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp st(0)
vmovapd xmm2, xmmword [esp + 0x40]
jmp 0x100ab939
call fcn.10009a30
call fcn.10009a30
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov dword [esp + 0xc0], edx
mov dword [esp + 0x90], esi
or eax, 1
mov dword [0x10184dfc], eax
mov eax, dword [0x1017f5c4]
mov dword [esp + 0x70], eax
mov dword [esp], str.CBaseEntity__m_vecOrigin
lea ecx, [esp + 0x150]
mov dword [esp + 0x40], ecx
call fcn.10005ce0
sub esp, 4
mov eax, dword [esp + 0x160]
mov dword [esp + 0x20], eax
cmp dword [esp + 0x164], 0x10
jb 0x100ac3e6
mov eax, dword [esp + 0x150]
mov dword [esp + 0x40], eax
cmp dword [esp + 0x20], 0
je 0x100ac409
mov eax, dword [esp + 0x20]
lea ecx, [eax - 1]
and eax, 3
mov dword [esp + 0x30], eax
cmp ecx, 3
jae 0x100ac410
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100ac45c
mov ecx, 0x811c9dc5
jmp 0x100ac47c
mov ebx, dword [esp + 0x20]
and ebx, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esp + 0x40]
movzx esi, byte [eax + edx]
xor esi, ecx
imul ecx, esi, 0x1000193
movzx esi, byte [eax + edx + 1]
xor esi, ecx
imul ecx, esi, 0x1000193
movzx esi, byte [eax + edx + 2]
xor esi, ecx
imul ecx, esi, 0x1000193
movzx esi, byte [eax + edx + 3]
xor esi, ecx
imul ecx, esi, 0x1000193
add edx, 4
cmp ebx, edx
jne 0x100ac422
cmp dword [esp + 0x30], 0
je 0x100ac47c
add edx, dword [esp + 0x40]
xor ebx, ebx
movzx esi, byte [edx + ebx]
xor esi, ecx
imul ecx, esi, 0x1000193
inc ebx
cmp dword [esp + 0x30], ebx
jne 0x100ac469
mov edx, dword [esp + 0x70]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100ac4fc
add ecx, ecx
mov esi, dword [eax + ecx*4]
mov eax, dword [esp + 0x20]
cmp eax, dword [ebx + 0x18]
jne 0x100ac4c7
cmp dword [ebx + 0x1c], 0x10
jb 0x100ac4a8
mov eax, dword [ebx + 8]
jmp 0x100ac4ab
lea eax, [ebx + 8]
mov ecx, dword [esp + 0x20]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x100ac4d0
cmp ebx, esi
je 0x100ac4fc
mov ebx, dword [ebx + 4]
jmp 0x100ac494
add ebx, 0x20
lea ecx, [esp + 0x150]
call fcn.100026e0
mov dword [0x10184df8], ebx
mov ecx, dword [esp + 0x60]
mov esi, dword [esp + 0x90]
mov edx, dword [esp + 0xc0]
jmp 0x100ab175
mov dword [esp], 0x1016ba76
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
int3