Function at 0x10077b60
Capabilities:
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

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
push 0xffffffffffffffff
push 0x100bd23d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x170
mov eax, dword [0x100fc068]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x64], edi
mov esi, dword [0x10104944]
lea eax, [ebp - 0x13c]
movss xmm3, dword [0x100f1b8c]
push 0
push 0
movss xmm2, dword [esi + 0x3bb4]
push 0x100efbd0
push ecx
mov ecx, dword [esi + 0x3bb0]
mov dword [esp], 0xbf800000
push eax
call fcn.100691b0
movss xmm0, dword [esi + 0x3bb4]
lea edx, [edi + 0xb4]
addss xmm0, dword [esi + 0x37e8]
movss xmm6, dword [0x100f19f4]
xorps xmm7, xmm7
movss xmm1, dword [eax]
movss xmm2, dword [str.zD33]
movss dword [edi + 0x218], xmm1
mulss xmm0, dword [edi]
movss dword [edi + 0x21c], xmm0
mov edi, 0x15
mov ecx, dword [edx - 0x54]
xorps xmm0, xmm0
movzx eax, cl
cvtsi2sd xmm0, eax
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100f1d40]
mov eax, ecx
shr eax, 8
movzx eax, al
cvtpd2ps xmm5, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
mulss xmm5, xmm6
addsd xmm0, qword [eax*8 + 0x100f1d40]
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
movzx eax, al
cvtpd2ps xmm3, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
shr eax, 0x1f
mulss xmm3, xmm6
addsd xmm0, qword [eax*8 + 0x100f1d40]
cvtpd2ps xmm4, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
shr ecx, 0x1f
comiss xmm7, xmm5
addsd xmm0, qword [ecx*8 + 0x100f1d40]
mulss xmm4, xmm6
cvtpd2ps xmm1, xmm0
mulss xmm1, xmm6
mulss xmm1, dword [esi + 0x3798]
jbe 0x10077cbc
movaps xmm0, xmm7
jmp 0x10077cc8
movss xmm0, dword [0x100f1a80]
minss xmm0, xmm5
comiss xmm7, xmm3
movss xmm5, dword [0x100f1a80]
mulss xmm0, xmm2
addss xmm0, dword [0x100f1a3c]
cvttss2si ecx, xmm0
jbe 0x10077cea
movaps xmm0, xmm7
jmp 0x10077cf1
movaps xmm0, xmm5
minss xmm0, xmm3
movss xmm3, dword [0x100f1a3c]
mulss xmm0, xmm2
addss xmm0, xmm3
cvttss2si eax, xmm0
shl eax, 8
or ecx, eax
comiss xmm7, xmm4
jbe 0x10077d14
movaps xmm0, xmm7
jmp 0x10077d1b
movaps xmm0, xmm5
minss xmm0, xmm4
mulss xmm0, xmm2
addss xmm0, xmm3
cvttss2si eax, xmm0
shl eax, 0x10
or ecx, eax
comiss xmm7, xmm1
jbe 0x10077d36
movaps xmm0, xmm7
jmp 0x10077d3d
movaps xmm0, xmm5
minss xmm0, xmm1
mulss xmm0, xmm2
addss xmm0, xmm3
cvttss2si eax, xmm0
shl eax, 0x18
or eax, ecx
mov dword [edx], eax
add edx, 4
sub edi, 1
jne 0x10077c25
mov eax, dword [esi + 0x3e28]
mov edi, dword [ebp - 0x64]
movss xmm0, dword [eax + 0x20c]
subss xmm0, dword [eax + 0x10]
movss dword [ebp - 0xa4], xmm0
movss xmm0, dword [eax + 0x210]
subss xmm0, dword [eax + 0x14]
mov byte [eax + 0x90], 1
cmp byte [edi + 0x40], 0
mov eax, dword [esi + 0x3e28]
movss dword [ebp - 0x28], xmm0
movss xmm0, dword [edi + 0x44]
mov eax, dword [eax + 0x248]
mov dword [ebp - 0x7c], eax
movss dword [ebp - 0xb4], xmm0
movss dword [ebp - 0x48], xmm0
je 0x10077ddc
mov byte [edi + 0x40], 0
mov eax, dword [esi + 0x3e28]
mov dword [eax + 0x70], 0
mov dword [eax + 0x78], 0
mov dword [eax + 0x80], 0
mov esi, dword [esi + 0x3e28]
sub esp, 8
movss xmm0, dword [esi + 0xd4]
movss dword [ebp - 0x90], xmm0
movss xmm0, dword [esi + 0xd8]
movss dword [ebp - 0xd8], xmm0
movss xmm0, dword [esi + 0x5c]
movss dword [ebp - 0xa8], xmm0
movss xmm0, dword [esi + 0x60]
divss xmm0, dword [edi + 0x21c]
movss dword [ebp - 0x70], xmm0
fld dword [ebp - 0x70]
fstp qword [esp]
call fcn.100b87d0
mov ecx, dword [edi + 8]
sub ecx, dword [edi + 4]
movss xmm0, dword [ebp - 0x28]
addss xmm0, dword [esi + 0x60]
fstp dword [ebp - 0x70]
cvttss2si eax, dword [ebp - 0x70]
mov dword [ebp - 0x6c], eax
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [ebp - 0x64]
sar edx, 1
mov edi, edx
shr edi, 0x1f
divss xmm0, dword [eax + 0x21c]
add edi, edx
movss dword [ebp - 0x70], xmm0
fld dword [ebp - 0x70]
fstp qword [esp]
call fcn.100b87d0
mov esi, dword [ebp - 0x6c]
lea ecx, [edi - 1]
fstp dword [ebp - 0x70]
cvttss2si eax, dword [ebp - 0x70]
push edi
push 0x100efbd4
push 0x10
add eax, esi
cmp eax, ecx
cmovl ecx, eax
xor eax, eax
test ecx, ecx
cmovg eax, ecx
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x24]
push eax
call fcn.1001eda0
mov edi, dword [0x10104944]
lea eax, [ebp - 0x24]
movss xmm3, dword [0x100f1b8c]
add esp, 0x18
movss xmm2, dword [edi + 0x3bb4]
push 0
push 0
push eax
push ecx
mov ecx, dword [edi + 0x3bb0]
lea eax, [ebp - 0x17c]
mov dword [esp], 0xbf800000
push eax
call fcn.100691b0
mov ecx, dword [ebp - 0x64]
movd xmm0, dword [ecx + 0x48]
cvtdq2ps xmm0, xmm0
addss xmm0, dword [eax]
movss dword [ecx + 0x44], xmm0
mov eax, dword [ecx + 4]
cmp eax, dword [ecx + 8]
je 0x10078ed2
movss xmm3, dword [0x100f1b8c]
lea eax, [ebp - 0x16c]
movss xmm2, dword [edi + 0x3bb4]
push 0
push 0
push 0x100ee388
push ecx
mov ecx, dword [edi + 0x3bb0]
mov dword [esp], 0xbf800000
push eax
call fcn.100691b0
movss xmm0, dword [eax]
movss dword [ebp - 0xd4], xmm0
cmp esi, dword [ebp - 0x70]
jg 0x10078d01
mov ecx, dword [ebp - 0x64]
movss xmm1, dword [ebp - 0x90]
movaps xmm0, xmm1
addss xmm0, dword [ebp - 0xa8]
lea eax, [ecx + 0x10]
mov dword [ebp - 0xdc], eax
lea eax, [ecx + 0x18]
mov dword [ebp - 0xc8], eax
lea eax, [ecx + 0x210]
mov dword [ebp - 0xcc], eax
lea eax, [ecx + 0x20]
movss dword [ebp - 0xac], xmm0
mov dword [ebp - 0xd0], eax
nop dword [eax]
addss xmm1, dword [ecx + 0x44]
movd xmm0, esi
lea eax, [esi + esi*2]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x94], eax
mov eax, dword [ecx + 4]
push esi
mov dword [ebp - 0x98], eax
movss dword [ebp - 0xb0], xmm1
mulss xmm0, dword [ecx + 0x21c]
addss xmm0, dword [ebp - 0xd8]
movss dword [ebp - 0x80], xmm0
call fcn.10075d10
mov edi, dword [ebp - 0x64]
mov ecx, edi
mov dword [ebp - 0x108], eax
lea eax, [ebp - 0x10c]
push eax
mov dword [ebp - 0x10c], esi
call fcn.1007cdb0
addss xmm0, dword [edi + 0x44]
movss xmm1, dword [ebp - 0xb4]
lea ecx, [ebp - 0x68]
lea eax, [ebp - 0x48]
push esi
comiss xmm1, xmm0
movss dword [ebp - 0x68], xmm0
cmovbe eax, ecx
mov ecx, edi
movss xmm0, dword [eax]
movss dword [ebp - 0xb4], xmm0
movss dword [ebp - 0x48], xmm0
call fcn.10075d10
mov edx, dword [ebp - 0xdc]
mov edi, eax
movss xmm0, dword [0x100f1b9c]
movaps xmm2, xmm0
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x5c], edi
mov ecx, dword [edx]
movss dword [ebp - 0x8c], xmm0
movss dword [ebp - 0x68], xmm2
cmp ecx, esi
je 0x10078056
setl al
jmp 0x1007805c
cmp dword [edx + 4], edi
setle al
test al, al
je 0x1007808a
cmp ecx, esi
mov ecx, dword [ebp - 0x64]
jne 0x1007806b
cmp dword [ecx + 0x14], 0
setg al
test al, al
je 0x1007807f
push edx
call fcn.1007cdb0
movss xmm2, dword [ebp - 0x68]
jmp 0x10078082
xorps xmm0, xmm0
movss dword [ebp - 0x8c], xmm0
mov edx, dword [ebp - 0xc8]
mov eax, dword [edx]
cmp eax, esi
jne 0x1007809a
cmp dword [edx + 4], 0
setg cl
test cl, cl
je 0x100780c9
cmp eax, esi
jne 0x100780ab
mov eax, dword [ebp - 0x64]
cmp dword [eax + 0x1c], edi
mov edi, dword [ebp - 0x64]
lea eax, [ebp - 0x60]
setl cl
test cl, cl
mov ecx, edi
cmovne eax, edx
push eax
call fcn.1007cdb0
movaps xmm2, xmm0
lea edx, [edi + 0x18]
jmp 0x100780cc
mov edi, dword [ebp - 0x64]
cmp dword [edx], esi
jle 0x100780d8
addss xmm2, dword [edi + 0x218]
movss xmm3, dword [ebp - 0x8c]
movss xmm0, dword [0x100f1b9c]
ucomiss xmm3, xmm0
lahf
test ah, 0x44
jnp 0x1007816a
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jnp 0x1007816a
comiss xmm2, xmm3
jbe 0x1007816a
movss xmm1, dword [ebp - 0x90]
lea eax, [ebp - 0x134]
addss xmm1, dword [edi + 0x44]
push 0
push ecx
mov ecx, dword [ebp - 0x7c]
mov dword [esp], 0
push dword [edi + 0xec]
movaps xmm0, xmm1
addss xmm1, xmm2
addss xmm0, xmm3
push eax
lea eax, [ebp - 0x154]
push eax
movss dword [ebp - 0x134], xmm1
movss dword [ebp - 0x154], xmm0
movss xmm0, dword [ebp - 0x80]
movss dword [ebp - 0x150], xmm0
addss xmm0, dword [edi + 0x21c]
movss dword [ebp - 0x130], xmm0
call fcn.100656e0
lea edx, [esi + 1]
movss xmm2, dword [ebp - 0xa8]
mov eax, edx
movss xmm0, dword [ebp - 0xac]
shr eax, 8
addss xmm2, xmm2
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
movss xmm3, dword [ebp - 0x80]
imul eax, eax, 0x1000193
movss dword [ebp - 0xc4], xmm0
movss dword [ebp - 0xc0], xmm3
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x68], edx
xor ecx, eax
movss dword [ebp - 0x74], xmm2
imul ecx, ecx, 0x1000193
mov eax, edx
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
lea ecx, [edi + 0x1f0]
push eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x14c]
push eax
call fcn.1001c920
cmp dword [eax + 4], 0
je 0x10078267
movss xmm1, dword [ebp - 0xa4]
lea eax, [ebp - 0x15c]
addss xmm1, dword [ebp - 0x90]
push 0
push ecx
mov ecx, dword [ebp - 0x7c]
movaps xmm0, xmm3
addss xmm0, dword [edi + 0x21c]
mov dword [esp], 0
push dword [edi + 0xf4]
movss dword [ebp - 0x68], xmm1
addss xmm1, xmm2
push eax
lea eax, [ebp - 0xc4]
movss dword [ebp - 0x158], xmm0
push eax
movss dword [ebp - 0x15c], xmm1
call fcn.100656e0
movss xmm0, dword [ebp - 0x68]
movss xmm2, dword [ebp - 0x74]
movss xmm3, dword [ebp - 0x80]
jmp 0x10078277
movss xmm0, dword [ebp - 0x90]
addss xmm0, dword [ebp - 0xa4]
mov eax, dword [ebp - 0x8c]
lea ecx, [edi + 0x210]
mov dword [ebp - 0x68], eax
lea eax, [ebp - 0x68]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.10080060
mov edi, dword [ebp - 0x4c]
cmp byte [edi + 0xd], 0
jne 0x10078508
mov eax, dword [ebp - 0x8c]
cmp eax, dword [edi + 0x10]
jl 0x10078508
mov eax, dword [ebp - 0xcc]
cmp edi, dword [eax]
je 0x10078508
mov eax, dword [ebp - 0x64]
addss xmm2, xmm0
push 0
push ecx
mov ecx, dword [ebp - 0x7c]
movaps xmm0, xmm3
addss xmm0, dword [eax + 0x21c]
mov dword [esp], 0
push dword [eax + 0xf0]
lea eax, [ebp - 0xe4]
movss dword [ebp - 0x74], xmm2
push eax
lea eax, [ebp - 0xc4]
movss dword [ebp - 0x68], xmm0
push eax
movss dword [ebp - 0xe4], xmm2
movss dword [ebp - 0xe0], xmm0
call fcn.100656e0
mov ecx, dword [0x10104944]
movss xmm2, dword [ebp - 0x90]
movss xmm0, dword [ebp - 0x74]
movss xmm4, dword [ebp - 0x80]
mov eax, dword [ecx + 0x3e28]
movss xmm1, dword [ecx + 0x37fc]
movss xmm3, dword [ebp - 0x68]
movaps xmm5, xmm1
maxss xmm2, dword [eax + 0x1f4]
minss xmm0, dword [eax + 0x1fc]
maxss xmm4, dword [eax + 0x1f8]
minss xmm3, dword [eax + 0x200]
subss xmm2, xmm1
movss xmm1, dword [ecx + 0xdb8]
addss xmm5, xmm0
movss xmm0, dword [ecx + 0x3800]
subss xmm4, xmm0
addss xmm3, xmm0
comiss xmm1, xmm2
jb 0x10078508
movss xmm0, dword [ecx + 0xdbc]
comiss xmm0, xmm4
jb 0x10078508
comiss xmm5, xmm1
jbe 0x10078508
comiss xmm3, xmm0
jbe 0x10078508
xor ecx, ecx
call fcn.10054b20
mov esi, dword [0x10104944]
lea eax, [ebp - 0x40]
push eax
mov dword [ebp - 0x40], 0
movups xmm0, xmmword [esi + 0x3860]
lea ecx, [esi + 0x4724]
movups xmmword [ebp - 0x3c], xmm0
call fcn.1005ad60
mov dword [esi + 0x3860], 0x3f800000
mov dword [esi + 0x3864], 0x3e4ccccd
mov dword [esi + 0x3868], 0x3e4ccccd
mov dword [esi + 0x386c], 0x3f800000
push dword [edi + 0x10]
push 0x100efbdc
call fcn.100810b0
mov esi, dword [0x10104944]
add esp, 8
mov eax, dword [esi + 0x4724]
cmp eax, 1
jl 0x10078443
mov ecx, dword [esi + 0x472c]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*4 - 0x14]
movups xmm0, xmmword [ecx + edx*4 - 0x10]
add eax, 0x386
add eax, eax
movups xmmword [esi + eax*8], xmm0
dec dword [esi + 0x4724]
mov ecx, dword [esi + 0x3e28]
cmp byte [ecx + 0x93], 0
jne 0x1007846a
mov ecx, dword [ecx + 0x17c]
neg ecx
sbb ecx, ecx
add ecx, 6
call fcn.100831e0
mov esi, dword [0x10104944]
movups xmm0, xmmword [esi + 0x3860]
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0
lea ecx, [esi + 0x4724]
push eax
movups xmmword [ebp - 0x3c], xmm0
call fcn.1005ad60
mov dword [esi + 0x3860], 0x3f800000
add edi, 0x14
mov dword [esi + 0x3864], 0x3f800000
mov dword [esi + 0x3868], 0x3e4ccccd
mov dword [esi + 0x386c], 0x3f800000
cmp dword [edi + 0x14], 0x10
jb 0x100784be
mov edi, dword [edi]
push edi
push 0x100ee4b0
call fcn.100810b0
mov esi, dword [0x10104944]
add esp, 8
mov eax, dword [esi + 0x4724]
cmp eax, 1
jl 0x10078500
mov ecx, dword [esi + 0x472c]
lea edx, [eax + eax*4]
mov eax, dword [ecx + edx*4 - 0x14]
movups xmm0, xmmword [ecx + edx*4 - 0x10]
add eax, 0x386
add eax, eax
movups xmmword [esi + eax*8], xmm0
dec dword [esi + 0x4724]
call fcn.100520c0
mov esi, dword [ebp - 0x6c]
push dword [ebp - 0x8c]
lea eax, [ebp - 0x24]
push 0x100efbf0
push 0x10
push eax
call fcn.1001eda0
mov edi, dword [0x10104944]
lea eax, [ebp - 0x24]
movss xmm3, dword [0x100f1b8c]
add esp, 0x10
movss xmm2, dword [edi + 0x3bb4]
push 0
push 0
push eax
push ecx
mov ecx, dword [edi + 0x3bb0]
lea eax, [ebp - 0x174]
mov dword [esp], 0xbf800000
push eax
call fcn.100691b0
mov ecx, dword [ebp - 0x64]
movss xmm0, dword [ebp - 0x90]
movss xmm1, dword [ebp - 0x80]
movss dword [ebp - 0xe8], xmm1
addss xmm0, dword [ecx + 0x44]
mov edx, dword [ecx + 0xf8]
subss xmm0, dword [eax]
movss dword [ebp - 0xec], xmm0
test edx, 0xff000000
je 0x100785e9
lea ecx, [ebp - 0x24]
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10078596
sub ecx, edi
lea eax, [ebp - 0x24]
mov edi, dword [ebp - 0x7c]
add ecx, eax
cmp eax, ecx
je 0x100785e4
mov eax, dword [edi + 0x2c]
movups xmm0, xmmword [edi + 0x60]
push 0
push ecx
movss xmm2, dword [eax + 0xc]
mov dword [esp], 0
push ecx
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x3c]
push ecx
push edx
lea ecx, [ebp - 0xec]
push ecx
mov ecx, dword [eax + 8]
push edi
movups xmmword [ebp - 0x3c], xmm0
call fcn.100694b0
movss xmm1, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x64]
jmp 0x100785ec
mov edi, dword [ebp - 0x7c]
cmp dword [ecx + 0x20], esi
jne 0x10078970
call fcn.10052800
mov ecx, dword [ebp - 0x64]
mov byte [ebp - 0x75], al
call fcn.1007bae0
test al, al
jne 0x1007875e
movss xmm0, dword [ebp - 0xa4]
movzx eax, byte [ebp - 0x75]
addss xmm0, dword [ebp - 0xac]
addss xmm1, dword [ecx + 0x21c]
push 0
xor eax, 1
push ecx
addss xmm0, dword [ebp - 0xa8]
mov dword [esp], 0
push dword [ecx + eax*4 + 0xfc]
lea eax, [ebp - 0xf4]
movss dword [ebp - 0x6c], xmm1
push eax
lea eax, [ebp - 0xc4]
movss dword [ebp - 0x74], xmm0
push eax
mov ecx, edi
movss dword [ebp - 0xf4], xmm0
movss dword [ebp - 0xf0], xmm1
call fcn.100656e0
mov ecx, dword [ebp - 0x64]
mov esi, dword [ecx + 0x104]
test esi, 0xff000000
je 0x1007875e
test byte [edi + 0x24], 1
mov ecx, edi
movss xmm4, dword [0x100f1a3c]
movss xmm2, dword [ebp - 0xac]
movss xmm3, dword [ebp - 0x80]
addss xmm2, xmm4
movss xmm0, dword [ebp - 0x74]
addss xmm3, xmm4
movss xmm1, dword [ebp - 0x6c]
push 0
je 0x100786f1
subss xmm0, xmm4
movss dword [ebp - 0x104], xmm2
subss xmm1, xmm4
movss dword [ebp - 0x100], xmm3
lea eax, [ebp - 0xfc]
push eax
lea eax, [ebp - 0x104]
movss dword [ebp - 0xfc], xmm0
movss dword [ebp - 0xf8], xmm1
jmp 0x1007872e
subss xmm0, dword [0x100f1a38]
subss xmm1, dword [0x100f1a38]
lea eax, [ebp - 0x144]
movss dword [ebp - 0x114], xmm2
push eax
movss dword [ebp - 0x110], xmm3
lea eax, [ebp - 0x114]
movss dword [ebp - 0x144], xmm0
movss dword [ebp - 0x140], xmm1
movss xmm3, dword [0x100f1a80]
push eax
call fcn.10065030
push ecx
mov dword [esp], 0x3f800000
mov ecx, edi
push 1
push esi
push dword [edi + 0x54]
push dword [edi + 0x5c]
call fcn.100634d0
mov ecx, dword [ebp - 0x64]
mov dword [edi + 0x54], 0
cmp byte [ebp - 0x75], 0
je 0x10078970
call fcn.10090505
push 0
push 0x2710
push edx
push eax
call fcn.100b7850
mov esi, eax
mov dword [ebp - 0xbc], eax
mov eax, dword [ebp - 0x64]
mov ecx, edx
mov dword [ebp - 0xb8], ecx
sub esi, dword [eax + 0x248]
mov eax, ecx
mov ecx, dword [ebp - 0x64]
sbb eax, dword [ecx + 0x24c]
mov dword [ebp - 0x88], eax
jne 0x100787b3
cmp esi, 0x190
jbe 0x10078970
movss xmm0, dword [0x100f1a80]
lea eax, [ecx + 0x20]
push eax
movss dword [ebp - 0x6c], xmm0
call fcn.10075b20
push dword [ebp - 0xd0]
mov ecx, dword [ebp - 0x64]
mov edi, eax
call fcn.1007cdb0
mov eax, dword [ebp - 0x64]
movaps xmm2, xmm0
movss dword [ebp - 0x74], xmm2
cmp byte [eax + 0x3c], 0
je 0x100788d7
mov edx, dword [ebp - 0x98]
mov ecx, dword [ebp - 0x94]
mov eax, dword [edx + ecx*4]
mov ecx, dword [edx + ecx*4 + 4]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jge 0x100788d7
mov edx, dword [ebp - 0x94]
lea eax, [edi + edi*2]
mov edi, dword [ebp - 0x98]
mov ecx, dword [edi + edx*4]
mov al, byte [ecx + eax*4]
cmp al, 9
jne 0x1007888e
mov eax, dword [ebp - 0x64]
xorps xmm1, xmm1
addss xmm0, dword [0x100f1a80]
sub esp, 8
cvtsi2ss xmm1, dword [eax + 0x38]
mulss xmm1, dword [ebp - 0xd4]
divss xmm0, xmm1
movss dword [ebp - 0x6c], xmm1
movss dword [ebp - 0x68], xmm0
fld dword [ebp - 0x68]
fstp qword [esp]
call fcn.100b87d0
movss xmm2, dword [ebp - 0x74]
add esp, 8
fstp dword [ebp - 0x68]
movss xmm0, dword [ebp - 0x68]
addss xmm0, dword [0x100f1a80]
mulss xmm0, dword [ebp - 0x6c]
subss xmm0, xmm2
jmp 0x100788dc
movss xmm3, dword [0x100f1b8c]
lea ecx, [ebp - 0x2c]
push 0
push 0
push ecx
push ecx
mov byte [ebp - 0x2c], al
lea ecx, [ebp - 0x164]
mov eax, dword [0x10104944]
mov dword [esp], 0xbf800000
push ecx
mov byte [ebp - 0x2b], 0
movss xmm2, dword [eax + 0x3bb4]
mov ecx, dword [eax + 0x3bb0]
call fcn.100691b0
movss xmm2, dword [ebp - 0x74]
movss xmm0, dword [eax]
jmp 0x100788dc
movss xmm0, dword [ebp - 0x6c]
addss xmm2, dword [ebp - 0xb0]
mov edi, dword [ebp - 0x64]
lea eax, [ebp - 0x11c]
movss xmm1, dword [ebp - 0x80]
push 0
push ecx
mov ecx, dword [ebp - 0x7c]
movss dword [ebp - 0x124], xmm2
addss xmm2, xmm0
mov dword [esp], 0
movaps xmm0, xmm1
push dword [edi + 0xe8]
addss xmm0, dword [edi + 0x21c]
push eax
lea eax, [ebp - 0x124]
movss dword [ebp - 0x120], xmm1
push eax
movss dword [ebp - 0x11c], xmm2
movss dword [ebp - 0x118], xmm0
call fcn.100656e0
cmp dword [ebp - 0x88], 0
ja 0x10078956
cmp esi, 0x320
ja 0x10078956
mov ecx, edi
jmp 0x10078970
mov eax, dword [ebp - 0xbc]
mov ecx, edi
mov dword [ecx + 0x248], eax
mov eax, dword [ebp - 0xb8]
mov dword [ecx + 0x24c], eax
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0x98]
mov edi, dword [edx + eax*4 + 4]
mov esi, dword [edx + eax*4]
cmp esi, edi
jne 0x1007898f
mov eax, dword [ecx + 0xb4]
jmp 0x10078998
push esi
call fcn.10076970
mov ecx, dword [ebp - 0x64]
mov dword [ebp - 0x88], eax
xor edx, edx
sub edi, esi
mov dword [ebp - 0x6c], edx
mov eax, 0x2aaaaaab
lea esi, [ecx + 0x230]
imul edi
xorps xmm0, xmm0
xorps xmm2, xmm2
movss dword [ebp - 0x74], xmm0
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10078c3b
mov dword [ebp - 0xbc], esi
nop dword [eax]
nop word [eax + eax]
mov eax, dword [ebp - 0x6c]
mov edx, dword [ebp - 0x94]
mov ecx, dword [ebp - 0x98]
lea edi, [eax + eax*2]
shl edi, 2
mov eax, dword [ecx + edx*4]
mov ecx, dword [ebp - 0x64]
add eax, edi
push eax
mov dword [ebp - 0x68], eax
call fcn.10076970
mov ecx, eax
mov dword [ebp - 0x84], ecx
cmp ecx, dword [ebp - 0x88]
jne 0x10078a29
mov ecx, dword [ebp - 0x68]
mov cl, byte [ecx]
cmp cl, 9
je 0x10078a29
cmp cl, 0x20
jne 0x10078b40
mov eax, dword [ebp - 0x64]
cmp dword [eax + 0x240], 0
je 0x10078b40
cmp dword [esi + 0x14], 0x10
mov edx, esi
movss xmm1, dword [ebp - 0xb0]
addss xmm1, xmm0
movss xmm0, dword [ebp - 0x80]
addss xmm0, xmm2
movss dword [ebp - 0x12c], xmm1
movss dword [ebp - 0x128], xmm0
jb 0x10078a68
mov edx, dword [esi]
test dword [ebp - 0x88], 0xff000000
je 0x10078ad5
mov ecx, edx
lea eax, [ecx + 1]
mov dword [ebp - 0xb8], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10078a80
sub ecx, dword [ebp - 0xb8]
add ecx, edx
cmp edx, ecx
je 0x10078ad5
mov eax, dword [ebp - 0x7c]
mov esi, dword [ebp - 0x7c]
push 0
push ecx
mov eax, dword [eax + 0x2c]
movups xmm0, xmmword [esi + 0x60]
mov dword [esp], 0
push ecx
movss xmm2, dword [eax + 0xc]
lea ecx, [ebp - 0x3c]
push edx
push ecx
push dword [ebp - 0x88]
lea ecx, [ebp - 0x12c]
push ecx
mov ecx, dword [eax + 8]
push esi
movups xmmword [ebp - 0x3c], xmm0
call fcn.100694b0
mov esi, dword [ebp - 0xbc]
cmp dword [esi + 0x14], 0x10
mov ecx, esi
mov eax, dword [0x10104944]
mov edx, dword [eax + 0x3bb0]
jb 0x10078aea
mov ecx, dword [esi]
mov eax, dword [0x10104944]
movss xmm3, dword [0x100f1b8c]
push 0
push 0
movss xmm2, dword [eax + 0x3bb4]
push ecx
push ecx
lea ecx, [ebp - 0x13c]
mov dword [esp], 0xbf800000
push ecx
mov ecx, edx
call fcn.100691b0
cmp dword [esi + 0x14], 0x10
mov eax, esi
movss xmm1, dword [ebp - 0x74]
addss xmm1, dword [ebp - 0x13c]
movss dword [ebp - 0x74], xmm1
jb 0x10078b36
mov eax, dword [esi]
mov dword [esi + 0x10], 0
mov byte [eax], 0
mov eax, dword [ebp - 0x84]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x68]
mov cl, byte [eax]
mov al, cl
and al, 0xfe
cmp al, 0xfc
jne 0x10078b60
mov eax, 6
jmp 0x10078b99
mov al, cl
and al, 0xfc
cmp al, 0xf8
jne 0x10078b6f
mov eax, 5
jmp 0x10078b99
mov al, cl
and al, 0xf8
cmp al, 0xf0
jne 0x10078b7e
mov eax, 4
jmp 0x10078b99
mov al, cl
and al, 0xf0
cmp al, 0xe0
jne 0x10078b8d
mov eax, 3
jmp 0x10078b99
and cl, 0xe0
xor eax, eax
cmp cl, 0xc0
sete al
inc eax
add dword [ebp - 0x6c], eax
nop dword [eax]
mov ecx, dword [ebp - 0x98]
lea edi, [edi + 0xc]
mov edx, dword [esi + 0x14]
dec eax
mov dword [ebp - 0x84], eax
mov eax, dword [ebp - 0x94]
mov eax, dword [ecx + eax*4]
mov ecx, dword [esi + 0x10]
mov al, byte [eax + edi - 0xc]
mov byte [ebp - 0x28], al
cmp ecx, edx
jae 0x10078be6
lea eax, [ecx + 1]
mov dword [esi + 0x10], eax
mov eax, esi
cmp edx, 0x10
jb 0x10078bd9
mov eax, dword [esi]
mov dl, byte [ebp - 0x28]
mov byte [eax + ecx], dl
mov byte [eax + ecx + 1], 0
jmp 0x10078bf8
push dword [ebp - 0x28]
mov ecx, esi
push dword [ebp - 0x84]
push 1
call fcn.1001ba30
mov eax, dword [ebp - 0x84]
test eax, eax
jg 0x10078ba0
mov edx, dword [ebp - 0x98]
xorps xmm2, xmm2
mov ecx, dword [ebp - 0x94]
movss xmm0, dword [ebp - 0x74]
mov eax, dword [edx + ecx*4]
mov ecx, dword [edx + ecx*4 + 4]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x6c], eax
jb 0x100789e0
mov ecx, dword [ebp - 0x64]
cmp dword [ecx + 0x240], 0
je 0x10078ce7
cmp dword [esi + 0x14], 0x10
mov edx, esi
movss xmm1, dword [ebp - 0xb0]
addss xmm1, xmm0
movss xmm0, dword [ebp - 0x80]
addss xmm0, xmm2
movss dword [ebp - 0xa0], xmm1
movss dword [ebp - 0x9c], xmm0
jb 0x10078c77
mov edx, dword [esi]
test dword [ebp - 0x88], 0xff000000
je 0x10078cd3
mov ecx, edx
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x10078c88
sub ecx, edi
add ecx, edx
cmp edx, ecx
je 0x10078cd0
mov edi, dword [ebp - 0x7c]
push 0
push ecx
mov dword [esp], 0
mov eax, dword [edi + 0x2c]
movups xmm0, xmmword [edi + 0x60]
push ecx
push edx
movss xmm2, dword [eax + 0xc]
lea ecx, [ebp - 0x3c]
push ecx
push dword [ebp - 0x88]
lea ecx, [ebp - 0xa0]
push ecx
mov ecx, dword [eax + 8]
push edi
movups xmmword [ebp - 0x3c], xmm0
call fcn.100694b0
mov ecx, dword [ebp - 0x64]
cmp dword [esi + 0x14], 0x10
mov eax, esi
jb 0x10078cdd
mov eax, dword [esi]
mov dword [esi + 0x10], 0
mov byte [eax], 0
mov esi, dword [ebp - 0x8c]
movss xmm1, dword [ebp - 0x90]
mov dword [ebp - 0x6c], esi
cmp esi, dword [ebp - 0x70]
jle 0x10077f90
mov ecx, dword [0x10104944]
movss xmm1, dword [0x100f1ba4]
movss xmm0, dword [ecx + 0xdb8]
comiss xmm0, xmm1
movss xmm2, dword [ecx + 0xdbc]
jb 0x10078d2d
comiss xmm2, xmm1
jb 0x10078d2d
mov al, 1
jmp 0x10078d2f
xor al, al
test al, al
je 0x10078ed2
mov eax, dword [ecx + 0xdb8]
mov ecx, dword [ecx + 0xdbc]
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0xa0], eax
lea eax, [ebp - 0xa0]
push eax
lea eax, [ebp - 0x164]
mov dword [ebp - 0x9c], ecx
push eax
mov ecx, edi
call fcn.10075380
push eax
lea eax, [ebp - 0x44]
mov ecx, edi
push eax
call fcn.10076820
mov dword [ebp - 4], 0
mov esi, dword [ebp - 0x34]
test esi, esi
je 0x10078e85
lea eax, [edi + 0x140]
mov edx, 0x811c9dc5
mov edi, dword [ebp - 0x30]
cmp edi, 0x10
mov dword [ebp - 0x70], eax
lea eax, [ebp - 0x44]
cmovae eax, dword [ebp - 0x44]
xor ecx, ecx
test esi, esi
je 0x10078dbc
mov edi, eax
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x10078da8
mov edi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x70]
lea eax, [ebp - 0x44]
push edx
push eax
lea eax, [ebp - 0x14c]
push eax
call fcn.1001ea50
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], eax
test eax, eax
jne 0x10078de3
mov eax, dword [ebp - 0x70]
mov eax, dword [eax + 4]
mov dword [ebp - 0x28], eax
mov ecx, dword [ebp - 0x64]
cmp eax, dword [ecx + 0x144]
je 0x10078dfd
xor ecx, ecx
call fcn.10054b20
mov ecx, dword [ebp - 0x28]
add ecx, 0x28
jmp 0x10078e6d
lea eax, [ecx + 0x160]
cmp edi, 0x10
mov dword [ebp - 0x70], eax
mov edx, 0x811c9dc5
lea eax, [ebp - 0x44]
cmovae eax, dword [ebp - 0x44]
xor ecx, ecx
mov dword [ebp - 0x84], eax
test esi, esi
je 0x10078e37
mov edi, eax
movzx eax, byte [ecx + edi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x10078e23
mov edi, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x70]
lea eax, [ebp - 0x44]
push edx
push eax
lea eax, [ebp - 0x14c]
push eax
call fcn.1001ea50
mov esi, dword [eax + 4]
test esi, esi
jne 0x10078e58
mov eax, dword [ebp - 0x70]
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0x64]
cmp esi, dword [eax + 0x164]
je 0x10078e88
xor ecx, ecx
call fcn.10054b20
lea ecx, [esi + 0x28]
cmp dword [ecx + 0x14], 0x10
jb 0x10078e75
mov ecx, dword [ecx]
push ecx
xor edx, edx
call fcn.10080ad0
add esp, 4
call fcn.100520c0
mov edi, dword [ebp - 0x30]
mov dword [ebp - 4], 0xffffffff
cmp edi, 0x10
jb 0x10078ec0
mov ecx, dword [ebp - 0x44]
inc edi
mov eax, ecx
cmp edi, 0x1000
jb 0x10078eb6
mov ecx, dword [eax - 4]
add edi, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10078fe0
push edi
push ecx
call fcn.10091115
add esp, 8
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0xf
mov byte [ebp - 0x44], 0
mov esi, dword [ebp - 0x64]
mov eax, 0x2aaaaaab
movss xmm1, dword [ebp - 0xb4]
addss xmm1, dword [0x100f1ab0]
mov ecx, dword [esi + 8]
sub ecx, dword [esi + 4]
imul ecx
movss dword [ebp - 0xa0], xmm1
mov ecx, dword [0x10104944]
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x100f1d40]
mov eax, dword [ecx + 0x3e28]
cvtpd2ps xmm4, xmm0
mulss xmm4, dword [esi + 0x21c]
mov byte [eax + 0x90], 1
mov eax, dword [ecx + 0x3e28]
movss dword [ebp - 0x9c], xmm4
cmp byte [eax + 0x93], 0
jne 0x10078fa0
movss xmm2, dword [eax + 0xd4]
lea ecx, [ebp - 0xa0]
movss xmm0, dword [eax + 0xd8]
movaps xmm3, xmm2
addss xmm3, xmm1
movss dword [ebp - 0x58], xmm2
movss xmm1, dword [0x100f1b9c]
addss xmm4, xmm0
movss dword [ebp - 0x54], xmm0
movss dword [ebp - 0x50], xmm3
movss dword [ebp - 0x4c], xmm4
call fcn.10053cd0
push 0
push 0
xor edx, edx
lea ecx, [ebp - 0x58]
call fcn.10053e30
add esp, 8
cmp byte [esi + 0x3f], 0
je 0x10078fc2
mov ecx, esi
call fcn.1007d010
mov ecx, dword [0x10104944]
mov ecx, dword [ecx + 0x3e28]
call fcn.10052290
mov byte [esi + 0x3f], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.10090ad6
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call fcn.1009b5cc
int3