Function at 0x100a7cb0
Capabilities:
Hash data using fnv

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x101c7100]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x60], eax
push esi
push edi
mov edi, edx
test eax, eax
je 0x100a8fc2
mov ecx, dword [0xb7cb84]
push eax
mov eax, 0x72fb30
mov dword [ebp - 0x54], ecx
call eax
add esp, 4
mov esi, eax
mov dword [ebp - 0x5c], esi
push 0xf
push str.blown_injection
push esi
call fcn.100f0750
add esp, 0xc
test eax, eax
jne 0x100a7f05
mov ecx, esi
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x100a7d20
sub ecx, edx
cmp ecx, 0xf
jne 0x100a7f05
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov ecx, dword [ebp - 0x54]
cmp ecx, dword [eax + 0x112c]
jb 0x100a7f05
movss xmm1, dword [0x101b29d8]
xorps xmm0, xmm0
comiss xmm0, dword [edi + 0x49c]
movss dword [ebp - 0x4c], xmm1
jbe 0x100a7d79
test byte [edi + 0x428], 0x20
jne 0x100a7d79
movss xmm1, dword [0x101b29d4]
movss dword [ebp - 0x4c], xmm1
xor edx, edx
mov eax, 0x1f4
div dword [0x101ef5c8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101b2b00]
lea eax, [ebp - 0x38]
push eax
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [ebp - 0x44], xmm1
call fcn.100b1040
test byte [edi + 0x428], 0x10
xorps xmm1, xmm1
movss xmm2, dword [eax + 0x1128]
movss dword [ebp - 0x30], xmm2
je 0x100a7e50
movss xmm0, dword [edi + 0x49c]
ucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x100a7e50
movss xmm0, dword [ebp - 0x4c]
comiss xmm0, xmm2
jbe 0x100a7ded
comiss xmm0, xmm1
ja 0x100a7df7
comiss xmm2, xmm0
jbe 0x100a7e21
comiss xmm1, xmm0
jbe 0x100a7e1c
addss xmm2, dword [ebp - 0x44]
comiss xmm2, xmm0
movss dword [ebp - 0x30], xmm2
jbe 0x100a7e0b
comiss xmm0, xmm1
ja 0x100a7e49
comiss xmm0, xmm2
jbe 0x100a7e8c
comiss xmm1, xmm0
jbe 0x100a7e8c
movss dword [ebp - 0x30], xmm0
jmp 0x100a7e8c
comiss xmm0, xmm1
ja 0x100a7e2b
comiss xmm0, xmm2
jbe 0x100a7e8c
comiss xmm1, xmm0
jbe 0x100a7e8c
subss xmm2, dword [ebp - 0x44]
comiss xmm0, xmm2
movss dword [ebp - 0x30], xmm2
jbe 0x100a7e3f
comiss xmm0, xmm1
ja 0x100a7e49
comiss xmm2, xmm0
jbe 0x100a7e8c
comiss xmm1, xmm0
jbe 0x100a7e8c
movss dword [ebp - 0x30], xmm0
jmp 0x100a7e8c
comiss xmm2, xmm1
movss xmm0, dword [ebp - 0x4c]
jbe 0x100a7e5f
comiss xmm0, xmm1
ja 0x100a7e69
comiss xmm1, xmm2
jbe 0x100a7e8c
comiss xmm1, xmm0
jbe 0x100a7e8c
subss xmm2, dword [ebp - 0x44]
comiss xmm1, xmm2
movss dword [ebp - 0x30], xmm2
jbe 0x100a7e7d
comiss xmm0, xmm1
ja 0x100a7e87
comiss xmm2, xmm1
jbe 0x100a7e8c
comiss xmm1, xmm0
jbe 0x100a7e8c
movss dword [ebp - 0x30], xmm1
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
movss xmm0, dword [ebp - 0x30]
movss dword [eax + 0x1128], xmm0
lea eax, [ebp - 0x38]
mov esi, dword [0x101ef5c8]
add esi, dword [ebp - 0x54]
push eax
call fcn.100b1040
movss xmm0, dword [ebp - 0x30]
lea ecx, [ebp - 0x14]
mulss xmm0, dword [0x101b29a0]
sub esp, 0xc
mov dword [eax + 0x112c], esi
mov eax, 0x59c530
divss xmm0, dword [0x101b289c]
movss dword [esp + 8], xmm0
mov dword [esp + 4], 0
mov dword [esp], 0
call eax
mov eax, dword [ebp - 0x60]
lea ecx, [ebp - 0x14]
add eax, 0x10
push eax
mov eax, 0x59c080
call eax
mov esi, dword [ebp - 0x5c]
push 4
push str.movl
push esi
call fcn.100f0750
add esp, 0xc
test eax, eax
jne 0x100a826e
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x44]
mov byte [ebp - 0x29], 0x6c
push eax
lea eax, [ebp - 0x3c]
mov byte [ebp - 0x2a], 0x66
push eax
lea eax, [ebp - 0x2a]
mov dword [ebp - 0x3c], 0x41f00000
push eax
lea eax, [ebp - 0x29]
mov dword [ebp - 0x44], 0x3e8
push eax
lea eax, [ebp - 0x48]
mov byte [ebp - 0x28], 0x78
push eax
push str.movl_1x__c_c__f__d__c
push esi
call fcn.10030ce0
add esp, 0x20
cmp dword [ebp - 0x48], 6
jae 0x100a826e
mov al, byte [ebp - 0x2a]
cmp al, 0x66
je 0x100a7f8e
cmp al, 0x72
jne 0x100a7fa5
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
xor ecx, ecx
cmp byte [ebp - 0x29], 0x6c
sete cl
mov byte [ecx + eax + 0x47], 1
jmp 0x100a7fa5
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
xor ecx, ecx
cmp byte [ebp - 0x29], 0x6c
setne cl
mov byte [ecx + eax + 0x45], 1
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x54]
cmp edx, dword [eax + ecx*4 + 0x68]
jb 0x100a826e
mov al, byte [ebp - 0x2a]
mov esi, 0x6c2130
cmp al, 0x66
jne 0x100a7ffe
mov al, byte [ebp - 0x29]
cmp al, 0x6c
jne 0x100a7fe9
push 0
lea ecx, [edi + 0x5a0]
call esi
test eax, eax
jne 0x100a8032
mov al, byte [ebp - 0x2a]
cmp al, 0x66
jne 0x100a7ffe
mov al, byte [ebp - 0x29]
cmp al, 0x72
jne 0x100a804e
push 1
lea ecx, [edi + 0x5a0]
call esi
test eax, eax
jne 0x100a8032
mov al, byte [ebp - 0x2a]
cmp al, 0x72
jne 0x100a804e
mov al, byte [ebp - 0x29]
cmp al, 0x6c
jne 0x100a8020
push 3
lea ecx, [edi + 0x5a0]
call esi
test eax, eax
jne 0x100a8032
cmp byte [ebp - 0x2a], 0x72
jne 0x100a804e
mov al, byte [ebp - 0x29]
cmp al, 0x72
jne 0x100a804e
push 2
lea ecx, [edi + 0x5a0]
call esi
test eax, eax
je 0x100a804e
movss xmm1, dword [ebp - 0x3c]
mulss xmm1, dword [0x101b2888]
divss xmm1, dword [0x101b28c4]
movss dword [ebp - 0x3c], xmm1
jmp 0x100a8053
movss xmm1, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x44]
xor edx, edx
div dword [0x101ef5c8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101b2b00]
lea eax, [ebp - 0x38]
push eax
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [ebp - 0x4c], xmm1
call fcn.100b1040
test byte [edi + 0x428], 0x40
xorps xmm0, xmm0
mov ecx, dword [ebp - 0x48]
movss xmm2, dword [ebp - 0x3c]
movss xmm1, dword [eax + ecx*4 + 0x50]
movss dword [ebp - 0x30], xmm1
je 0x100a8106
comiss xmm2, xmm1
jbe 0x100a80b1
comiss xmm2, xmm0
ja 0x100a80bb
comiss xmm1, xmm2
jbe 0x100a80e3
comiss xmm0, xmm2
jbe 0x100a80de
addss xmm1, dword [ebp - 0x4c]
comiss xmm1, xmm2
movss dword [ebp - 0x30], xmm1
jbe 0x100a80cf
comiss xmm2, xmm0
ja 0x100a80d9
comiss xmm2, xmm1
jbe 0x100a8140
comiss xmm0, xmm2
jbe 0x100a8140
movaps xmm1, xmm2
jmp 0x100a813b
comiss xmm2, xmm0
ja 0x100a80ed
comiss xmm2, xmm1
jbe 0x100a8140
comiss xmm0, xmm2
jbe 0x100a8140
subss xmm1, dword [ebp - 0x4c]
comiss xmm2, xmm1
movss dword [ebp - 0x30], xmm1
jbe 0x100a8101
comiss xmm2, xmm0
ja 0x100a80d9
comiss xmm1, xmm2
jmp 0x100a80d2
comiss xmm1, xmm0
jbe 0x100a8110
comiss xmm2, xmm0
ja 0x100a811a
comiss xmm0, xmm1
jbe 0x100a8140
comiss xmm0, xmm2
jbe 0x100a8140
subss xmm1, dword [ebp - 0x4c]
comiss xmm0, xmm1
movss dword [ebp - 0x30], xmm1
jbe 0x100a812e
comiss xmm2, xmm0
ja 0x100a8138
comiss xmm1, xmm0
jbe 0x100a8140
comiss xmm0, xmm2
jbe 0x100a8140
xorps xmm1, xmm1
movss dword [ebp - 0x30], xmm1
mov al, byte [ebp - 0x2a]
cmp al, 0x66
je 0x100a8177
cmp al, 0x72
jne 0x100a81a1
ucomiss xmm1, xmm2
mov byte [ebp - 0x3d], 1
lahf
test ah, 0x44
jnp 0x100a815c
mov byte [ebp - 0x3d], 0
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov dl, byte [ebp - 0x3d]
xor ecx, ecx
cmp byte [ebp - 0x29], 0x6c
sete cl
mov byte [ecx + eax + 0x4b], dl
jmp 0x100a81a1
ucomiss xmm1, xmm2
mov byte [ebp - 0x3d], 1
lahf
test ah, 0x44
jnp 0x100a8188
mov byte [ebp - 0x3d], 0
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov dl, byte [ebp - 0x3d]
xor ecx, ecx
cmp byte [ebp - 0x29], 0x6c
setne cl
mov byte [ecx + eax + 0x49], dl
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov ecx, dword [ebp - 0x48]
movss xmm0, dword [ebp - 0x30]
movss dword [eax + ecx*4 + 0x50], xmm0
lea eax, [ebp - 0x38]
mov esi, dword [0x101ef5c8]
add esi, dword [ebp - 0x54]
push eax
call fcn.100b1040
mov ecx, dword [ebp - 0x48]
mov dword [eax + ecx*4 + 0x68], esi
mov al, byte [ebp - 0x28]
cmp al, 0x7a
je 0x100a822b
cmp al, 0x5a
je 0x100a822b
cmp al, 0x79
je 0x100a8204
cmp al, 0x59
je 0x100a8204
movss xmm0, dword [ebp - 0x30]
sub esp, 0xc
divss xmm0, dword [0x101b289c]
movss dword [esp + 8], xmm0
mov dword [esp + 4], 0
jmp 0x100a8249
movss xmm0, dword [ebp - 0x30]
sub esp, 0xc
divss xmm0, dword [0x101b289c]
mov dword [esp + 8], 0
mov dword [esp + 4], 0
movss dword [esp], xmm0
jmp 0x100a8250
movss xmm0, dword [ebp - 0x30]
sub esp, 0xc
divss xmm0, dword [0x101b289c]
mov dword [esp + 8], 0
movss dword [esp + 4], xmm0
mov dword [esp], 0
lea ecx, [ebp - 0x14]
mov eax, 0x59c530
call eax
mov eax, dword [ebp - 0x60]
lea ecx, [ebp - 0x14]
add eax, 0x10
push eax
mov eax, 0x59c080
call eax
mov esi, dword [ebp - 0x5c]
push 0xa
push str.movspoiler
push esi
call fcn.100f0750
add esp, 0xc
test eax, eax
je 0x100a829a
push 5
push str.movsp
push esi
call fcn.100f0750
add esp, 0xc
test eax, eax
jne 0x100a8627
push 0xa
push str.movspoiler
push esi
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x30], 0x41f00000
mov dword [ebp - 0x44], 0xbb8
mov dword [ebp - 0x58], 0x6a
mov byte [ebp - 0x29], 0x78
call fcn.100f0750
add esp, 0xc
mov dword [ebp - 0x4c], eax
push 0xb
push str.movspoiler_
push esi
call fcn.100f0750
add esp, 0xc
test eax, eax
je 0x100a833f
push 6
push str.movsp_
push esi
call fcn.100f0750
add esp, 0xc
test eax, eax
je 0x100a833f
cmp dword [ebp - 0x4c], 0
je 0x100a831f
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x29]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x48]
push eax
push str.movsp_d__f__d__c_d
push esi
call fcn.10030ce0
add esp, 0x1c
jmp 0x100a8386
lea eax, [ebp - 0x29]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x48]
push eax
push str.movspoiler_d__f__d__c
push esi
call fcn.10030ce0
add esp, 0x18
jmp 0x100a8386
cmp dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0xa
je 0x100a836c
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x29]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x30]
push eax
push str.movsp__f__d__c_d
push esi
call fcn.10030ce0
add esp, 0x18
jmp 0x100a8386
lea eax, [ebp - 0x29]
push eax
lea eax, [ebp - 0x44]
push eax
lea eax, [ebp - 0x30]
push eax
push str.movspoiler__f__d__c
push esi
call fcn.10030ce0
add esp, 0x14
cmp dword [ebp - 0x48], 0xb
jae 0x100a8627
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov ecx, dword [ebp - 0x48]
mov edx, dword [ebp - 0x54]
cmp edx, dword [eax + ecx*4 + 0x115c]
jb 0x100a8627
mov esi, dword [ebp - 0x58]
test esi, esi
jns 0x100a83bc
mov eax, esi
neg eax
mov dword [ebp - 0x58], eax
jmp 0x100a83c8
cmp esi, 0xa
jge 0x100a83c8
mov dword [ebp - 0x58], 0xa
mov eax, dword [ebp - 0x44]
lea ecx, [edi + 0x44]
xor edx, edx
movss xmm1, dword [ebp - 0x30]
div dword [0x101ef5c8]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101b2b00]
mov eax, 0x4082c0
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [ebp - 0x4c], xmm1
call eax
fmul dword [0x101b28e8]
fstp dword [ebp - 0x3c]
movss xmm0, dword [ebp - 0x3c]
call fcn.10117830
cmp byte [0x1029ff89], 0
mov dword [ebp - 0x34], eax
je 0x100a8452
test esi, esi
js 0x100a8452
movss xmm0, dword [ebp - 0x30]
mulss xmm0, dword [0x101b28cc]
divss xmm0, dword [0x101b28c4]
movss dword [ebp - 0x30], xmm0
movss xmm0, dword [ebp - 0x4c]
mulss xmm0, dword [0x101b2800]
movss dword [ebp - 0x4c], xmm0
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov ecx, dword [ebp - 0x48]
movss xmm1, dword [eax + ecx*4 + 0x1130]
mov eax, dword [ebp - 0x34]
movss dword [ebp - 0x3c], xmm1
cmp eax, dword [ebp - 0x58]
jbe 0x100a8509
test esi, esi
jns 0x100a8489
cmp byte [0x1029ff89], 0
je 0x100a8517
movss xmm2, dword [ebp - 0x30]
xorps xmm0, xmm0
comiss xmm2, xmm1
jbe 0x100a849b
comiss xmm2, xmm0
ja 0x100a84a5
comiss xmm1, xmm2
jbe 0x100a84da
comiss xmm0, xmm2
jbe 0x100a84d5
addss xmm1, dword [ebp - 0x4c]
comiss xmm1, xmm2
movss dword [ebp - 0x3c], xmm1
jbe 0x100a84b9
comiss xmm2, xmm0
ja 0x100a8502
comiss xmm2, xmm1
jbe 0x100a8556
comiss xmm0, xmm2
jbe 0x100a8556
movss dword [ebp - 0x3c], xmm2
jmp 0x100a8556
comiss xmm2, xmm0
ja 0x100a84e4
comiss xmm2, xmm1
jbe 0x100a8556
comiss xmm0, xmm2
jbe 0x100a8556
subss xmm1, dword [ebp - 0x4c]
comiss xmm2, xmm1
movss dword [ebp - 0x3c], xmm1
jbe 0x100a84f8
comiss xmm2, xmm0
ja 0x100a8502
comiss xmm1, xmm2
jbe 0x100a8556
comiss xmm0, xmm2
jbe 0x100a8556
movss dword [ebp - 0x3c], xmm2
jmp 0x100a8556
cmp byte [0x1029ff89], 0
je 0x100a8517
cmp eax, 0xa
jae 0x100a8556
movss xmm2, dword [ebp - 0x30]
xorps xmm0, xmm0
comiss xmm1, xmm0
jbe 0x100a8529
comiss xmm2, xmm0
ja 0x100a8533
comiss xmm0, xmm1
jbe 0x100a8556
comiss xmm0, xmm2
jbe 0x100a8556
subss xmm1, dword [ebp - 0x4c]
comiss xmm0, xmm1
movss dword [ebp - 0x3c], xmm1
jbe 0x100a8547
comiss xmm2, xmm0
ja 0x100a8551
comiss xmm1, xmm0
jbe 0x100a8556
comiss xmm0, xmm2
jbe 0x100a8556
movss dword [ebp - 0x3c], xmm0
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov ecx, dword [ebp - 0x48]
movss xmm0, dword [ebp - 0x3c]
movss dword [eax + ecx*4 + 0x1130], xmm0
lea eax, [ebp - 0x38]
mov esi, dword [0x101ef5c8]
add esi, dword [ebp - 0x54]
push eax
call fcn.100b1040
mov ecx, dword [ebp - 0x48]
movss xmm0, dword [ebp - 0x3c]
mulss xmm0, dword [0x101b29a0]
mov dword [eax + ecx*4 + 0x115c], esi
mov al, byte [ebp - 0x29]
cmp al, 0x7a
je 0x100a85e9
cmp al, 0x5a
je 0x100a85e9
cmp al, 0x79
je 0x100a85c7
cmp al, 0x59
je 0x100a85c7
divss xmm0, dword [0x101b289c]
sub esp, 0xc
movss dword [esp + 8], xmm0
mov dword [esp + 4], 0
jmp 0x100a8602
divss xmm0, dword [0x101b289c]
sub esp, 0xc
mov dword [esp + 8], 0
mov dword [esp + 4], 0
movss dword [esp], xmm0
jmp 0x100a8609
divss xmm0, dword [0x101b289c]
sub esp, 0xc
mov dword [esp + 8], 0
movss dword [esp + 4], xmm0
mov dword [esp], 0
lea ecx, [ebp - 0x14]
mov eax, 0x59c530
call eax
mov eax, dword [ebp - 0x60]
lea ecx, [ebp - 0x14]
add eax, 0x10
push eax
mov eax, 0x59c080
call eax
mov esi, dword [ebp - 0x5c]
push 0xb
push str.movelement_
push esi
call fcn.100f0750
add esp, 0xc
test eax, eax
jne 0x100a8f81
mov byte [ebp - 0x28], al
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
cmp byte [eax + 0x1188], 1
je 0x100a8666
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
cmp byte [eax + 0x1188], 3
jne 0x100a866a
mov byte [ebp - 0x28], 1
lea eax, [ebp - 0x30]
push eax
push str.movelement__d
push esi
call fcn.10030ce0
add esp, 0xc
cmp eax, 1
jne 0x100a8f81
cmp byte [ebp - 0x28], 0
je 0x100a8f81
mov esi, dword [ebp - 0x30]
dec esi
cmp esi, 0xfe
ja 0x100a8f81
movzx eax, word [edi + 0x22]
push eax
mov dword [ebp - 0x30], esi
call fcn.100951e0
movzx eax, al
cmp esi, eax
jae 0x100a8f81
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx + ecx*2]
movss xmm0, dword [eax + ecx*4 + 0x118c]
lea eax, [ebp - 0x38]
push eax
movss dword [ebp - 0x10], xmm0
call fcn.100b1040
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx + ecx*2]
movss xmm0, dword [eax + ecx*4 + 0x1190]
lea eax, [ebp - 0x38]
push eax
movss dword [ebp - 0xc], xmm0
call fcn.100b1040
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx + ecx*2]
movss xmm0, dword [eax + ecx*4 + 0x1194]
lea eax, [ebp - 0x38]
push eax
movss dword [ebp - 8], xmm0
call fcn.100b1040
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx + ecx*2]
movss xmm0, dword [eax + ecx*4 + 0x1d80]
lea eax, [ebp - 0x38]
push eax
movss dword [ebp - 0x20], xmm0
call fcn.100b1040
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx + ecx*2]
movss xmm0, dword [eax + ecx*4 + 0x1d84]
lea eax, [ebp - 0x38]
push eax
movss dword [ebp - 0x1c], xmm0
call fcn.100b1040
mov ecx, dword [ebp - 0x30]
lea ecx, [ecx + ecx*2]
movss xmm0, dword [eax + ecx*4 + 0x1d88]
lea eax, [ebp - 0x38]
push eax
movss dword [ebp - 0x18], xmm0
call fcn.100b1040
mov ecx, dword [ebp - 0x30]
cmp dword [eax + ecx*4 + 0x2974], 0
lea eax, [ebp - 0x38]
push eax
jne 0x100a880c
call fcn.100b1040
movzx ecx, word [edi + 0x22]
cmp byte [eax + 0x1188], 1
mov al, byte [ebp - 0x30]
mov byte [ebp - 0x28], al
mov eax, ecx
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
jne 0x100a87d8
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
mov dl, byte [ebp - 0x30]
mov ecx, dword [ebp - 0x38]
push 0
mov eax, dword [eax + 4]
add eax, dword [ebp - 0x54]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.1009b790
add esp, 0x10
jmp 0x100a8f81
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
mov dl, byte [ebp - 0x30]
mov ecx, dword [ebp - 0x38]
push 0
mov eax, dword [eax + 0xc]
add eax, dword [ebp - 0x54]
push eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.1009b790
add esp, 0x10
jmp 0x100a8f81
call fcn.100b1040
movzx ecx, word [edi + 0x22]
cmp byte [eax + 0x1188], 1
mov al, byte [ebp - 0x30]
mov byte [ebp - 0x28], al
mov eax, ecx
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
jne 0x100a8842
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
mov esi, dword [eax + 8]
jmp 0x100a8855
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
mov esi, dword [eax + 0x10]
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov ecx, dword [ebp - 0x30]
mov edx, dword [ebp - 0x54]
cmp edx, dword [eax + ecx*4 + 0x2974]
jb 0x100a8f81
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov ecx, dword [ebp - 0x30]
cmp dword [eax + ecx*4 + 0x2974], 1
jbe 0x100a8f81
mov eax, esi
mov byte [ebp - 0x29], 0
xor edx, edx
mov dword [ebp - 0x3c], 0
div dword [0x101ef5c8]
mov dword [ebp - 0x5c], eax
movzx eax, word [edi + 0x22]
mov cl, byte [ebp - 0x30]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
mov byte [ebp - 0x28], cl
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [eax + 0x15], 0
jne 0x100a88d8
mov eax, dword [ebp - 0x3c]
inc byte [ebp - 0x29]
mov byte [ebp - 0x2a], al
jmp 0x100a8ae1
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x3c]
mov byte [ebp - 0x28], dl
lea ecx, [ecx + edx*2]
add ecx, edx
movss xmm0, dword [eax + ecx*4 + 0x118c]
movzx eax, word [edi + 0x22]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
movss dword [ebp - 0x58], xmm0
call fcn.100970e0
mov cl, byte [ebp - 0x3c]
mov byte [ebp - 0x2a], cl
movzx esi, cl
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [ebp - 0x2a], 3
sbb ecx, ecx
and ecx, esi
movss xmm0, dword [eax + ecx*4 + 0x30]
mov al, byte [ebp - 0x30]
mov byte [ebp - 0x28], al
movzx eax, word [edi + 0x22]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
movss dword [ebp - 0x4c], xmm0
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [ebp - 0x2a], 3
sbb ecx, ecx
and ecx, esi
movss xmm0, dword [eax + ecx*4 + 0x30]
mov al, byte [ebp - 0x30]
mov byte [ebp - 0x28], al
movzx eax, word [edi + 0x22]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
movss dword [ebp - 0x44], xmm0
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [ebp - 0x2a], 3
movss xmm1, dword [ebp - 0x44]
sbb ecx, ecx
and ecx, esi
subss xmm1, dword [eax + ecx*4 + 0x18]
mov eax, dword [ebp - 0x5c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101b2b00]
lea eax, [ebp - 0x38]
push eax
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [ebp - 0x44], xmm1
call fcn.100b1040
movzx ecx, word [edi + 0x22]
cmp byte [eax + 0x1188], 3
mov al, byte [ebp - 0x30]
mov byte [ebp - 0x28], al
mov eax, ecx
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
jne 0x100a8a2f
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
movzx ecx, word [edi + 0x22]
mov al, byte [eax + 0x14]
test al, al
mov al, byte [ebp - 0x30]
mov byte [ebp - 0x28], al
mov eax, ecx
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
jne 0x100a8a2f
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [ebp - 0x2a], 3
sbb ecx, ecx
and ecx, esi
movss xmm3, dword [eax + ecx*4 + 0x18]
jmp 0x100a8a8e
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [eax + 0x14], 0
je 0x100a8a89
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov ecx, dword [ebp - 0x30]
cmp byte [eax + ecx + 0x2d70], 0
je 0x100a8a89
movzx eax, word [edi + 0x22]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
mov byte [ebp - 0x28], cl
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [ebp - 0x2a], 3
sbb ecx, ecx
and ecx, esi
movss xmm3, dword [eax + ecx*4 + 0x18]
jmp 0x100a8a8e
movss xmm3, dword [ebp - 0x4c]
movss xmm4, dword [ebp - 0x58]
xorps xmm0, xmm0
comiss xmm3, xmm4
movss xmm1, dword [ebp - 0x44]
jbe 0x100a8aa5
comiss xmm0, xmm1
ja 0x100a8aaf
comiss xmm4, xmm3
jbe 0x100a8ab7
comiss xmm1, xmm0
jbe 0x100a8ab7
mulss xmm1, dword [0x101b29a0]
comiss xmm1, xmm0
movaps xmm2, xmm1
addss xmm2, xmm4
jb 0x100a8ac8
comiss xmm2, xmm3
jae 0x100a8ad2
comiss xmm0, xmm1
jbe 0x100a8ad8
comiss xmm3, xmm2
jb 0x100a8ad8
inc byte [ebp - 0x29]
movaps xmm2, xmm3
mov eax, dword [ebp - 0x3c]
movss dword [ebp + eax*4 - 0x10], xmm2
mov al, byte [ebp - 0x30]
mov byte [ebp - 0x28], al
movzx eax, word [edi + 0x22]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [eax + 0x16], 0
jne 0x100a8b18
mov al, byte [ebp - 0x29]
mov ecx, dword [ebp - 0x3c]
inc al
mov byte [ebp - 0x29], al
jmp 0x100a8d26
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x3c]
mov byte [ebp - 0x28], dl
lea ecx, [ecx + edx*2]
add ecx, edx
movss xmm0, dword [eax + ecx*4 + 0x1d80]
movzx eax, word [edi + 0x22]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
movss dword [ebp - 0x58], xmm0
call fcn.100970e0
movzx esi, byte [ebp - 0x2a]
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [ebp - 0x2a], 3
sbb ecx, ecx
and ecx, esi
movss xmm0, dword [eax + ecx*4 + 0x3c]
mov al, byte [ebp - 0x30]
mov byte [ebp - 0x28], al
movzx eax, word [edi + 0x22]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
movss dword [ebp - 0x4c], xmm0
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [ebp - 0x2a], 3
sbb ecx, ecx
and ecx, esi
movss xmm0, dword [eax + ecx*4 + 0x3c]
mov al, byte [ebp - 0x30]
mov byte [ebp - 0x28], al
movzx eax, word [edi + 0x22]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
movss dword [ebp - 0x44], xmm0
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [ebp - 0x2a], 3
movss xmm1, dword [ebp - 0x44]
sbb ecx, ecx
and ecx, esi
subss xmm1, dword [eax + ecx*4 + 0x24]
mov eax, dword [ebp - 0x5c]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x101b2b00]
lea eax, [ebp - 0x38]
push eax
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [ebp - 0x44], xmm1
call fcn.100b1040
movzx ecx, word [edi + 0x22]
cmp byte [eax + 0x1188], 3
mov al, byte [ebp - 0x30]
mov byte [ebp - 0x28], al
mov eax, ecx
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
jne 0x100a8c6a
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
movzx ecx, word [edi + 0x22]
mov al, byte [eax + 0x14]
test al, al
mov al, byte [ebp - 0x30]
mov byte [ebp - 0x28], al
mov eax, ecx
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
jne 0x100a8c6a
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [ebp - 0x2a], 3
sbb ecx, ecx
and ecx, esi
movss xmm3, dword [eax + ecx*4 + 0x24]
jmp 0x100a8cc9
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [eax + 0x14], 0
je 0x100a8cc4
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov ecx, dword [ebp - 0x30]
cmp byte [ecx + eax + 0x2d70], 0
je 0x100a8cc4
movzx eax, word [edi + 0x22]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
mov byte [ebp - 0x28], cl
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [ebp - 0x2a], 3
sbb ecx, ecx
and ecx, esi
movss xmm3, dword [eax + ecx*4 + 0x24]
jmp 0x100a8cc9
movss xmm3, dword [ebp - 0x4c]
movss xmm4, dword [ebp - 0x58]
xorps xmm0, xmm0
comiss xmm3, xmm4
movss xmm1, dword [ebp - 0x44]
jbe 0x100a8ce0
comiss xmm0, xmm1
ja 0x100a8cea
comiss xmm4, xmm3
jbe 0x100a8cf2
comiss xmm1, xmm0
jbe 0x100a8cf2
mulss xmm1, dword [0x101b29a0]
comiss xmm1, xmm0
movaps xmm2, xmm1
addss xmm2, xmm4
jb 0x100a8d08
comiss xmm2, xmm3
jb 0x100a8d08
mov al, byte [ebp - 0x29]
jmp 0x100a8d15
comiss xmm0, xmm1
mov al, byte [ebp - 0x29]
jbe 0x100a8d1d
comiss xmm3, xmm2
jb 0x100a8d1d
inc al
movaps xmm2, xmm3
mov byte [ebp - 0x29], al
mov ecx, dword [ebp - 0x3c]
movss dword [ebp + ecx*4 - 0x20], xmm2
inc ecx
mov dword [ebp - 0x3c], ecx
cmp ecx, 3
jl 0x100a88a3
cmp al, 6
jb 0x100a8e8d
mov al, byte [ebp - 0x30]
mov byte [ebp - 0x28], al
movzx eax, word [edi + 0x22]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [eax + 0x14], 0
je 0x100a8d82
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov edx, dword [ebp - 0x30]
cmp byte [edx + eax + 0x2d70], 0
jne 0x100a8d85
push 1
push dword [ebp - 0x54]
jmp 0x100a8eab
mov edx, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x20]
push 0
push 1
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.1009b790
xor cl, cl
mov dword [ebp - 0x5c], 0x2974
add esp, 0x10
mov byte [ebp - 0x29], cl
xor esi, esi
nop word [eax + eax]
movzx edx, word [edi + 0x22]
mov eax, edx
mov dword [ebp - 0x34], eax
movzx eax, dl
xor eax, 0x811c9dc5
imul ecx, eax, 0x1000193
mov eax, edx
shr eax, 8
xor ecx, eax
imul eax, ecx, 0x1000193
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x50]
push eax
call fcn.10099ea0
mov edx, dword [0x10828d54]
mov eax, dword [eax + 4]
test eax, eax
cmovne edx, eax
cmp edx, dword [0x10828d54]
jne 0x100a8dfc
xor al, al
jmp 0x100a8dff
mov al, byte [edx + 0x14]
movzx eax, al
cmp esi, eax
jge 0x100a8e24
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov ecx, dword [ebp - 0x5c]
cmp dword [eax + ecx], 1
jne 0x100a8e1b
inc byte [ebp - 0x29]
inc esi
add ecx, 4
mov dword [ebp - 0x5c], ecx
jmp 0x100a8db0
movzx eax, word [edi + 0x22]
push eax
call fcn.100951e0
cmp byte [ebp - 0x29], al
jne 0x100a8ebe
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
cmp byte [eax + 0x1188], 1
setne al
dec al
and al, 2
mov byte [ebp - 0x28], al
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov cl, byte [ebp - 0x28]
mov esi, 0x2974
mov byte [eax + 0x1188], cl
nop dword [eax + eax]
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov dword [eax + esi], 0
add esi, 4
cmp esi, 0x2d70
jl 0x100a8e70
jmp 0x100a8ebe
lea eax, [ebp - 0x38]
push eax
call fcn.100b1040
mov edx, dword [ebp - 0x30]
movzx eax, byte [eax + edx + 0x2d70]
push eax
mov eax, dword [0x101ef5c8]
add eax, dword [ebp - 0x54]
push eax
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x10]
push eax
call fcn.1009b790
add esp, 0x10
mov al, byte [ebp - 0x30]
mov byte [ebp - 0x28], al
movzx eax, word [edi + 0x22]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [eax + 0x16], 0
je 0x100a8f39
movss xmm1, dword [0x101b289c]
lea ecx, [ebp - 0x24]
movss xmm0, dword [ebp - 0x18]
sub esp, 0xc
divss xmm0, xmm1
mov eax, 0x59c530
movss dword [esp + 8], xmm0
movss xmm0, dword [ebp - 0x1c]
divss xmm0, xmm1
movss dword [esp + 4], xmm0
movss xmm0, dword [ebp - 0x20]
divss xmm0, xmm1
movss dword [esp], xmm0
call eax
mov esi, dword [ebp - 0x60]
lea ecx, [ebp - 0x24]
lea eax, [esi + 0x10]
push eax
mov eax, 0x59c080
call eax
jmp 0x100a8f3c
mov esi, dword [ebp - 0x60]
mov al, byte [ebp - 0x30]
mov byte [ebp - 0x28], al
movzx eax, word [edi + 0x22]
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
call fcn.100970e0
lea ecx, [ebp - 0x28]
push ecx
mov ecx, eax
call fcn.100968f0
cmp byte [eax + 0x15], 0
je 0x100a8f81
movss xmm0, dword [ebp - 0x10]
movss dword [esi + 0x40], xmm0
movss xmm0, dword [ebp - 0xc]
movss dword [esi + 0x44], xmm0
movss xmm0, dword [ebp - 8]
movss dword [esi + 0x48], xmm0
mov esi, dword [ebp - 0x60]
mov ecx, dword [esi + 0x98]
test ecx, ecx
je 0x100a8fa7
cmp dword [esi + 4], 0
mov edx, edi
setne al
movzx eax, al
push eax
push ecx
mov ecx, dword [ebp - 0x38]
call fcn.100a7cb0
add esp, 8
mov eax, dword [esi + 0x9c]
test eax, eax
je 0x100a8fc2
push dword [ebx + 0xc]
mov ecx, dword [ebp - 0x38]
mov edx, edi
push eax
call fcn.100a7cb0
add esp, 8
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.100eaab6
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret