Function at 0x1007e000
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xe4
mov eax, dword [0x102ba1fc]
push ebx
mov dword [esp + 8], eax
mov eax, dword [0x102b1a90]
push esi
push edi
mov edi, edx
mov esi, ecx
cmp byte [eax], 0
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], esi
je 0x1007e7e0
mov eax, dword [0x1029a418]
test eax, eax
je 0x1007e7e0
mov ebx, dword [eax]
test ebx, ebx
je 0x1007e7e0
cmp byte [ebp + 8], 0
jne 0x1007e0df
mov eax, dword fs:[0x2c]
mov ecx, dword [0x102999e4]
mov ecx, dword [eax + ecx*4]
mov eax, dword [0x102b3274]
cmp eax, dword [ecx + 4]
jle 0x1007e0d0
push 0x102b3274
call fcn.101e23b9
add esp, 4
cmp dword [0x102b3274], 0xffffffff
jne 0x1007e0d0
mov esi, dword [0x102b25b0]
mov edi, dword [0x102b25b4]
cmp esi, edi
je 0x1007e0b4
cmp dword [esi], 0xeecb237f
jne 0x1007e0ad
mov edx, 0xd690b299
mov ecx, esi
call fcn.10170b40
test eax, eax
jne 0x1007e0b6
add esi, 0x24
cmp esi, edi
jne 0x1007e095
xor eax, eax
push 0x102b3274
mov dword [0x102b3270], eax
call fcn.101e236f
mov edi, dword [esp + 0x24]
add esp, 4
mov esi, dword [esp + 0x24]
mov eax, dword [0x102b3270]
cmp byte [ebx + eax], 0
je 0x1007e7e0
lea eax, [esp + 0x34]
mov dword [esp + 0x40], 0
xorps xmm1, xmm1
mov edx, edi
push eax
mov ecx, esi
movss dword [esp + 0x34], xmm1
call fcn.100864a0
add esp, 4
test al, al
je 0x1007e572
mov eax, dword [0x102b1a90]
push ecx
push 0xc8191919
push 0xff0000ff
sub esp, 0x10
lea ecx, [esp + 0xa4]
push 0x64191919
push 0xffffffffffffffff
push dword [eax + 8]
push dword [eax + 4]
push dword [esp + 0x3c]
call fcn.1007b3d0
mov edx, dword [esp + 0xa8]
push ecx
mov ecx, dword [esp + 0xa8]
call fcn.10082780
mov eax, dword [esp + 0xa8]
add esp, 4
movss xmm1, dword [esp + 0x3c]
movss xmm2, dword [0x1026bbd4]
comiss xmm2, xmm1
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xc4]
mov dword [esp + 0xc8], eax
movss xmm3, dword [0x1026ba54]
movss xmm4, dword [esp + 0x34]
movss dword [esp + 0x24], xmm1
jbe 0x1007e1ab
movaps xmm0, xmm2
subss xmm0, xmm1
movaps xmm1, xmm2
movss dword [esp + 0x24], xmm1
mulss xmm0, xmm3
subss xmm4, xmm0
movss xmm0, dword [esp + 0x40]
comiss xmm2, xmm0
jbe 0x1007e1d0
movaps xmm0, xmm2
subss xmm0, xmm1
mulss xmm0, xmm3
movss xmm3, dword [esp + 0x38]
subss xmm3, xmm0
movaps xmm0, xmm2
jmp 0x1007e1d6
movss xmm3, dword [esp + 0x38]
mov eax, dword [0x102b1a90]
movss dword [esp + 0x8c], xmm4
movss dword [esp + 0x90], xmm3
movss dword [esp + 0x94], xmm1
movss dword [esp + 0x98], xmm0
cmp byte [eax + 0xc], 0
je 0x1007e41f
xor esi, esi
mov edi, 0xf
cmp byte [ebp + 8], 0
mov dword [esp + 0x4c], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], edi
je 0x1007e390
call fcn.101792c0
mov ebx, eax
mov eax, dword [0x102a5e38]
movzx ecx, al
xor ecx, 0x811c9dc5
mov dword [esp + 0x10], ebx
imul edx, ecx, 0x1000193
movzx ecx, ah
movzx eax, byte [0x102a5e3b]
xor edx, ecx
movzx ecx, byte [0x102a5e3a]
imul edx, edx, 0x1000193
xor edx, ecx
imul ecx, edx, 0x1000193
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, ebx
push eax
push 0x102a5e38
lea eax, [esp + 0x30]
push eax
call fcn.10006b20
mov ebx, dword [eax + 4]
test ebx, ebx
jne 0x1007e28e
mov ebx, dword [esp + 0x10]
mov ebx, dword [ebx + 4]
call fcn.101792c0
cmp ebx, dword [eax + 4]
jne 0x1007e38b
push str.SFUI_WPNHUD_C4
call fcn.1007b340
mov edx, eax
mov dword [esp + 0x34], esi
mov ecx, edx
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], 7
lea esi, [ecx + 2]
nop dword [eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x1007e2c0
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [esp + 0x3c]
call fcn.10024b40
cmp dword [esp + 0x48], 8
lea ecx, [esp + 0x34]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x44]
setae bl
jb 0x1007e2f5
lea eax, [edx + eax*2]
jmp 0x1007e300
lea eax, [ecx + eax*2]
lea ecx, [esp + 0x34]
test bl, bl
je 0x1007e302
mov ecx, edx
push ecx
push eax
push ecx
lea ecx, [esp + 0x7c]
call fcn.100817a0
push eax
lea ecx, [esp + 0x50]
call fcn.1000d280
mov edx, dword [esp + 0x84]
cmp edx, 0x10
jb 0x1007e351
mov ecx, dword [esp + 0x70]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x1007e347
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1007e7e7
push edx
push ecx
call fcn.101e1f2f
add esp, 8
call fcn.101792c0
push 0x102a5e38
mov ecx, eax
call fcn.1007fc20
lea ecx, [esp + 0x4c]
cmp eax, ecx
je 0x1007e380
cmp dword [esp + 0x60], 0x10
push dword [esp + 0x5c]
cmovae ecx, dword [esp + 0x50]
push ecx
mov ecx, eax
call fcn.1000d310
lea ecx, [esp + 0x34]
call fcn.10026090
jmp 0x1007e3b7
lea eax, [ebx + 0xc]
jmp 0x1007e399
mov ecx, dword [esp + 0x20]
call fcn.101793a0
lea ecx, [esp + 0x4c]
cmp ecx, eax
je 0x1007e3ed
cmp dword [eax + 0x14], 0x10
mov ecx, dword [eax + 0x10]
jb 0x1007e3ac
mov eax, dword [eax]
push ecx
push eax
lea ecx, [esp + 0x54]
call fcn.1000d310
cmp dword [esp + 0x5c], 0
je 0x1007e3e5
mov ecx, dword [0x102b1a90]
mov eax, dword [ecx + 0x14]
mov dword [esp + 0x10], eax
lea eax, [ecx + 0xd]
push eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x54]
push eax
lea ecx, [esp + 0xb0]
call fcn.1007bd10
mov esi, dword [esp + 0x4c]
mov edi, dword [esp + 0x60]
cmp edi, 0x10
jb 0x1007e41b
inc edi
mov eax, esi
cmp edi, 0x1000
jb 0x1007e411
mov esi, dword [esi - 4]
add edi, 0x23
sub eax, esi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1007e7ec
push edi
push esi
call fcn.101e1f2f
add esp, 8
mov edi, dword [esp + 0x20]
mov eax, dword [0x102b1a90]
cmp byte [eax + 0x18], 0
je 0x1007e51e
mov ecx, dword [0x102a5e38]
call fcn.1008e550
mov edx, eax
test edx, edx
je 0x1007e51e
movd xmm3, dword [edx]
movss xmm2, dword [0x1026ba5c]
movss xmm1, dword [esp + 0x24]
cvtdq2ps xmm3, xmm3
movaps xmm0, xmm3
mulss xmm0, xmm2
divss xmm1, xmm0
comiss xmm1, xmm2
ja 0x1007e478
movss xmm2, dword [0x1026ba28]
comiss xmm2, xmm1
ja 0x1007e478
movaps xmm2, xmm1
movd xmm0, dword [edx + 4]
add edx, 8
mov ecx, dword [0x102b1a90]
mov esi, dword [esp + 0xe4]
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x28], 0xffffffff
mov eax, dword [ecx + 0x19]
mov ebx, dword [ecx + 0x20]
mov dword [esp + 0x2c], eax
mulss xmm3, xmm2
mov dword [esp + 0x10], ebx
mulss xmm0, xmm2
movss dword [esp + 0x20], xmm3
movss dword [esp + 0x24], xmm0
cmp esi, dword [esp + 0xe8]
je 0x1007e4fc
mov edx, dword [edx]
mov byte [esp + 0x14], 1
mov ecx, dword [esp + 0x14]
mov dword [esi + 0x10], ecx
mov ecx, dword [esp + 0x28]
mov dword [esi + 0xc], ebx
mov dword [esi + 0x14], ecx
mov dword [esi + 0x18], eax
cvttss2si eax, xmm3
mov byte [esi + 0x1c], 1
cvttss2si ecx, xmm0
mov dword [esi], eax
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
add dword [esp + 0xe4], 0x20
jmp 0x1007e51e
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x2c]
push eax
push edx
push esi
lea ecx, [esp + 0xf8]
call fcn.10080d40
mov eax, dword [0x102b1a80]
lea ecx, [esp + 0x88]
push ecx
cmp eax, dword [0x102b1a84]
je 0x1007e543
mov ecx, eax
call fcn.100827f0
add dword [0x102b1a80], 0x68
jmp 0x1007e54e
push eax
mov ecx, 0x102b1a7c
call fcn.10080f00
lea ecx, [esp + 0xe0]
call fcn.10080680
lea ecx, [esp + 0xc4]
call fcn.10080680
lea ecx, [esp + 0xa4]
call fcn.100806e0
cmp byte [ebp + 8], 0
je 0x1007e7e0
mov ecx, dword [0x1029a418]
mov ecx, dword [ecx]
call fcn.1007b220
cmp byte [eax], 0
je 0x1007e7e0
mov ecx, edi
call fcn.1007af30
cmp byte [eax], 0
je 0x1007e7e0
mov ecx, edi
call fcn.1007afe0
cmp byte [eax], 0
jne 0x1007e7e0
mov eax, dword [0x102b1a90]
cmp byte [eax + 0x24], 0
je 0x1007e7e0
cmp byte [0x10297fa8], 0
je 0x1007e63a
movss xmm0, dword [esp + 0x30]
mov esi, 0x102b2dc0
cvtps2pd xmm0, xmm0
call fcn.1020a6d0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
mulss xmm1, dword [0x1026bc80]
movss dword [esi], xmm1
movss xmm1, dword [esp + 0x30]
cvtps2pd xmm0, xmm1
call fcn.1020b950
movss xmm1, dword [0x1026bbdc]
cvtsd2ss xmm0, xmm0
mulss xmm0, dword [0x1026bc80]
movss dword [esi + 4], xmm0
add esi, 8
movss xmm0, dword [esp + 0x30]
addss xmm0, dword [0x1026b9f4]
comiss xmm1, xmm0
movss dword [esp + 0x30], xmm0
ja 0x1007e5d5
mov byte [0x10297fa8], 0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x28]
push 0x3d
lea ecx, [esp + 0x14]
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [esp + 0x74], xmm0
mov dword [esp + 0x7c], eax
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
call fcn.10029260
mov esi, 0x102b2dc0
nop word [eax + eax]
movss xmm0, dword [esp + 0x70]
lea eax, [esp + 0x64]
addss xmm0, dword [esi]
push eax
lea eax, [esp + 0x38]
mov dword [esp + 0x70], 0x7f800000
push eax
mov dword [esp + 0x70], 0x7f800000
movss dword [esp + 0x3c], xmm0
movss xmm0, dword [esp + 0x7c]
addss xmm0, dword [esi + 4]
mov dword [esp + 0x6c], 0x7f800000
movss dword [esp + 0x40], xmm0
movss xmm0, dword [esp + 0x80]
movss dword [esp + 0x44], xmm0
call fcn.10085790
add esp, 8
test al, al
je 0x1007e725
movss xmm1, dword [esp + 0x64]
movss xmm0, dword [esp + 0x68]
mov eax, dword [esp + 0x14]
movss dword [esp + 0x28], xmm1
movss dword [esp + 0x2c], xmm0
cmp eax, dword [esp + 0x18]
je 0x1007e716
movss dword [eax], xmm1
movss xmm0, dword [esp + 0x2c]
movss dword [eax + 4], xmm0
add dword [esp + 0x14], 8
jmp 0x1007e725
lea ecx, [esp + 0x28]
push ecx
push eax
lea ecx, [esp + 0x18]
call fcn.10029770
add esi, 8
cmp esi, 0x102b2fa8
jne 0x1007e680
mov edx, dword [esp + 0x14]
mov edi, dword [esp + 0x10]
sub edx, edi
sar edx, 3
cmp edx, 2
jbe 0x1007e7af
mov ebx, dword [0x102b1a90]
cmp byte [ebx + 0x25], 0
movzx eax, byte [ebx + 0x27]
je 0x1007e77b
movzx esi, byte [ebx + 0x28]
mov ecx, edi
or esi, 0x5a00
shl esi, 8
or esi, eax
movzx eax, byte [ebx + 0x26]
shl esi, 8
or esi, eax
push esi
call fcn.10029040
add esp, 4
jmp 0x1007e7ab
push 1
push ecx
movzx ecx, byte [ebx + 0x28]
or ecx, 0x5a00
mov dword [esp], 0x3f800000
shl ecx, 8
or ecx, eax
movzx eax, byte [ebx + 0x26]
shl ecx, 8
or ecx, eax
push ecx
mov ecx, dword [0x102afcc8]
push edx
push edi
call fcn.1002b1a0
mov edi, dword [esp + 0x10]
test edi, edi
je 0x1007e7e0
mov ecx, dword [esp + 0x18]
mov eax, edi
sub ecx, edi
and ecx, 0xfffffff8
cmp ecx, 0x1000
jb 0x1007e7d6
mov edi, dword [edi - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1007e7f1
push ecx
push edi
call fcn.101e1f2f
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
call fcn.101e6db2
call fcn.101e6db2
call fcn.101e6db2
int3