Function at 0x100cb640
Capabilities:
Encode data using xor
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
push 0xffffffffffffffff
push 0x10391372
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x198
mov eax, dword [0x1049b0c0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x70], esi
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
cmp byte [eax + 8], 0
je 0x100cc9d3
call fcn.100c9060
cmp byte [0x10520c58], 0
jne 0x100cb6c4
cmp dword [esi + 0x4c], 0
je 0x100cc9d3
lea ecx, [esi + 0x44]
call fcn.100a3e60
jmp 0x100cc9d3
mov eax, dword [0x1055d084]
add eax, 0x8227453d
xor eax, 0xb5eaaa9f
cmp dword [esi + 0x4c], 0
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xa0], eax
je 0x100cc9d3
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov ecx, dword [eax + 0x154]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
movss xmm1, dword [0x1046f3bc]
mov esi, dword [esi + 0x48]
mov dword [ebp - 0x6c], esi
movss xmm0, dword [eax]
movss dword [ebp - 0xd0], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0xcc], xmm0
movss xmm0, dword [eax + 8]
movss dword [ebp - 0xc8], xmm0
movss xmm0, dword [0x10520c68]
mulss xmm0, xmm1
mov edi, dword [esi]
mov dword [ebp - 0x64], edi
cvttss2si eax, xmm0
movss xmm0, dword [0x10520c64]
mulss xmm0, xmm1
mov dword [ebp - 0xa8], eax
cvttss2si eax, xmm0
movss xmm0, dword [0x10520c60]
mulss xmm0, xmm1
mov dword [ebp - 0xb8], eax
cvttss2si eax, xmm0
movss xmm0, dword [0x10520c5c]
mulss xmm0, xmm1
mov dword [ebp - 0xb4], eax
cvttss2si eax, xmm0
mov dword [ebp - 0x9c], eax
cmp edi, esi
je 0x100cc9d3
nop dword [eax + eax]
cmp dword [edi + 8], 0
lea eax, [edi + 8]
mov dword [ebp - 0x74], eax
je 0x100cc9c6
mov ecx, dword [ebp - 0x70]
push eax
lea eax, [ebp - 0x190]
add ecx, 4
push eax
call fcn.100cce80
movss xmm1, dword [edi + 0x34]
lea ecx, [edi + 8]
xorps xmm2, xmm2
mov edx, dword [eax]
add edx, 0xc
mov dword [ebp - 0x7c], 0
ucomiss xmm1, xmm2
mov dword [ebp - 0x60], edx
lahf
test ah, 0x44
jnp 0x100cb85b
mov eax, dword [0x11b92250]
lea edx, [ebp - 0x40]
movss xmm0, dword [ecx + 0x30]
add eax, 0xc6c19814
xor eax, 0x26996288
mov dword [ebp - 0x44], 0x3f800000
lea ecx, [ebp - 0x7c]
mov dword [ebp - 0x40], 0
mov eax, dword [eax + 0x10c]
subss xmm0, dword [eax + 0x10]
andps xmm0, xmmword [0x1046f8b0]
divss xmm0, xmm1
movss xmm1, dword [0x1046f104]
comiss xmm2, xmm0
movss dword [ebp - 0x7c], xmm0
seta al
test al, al
cmove edx, ecx
lea ecx, [ebp - 0x44]
comiss xmm0, xmm1
seta al
test al, al
cmove ecx, edx
mov edx, dword [ebp - 0x60]
movss xmm0, dword [ecx]
lea ecx, [edi + 8]
movss dword [ebp - 0x7c], xmm0
jmp 0x100cb863
movss xmm1, dword [0x1046f104]
mov eax, dword [ecx + 0x4c]
sub eax, dword [ecx + 0x48]
sar eax, 4
cmp eax, 1
jbe 0x100cb877
cmp byte [ecx + 4], 0
jne 0x100cb87a
xorps xmm1, xmm1
mov eax, dword [0x1055d084]
movss xmm0, dword [edx]
add eax, 0x8227453d
xor eax, 0xb5eaaa9f
movss xmm2, dword [eax + 4]
mulss xmm2, dword [0x1046f11c]
call fcn.10049560
mov ecx, dword [ebp - 0x60]
lea edx, [ebp - 0x40]
movss xmm2, dword [0x1046f104]
xorps xmm1, xmm1
comiss xmm1, xmm0
mov dword [ebp - 0x44], 0x3f800000
mov dword [ebp - 0x40], 0
movss dword [ecx], xmm0
seta al
test al, al
cmove edx, ecx
lea ecx, [ebp - 0x44]
comiss xmm0, xmm2
seta al
test al, al
lea eax, [edi + 8]
cmove ecx, edx
movss xmm0, dword [ecx]
mov ecx, dword [ebp - 0x60]
movss dword [ecx], xmm0
cmp byte [eax + 5], 0
je 0x100cb8fb
comiss xmm0, xmm1
jbe 0x100cb8fb
movss dword [ebp - 0x34], xmm2
jmp 0x100cb900
movss dword [ebp - 0x34], xmm1
mov ecx, dword [ebp - 0x70]
push eax
lea eax, [ebp - 0x1a8]
add ecx, 0x24
push eax
call fcn.100cce80
movss xmm1, dword [ebp - 0x34]
mov ecx, dword [eax]
mov eax, dword [0x1055d084]
add ecx, 0xc
add eax, 0x8227453d
mov dword [ebp - 0x30], ecx
xor eax, 0xb5eaaa9f
movss xmm0, dword [ecx]
movss xmm2, dword [eax + 4]
mulss xmm2, dword [0x1046f11c]
call fcn.10049560
mov ecx, dword [ebp - 0x30]
lea edx, [ebp - 0x40]
movss xmm7, dword [0x1046f104]
xorps xmm3, xmm3
comiss xmm3, xmm0
mov dword [ebp - 0x44], 0x3f800000
mov dword [ebp - 0x40], 0
movss dword [ecx], xmm0
seta al
test al, al
cmove edx, ecx
lea ecx, [ebp - 0x44]
comiss xmm0, xmm7
seta al
test al, al
cmove ecx, edx
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x30]
mov dword [ecx], eax
mov eax, dword [ebp - 0x60]
comiss xmm3, dword [eax]
jae 0x100cc9c6
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
movss dword [ebp - 0x5c], xmm3
xor eax, 0x26996288
movss dword [ebp - 0x44], xmm3
movss dword [ebp - 0x40], xmm3
mov ecx, dword [eax + 0x154]
mov eax, dword [0x10541630]
mov dword [ebp - 0x50], ecx
test al, 1
jne 0x100cbb6a
or eax, 1
mov dword [0x10541630], eax
mov dword [ebp - 4], 0
mov eax, dword [0x1053ebb8]
mov ecx, dword [0x1053ebbc]
mov dword [ebp - 0x38], eax
cmp eax, ecx
je 0x100cba4c
mov dword [ebp - 0x34], eax
nop dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x58], ecx
test ecx, ecx
je 0x100cba3e
mov edx, dword [ecx + 0xc]
mov eax, 0x811c9dc5
mov dword [ebp - 0x54], edx
xor ecx, ecx
inc ecx
cmp byte [ecx + edx], 0
jne 0x100cba06
xor edx, edx
test ecx, ecx
je 0x100cba3b
mov edi, dword [ebp - 0x54]
mov esi, eax
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100cba18
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0x30], esi
cmp dword [ebp - 0x30], 0x4e9f1122
mov esi, dword [ebp - 0x6c]
je 0x100cba65
mov eax, dword [ebp - 0x34]
add eax, 4
mov dword [ebp - 0x34], eax
cmp eax, dword [0x1053ebbc]
jne 0x100cb9f0
mov edx, dword [ebp - 0x38]
xor eax, eax
mov ecx, dword [ebp - 0x50]
mov dword [0x10541634], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100cbb78
mov eax, dword [ebp - 0x58]
xor ecx, ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x68], ecx
cmp dword [eax + 4], ecx
jle 0x100cbb54
mov dword [ebp - 0x54], ecx
nop dword [eax]
mov eax, dword [eax]
add eax, ecx
mov dword [ebp - 0x38], eax
mov ecx, dword [eax + 0x28]
test ecx, ecx
je 0x100cbab4
cmp dword [ecx + 4], 0
jle 0x100cbab4
push 0
mov edx, 0x1c93bcf0
call fcn.10238b60
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x38]
test edx, edx
je 0x100cbab4
mov ecx, dword [eax + 0x2c]
add ecx, edx
add dword [ebp - 0x30], ecx
mov eax, dword [eax]
mov ecx, 0x811c9dc5
mov dword [ebp - 0x34], ecx
xor ecx, ecx
mov dword [ebp - 0x48], eax
inc ecx
cmp byte [ecx + eax], 0
jne 0x100cbac3
xor edx, edx
test ecx, ecx
je 0x100cbaf6
mov edi, dword [ebp - 0x34]
movsx eax, byte [edx + eax]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
mov eax, dword [ebp - 0x48]
cmp edx, ecx
jb 0x100cbad3
mov dword [ebp - 0x34], edi
cmp dword [ebp - 0x34], 0x1c93bcf0
mov edi, dword [ebp - 0x64]
je 0x100cbb31
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x58]
inc edx
mov ecx, dword [ebp - 0x54]
add ecx, 0x3c
mov dword [ebp - 0x68], edx
mov dword [ebp - 0x54], ecx
cmp edx, dword [eax + 4]
jl 0x100cba80
mov ecx, dword [ebp - 0x30]
mov eax, ecx
mov edx, dword [0x1053ebb8]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x38], edx
mov dword [0x10541634], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100cbb78
mov eax, dword [ebp - 0x38]
mov edx, dword [0x1053ebb8]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x38], edx
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x30]
mov dword [0x10541634], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100cbb78
mov edx, dword [ebp - 0x38]
mov eax, ecx
mov ecx, dword [ebp - 0x50]
mov dword [0x10541634], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100cbb78
mov edx, dword [0x1053ebb8]
mov eax, dword [0x10541634]
mov dword [ebp - 0x38], edx
mov eax, dword [ecx + eax]
mov dword [ebp - 0x4c], eax
mov eax, dword [0x10544908]
test al, 1
jne 0x100cbd2e
or eax, 1
mov dword [0x10544908], eax
mov dword [ebp - 4], 1
mov ecx, dword [0x1053ebbc]
cmp edx, ecx
je 0x100cbc17
mov eax, edx
mov dword [ebp - 0x30], edx
cmp eax, ecx
je 0x100cbc17
nop dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x68], ecx
test ecx, ecx
je 0x100cbc06
mov eax, dword [ecx + 0xc]
mov ecx, 0x811c9dc5
mov dword [ebp - 0x34], ecx
xor ecx, ecx
mov dword [ebp - 0x48], eax
nop dword [eax]
inc ecx
cmp byte [ecx + eax], 0
jne 0x100cbbd0
xor edx, edx
test ecx, ecx
je 0x100cbc03
mov esi, dword [ebp - 0x34]
movsx eax, byte [edx + eax]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
mov eax, dword [ebp - 0x48]
cmp edx, ecx
jb 0x100cbbe0
mov dword [ebp - 0x34], esi
cmp dword [ebp - 0x34], 0x72e242a1
mov esi, dword [ebp - 0x6c]
je 0x100cbc2d
mov eax, dword [ebp - 0x30]
add eax, 4
mov dword [ebp - 0x30], eax
cmp eax, dword [0x1053ebbc]
jne 0x100cbbb0
mov edx, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x50]
xor eax, eax
mov dword [0x105446c4], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100cbd33
mov eax, dword [ebp - 0x68]
xor ecx, ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x58], ecx
cmp dword [eax + 4], ecx
jle 0x100cbd18
mov dword [ebp - 0x54], ecx
mov eax, dword [eax]
add eax, ecx
mov dword [ebp - 0x38], eax
mov ecx, dword [eax + 0x28]
test ecx, ecx
je 0x100cbc78
cmp dword [ecx + 4], 0
jle 0x100cbc78
push 0
mov edx, 0x84cdad2
call fcn.10238b60
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x38]
test edx, edx
je 0x100cbc78
mov ecx, dword [eax + 0x2c]
add ecx, edx
add dword [ebp - 0x30], ecx
mov eax, dword [eax]
mov ecx, 0x811c9dc5
mov dword [ebp - 0x34], ecx
xor ecx, ecx
mov dword [ebp - 0x48], eax
inc ecx
cmp byte [ecx + eax], 0
jne 0x100cbc87
xor edx, edx
test ecx, ecx
je 0x100cbcba
mov edi, dword [ebp - 0x34]
movsx eax, byte [edx + eax]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
mov eax, dword [ebp - 0x48]
cmp edx, ecx
jb 0x100cbc97
mov dword [ebp - 0x34], edi
cmp dword [ebp - 0x34], 0x84cdad2
mov edi, dword [ebp - 0x64]
je 0x100cbcf5
mov edx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x68]
inc edx
mov ecx, dword [ebp - 0x54]
add ecx, 0x3c
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x54], ecx
cmp edx, dword [eax + 4]
jl 0x100cbc44
mov ecx, dword [ebp - 0x30]
mov eax, ecx
mov edx, dword [0x1053ebb8]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x38], edx
mov dword [0x105446c4], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100cbd33
mov eax, dword [ebp - 0x38]
mov edx, dword [0x1053ebb8]
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x38], edx
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x30]
mov dword [0x105446c4], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100cbd33
mov edx, dword [ebp - 0x38]
mov eax, ecx
mov ecx, dword [ebp - 0x50]
mov dword [0x105446c4], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100cbd33
mov eax, dword [0x105446c4]
cmp dword [ebp - 0x4c], 2
je 0x100cbd78
cmp dword [ecx + eax], 0
jle 0x100cbd78
movq xmm0, qword [ebp - 0xd0]
mov eax, dword [ebp - 0xc8]
movq qword [ebp - 0x98], xmm0
movss xmm5, dword [ebp - 0x94]
movss xmm4, dword [ebp - 0x98]
mov dword [ebp - 0x90], eax
movss xmm6, dword [ebp - 0x90]
jmp 0x100cbf89
mov ecx, dword [0x11b92250]
add ecx, 0xc6c19814
xor ecx, 0x26996288
mov eax, dword [ecx + 0xc8]
mov dword [ebp - 0x68], eax
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x3c], eax
mov eax, dword [ecx + 0x154]
mov dword [ebp - 0x48], eax
mov eax, dword [0x1054aa10]
test al, 1
jne 0x100cbf0e
or eax, 1
mov dword [0x1054aa10], eax
mov dword [ebp - 4], 2
cmp edx, dword [0x1053ebbc]
je 0x100cbe26
mov eax, dword [edx]
mov dword [ebp - 0x54], eax
test eax, eax
je 0x100cbe18
mov edx, dword [eax + 0xc]
xor ecx, ecx
mov dword [ebp - 0x4c], edx
mov eax, 0x811c9dc5
nop
inc ecx
cmp byte [edx + ecx], 0
jne 0x100cbde0
xor edx, edx
test ecx, ecx
je 0x100cbe15
mov edi, dword [ebp - 0x4c]
mov esi, eax
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100cbdf2
mov edi, dword [ebp - 0x64]
mov dword [ebp - 0x34], esi
cmp dword [ebp - 0x34], 0x72e242a1
mov esi, dword [ebp - 0x6c]
je 0x100cbe39
mov edx, dword [ebp - 0x38]
add edx, 4
mov dword [ebp - 0x38], edx
cmp edx, dword [0x1053ebbc]
jne 0x100cbdc8
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x1054aa20], eax
jmp 0x100cbf13
mov eax, dword [ebp - 0x54]
xor edx, edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 0x50], edx
cmp dword [eax + 4], edx
jle 0x100cbee7
xor ecx, ecx
mov dword [ebp - 0x58], ecx
mov eax, dword [eax]
add eax, ecx
mov dword [ebp - 0x38], eax
mov ecx, dword [eax + 0x28]
test ecx, ecx
je 0x100cbe86
cmp dword [ecx + 4], 0
jle 0x100cbe86
push 0
mov edx, 0x24779c4c
call fcn.10238b60
mov edx, eax
add esp, 4
mov eax, dword [ebp - 0x38]
test edx, edx
je 0x100cbe86
mov ecx, dword [eax + 0x2c]
add ecx, edx
add dword [ebp - 0x30], ecx
mov eax, dword [eax]
mov ecx, 0x811c9dc5
mov dword [ebp - 0x34], ecx
xor ecx, ecx
mov dword [ebp - 0x4c], eax
inc ecx
cmp byte [eax + ecx], 0
jne 0x100cbe95
xor edx, edx
test ecx, ecx
je 0x100cbec8
mov edi, dword [ebp - 0x34]
movsx eax, byte [eax + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
mov eax, dword [ebp - 0x4c]
cmp edx, ecx
jb 0x100cbea5
mov dword [ebp - 0x34], edi
cmp dword [ebp - 0x34], 0x24779c4c
mov edi, dword [ebp - 0x64]
je 0x100cbef7
mov edx, dword [ebp - 0x50]
mov eax, dword [ebp - 0x54]
inc edx
mov ecx, dword [ebp - 0x58]
add ecx, 0x3c
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x58], ecx
cmp edx, dword [eax + 4]
jl 0x100cbe52
mov edx, dword [ebp - 0x30]
mov eax, edx
mov dword [ebp - 4], 0xffffffff
mov dword [0x1054aa20], eax
jmp 0x100cbf13
mov eax, dword [ebp - 0x38]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x30]
mov dword [0x1054aa20], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100cbf13
mov eax, dword [0x1054aa20]
mov ecx, dword [ebp - 0x48]
push dword [ecx + eax]
mov ecx, dword [ebp - 0x68]
call dword [ebp - 0x3c]
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x100cbf6f
mov edx, dword [eax]
mov ecx, eax
mov edx, dword [edx + 0x278]
call edx
test al, al
je 0x100cbf6f
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x28]
call eax
movq xmm0, qword [eax]
mov eax, dword [eax + 8]
movq qword [ebp - 0x98], xmm0
movss xmm5, dword [ebp - 0x94]
movss xmm4, dword [ebp - 0x98]
mov dword [ebp - 0x90], eax
movss xmm6, dword [ebp - 0x90]
jmp 0x100cbf7e
movss xmm6, dword [ebp - 0x40]
movss xmm5, dword [ebp - 0x44]
movss xmm4, dword [ebp - 0x5c]
movss xmm7, dword [0x1046f104]
xorps xmm3, xmm3
mov eax, dword [0x11b92250]
lea edx, [edi + 8]
mov ecx, dword [edx + 8]
add eax, 0xc6c19814
xor eax, 0x26996288
mov dword [ebp - 0x44], ecx
mov eax, dword [eax + 0x154]
mov dword [ebp - 0x5c], eax
cmp ecx, eax
je 0x100cc06c
movaps xmm0, xmm5
movaps xmm1, xmm4
mulss xmm0, xmm5
mulss xmm1, xmm4
addss xmm1, xmm0
movaps xmm0, xmm6
mulss xmm0, xmm6
addss xmm1, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
comiss xmm0, xmm3
jbe 0x100cc06c
mov eax, dword [edx + 0x4c]
lea ecx, [ebp - 0x4c]
lea edx, [ebp - 0x3c]
mov dword [ebp - 0x48], 0x3f800000
mov dword [ebp - 0x3c], 0
movss xmm2, dword [eax - 0x10]
movss xmm1, dword [eax - 0xc]
subss xmm2, xmm4
movss xmm0, dword [eax - 8]
subss xmm1, xmm5
subss xmm0, xmm6
mulss xmm2, xmm2
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm1, xmm2
addss xmm1, xmm0
xorps xmm0, xmm0
sqrtss xmm0, xmm1
mulss xmm0, dword [0x1046ef8c]
comiss xmm3, xmm0
movss dword [ebp - 0x4c], xmm0
seta al
test al, al
cmove edx, ecx
lea ecx, [ebp - 0x48]
comiss xmm0, xmm7
movaps xmm0, xmm7
seta al
test al, al
cmove ecx, edx
subss xmm0, dword [ecx]
comiss xmm3, xmm0
movss dword [ebp - 0x40], xmm0
jae 0x100cc9c6
lea edx, [edi + 8]
jmp 0x100cc071
movss dword [ebp - 0x40], xmm7
cmp byte [edx + 5], 0
je 0x100cc0cd
mov ecx, dword [ebp - 0x70]
lea eax, [ebp - 0x198]
push edx
push eax
lea ecx, [ecx + 0x24]
call fcn.100cce80
xorps xmm3, xmm3
mov eax, dword [eax]
movss xmm0, dword [eax + 0xc]
comiss xmm0, xmm3
jbe 0x100cc0ca
mov ecx, dword [ebp - 0x70]
lea eax, [edi + 8]
push eax
lea eax, [ebp - 0x1a0]
push eax
lea ecx, [ecx + 0x24]
call fcn.100cce80
lea ecx, [ebp - 0x7c]
push ecx
mov ecx, dword [ebp - 0x70]
mov eax, dword [eax]
add eax, 0xc
push eax
lea eax, [edi + 0xc]
push eax
call fcn.100ca850
jmp 0x100cc9c6
lea edx, [edi + 8]
mov eax, dword [edx + 0x48]
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0xa8]
movzx eax, al
mov dword [ebp - 0x48], 0xff
mov dword [ebp - 0x3c], 0
movd xmm0, eax
mov eax, dword [ebp - 0x60]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax]
mulss xmm0, dword [ebp - 0x40]
mulss xmm0, dword [0x1046f0b4]
cvttss2si edx, xmm0
mov eax, edx
mov dword [ebp - 0x4c], edx
shr eax, 0x1f
test al, al
lea eax, [ebp - 0x4c]
cmove ecx, eax
cmp edx, 0xff
lea eax, [ebp - 0x48]
cmovle eax, ecx
mov ecx, dword [ebp - 0x9c]
mov byte [ebp - 0x78], cl
mov ecx, dword [ebp - 0xb4]
mov byte [ebp - 0x77], cl
mov ecx, dword [ebp - 0xb8]
mov eax, dword [eax]
mov byte [ebp - 0x76], cl
mov ecx, dword [ebp - 0xa0]
add ecx, 0x24
mov byte [ebp - 0x75], al
mov dword [ebp - 0x178], ecx
mov eax, dword [ecx]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x174], eax
mov esi, dword [ebp - 0x6c]
or eax, 3
mov dword [ebp - 4], 3
mov dword [ecx], eax
mov eax, dword [ebp - 0x44]
cmp eax, dword [ebp - 0x5c]
jne 0x100cc3e0
mov edx, dword [edi + 0x54]
mov eax, edx
mov ecx, dword [edi + 0x50]
sub eax, ecx
sar eax, 4
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x3c], ecx
cmp eax, 1
jbe 0x100cc3e0
cmp byte [0x10520c59], 0
je 0x100cc3e0
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x84], 0
mov dword [ebp - 0x80], 0
mov dword [ebp - 0x8c], 0
movss xmm0, dword [eax]
movss dword [ebp - 0xc4], xmm0
movss xmm0, dword [eax + 4]
movss dword [ebp - 0xc0], xmm0
movss xmm0, dword [eax + 8]
mov dword [ebp - 0x88], 0
movss dword [ebp - 0xbc], xmm0
cmp ecx, edx
je 0x100cc3e0
mov esi, dword [ebp - 0x78]
mov edi, ecx
mov eax, dword [0x1055d084]
lea ecx, [ebp - 0x84]
push 0
push ecx
add eax, 0x8227453d
lea ecx, [ebp - 0xc4]
xor eax, 0xb5eaaa9f
push ecx
mov ecx, eax
mov dword [ebp - 0x40], eax
call fcn.102708d0
test al, al
je 0x100cc3b6
mov ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x8c]
push 0
push eax
push edi
call fcn.102708d0
test al, al
je 0x100cc3b6
movss xmm1, dword [0x1046efa4]
mov eax, esi
shr eax, 0x18
mov dword [ebp - 0x3c], eax
mov eax, esi
shr eax, 0x10
movzx edx, al
mov eax, esi
shr eax, 8
movzx ecx, al
mov eax, dword [ebp - 0x9c]
movzx eax, al
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x130], xmm0
movd xmm0, ecx
lea ecx, [ebp - 0x130]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x12c], xmm0
movd xmm0, edx
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x128], xmm0
movd xmm0, dword [ebp - 0x3c]
cvtdq2ps xmm0, xmm0
mulss xmm0, xmm1
movss dword [ebp - 0x124], xmm0
call fcn.1004a1d0
movss xmm0, dword [ebp - 0x8c]
push ecx
mov dword [esp], 0x3f800000
push eax
lea eax, [ebp - 0x110]
movss dword [ebp - 0x110], xmm0
movss xmm0, dword [ebp - 0x88]
push eax
lea eax, [ebp - 0x118]
movss dword [ebp - 0x10c], xmm0
movss xmm0, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x40]
movss dword [ebp - 0x118], xmm0
movss xmm0, dword [ebp - 0x80]
movss dword [ebp - 0x114], xmm0
mov ecx, dword [eax + 0xc]
call fcn.100ec980
mov eax, dword [0x1055d084]
lea ecx, [ebp - 0x188]
movaps xmm0, xmmword [0x1046f6a0]
add eax, 0x8227453d
xor eax, 0xb5eaaa9f
movups xmmword [ebp - 0x188], xmm0
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x3c], eax
call fcn.1004a1d0
movss xmm0, dword [ebp - 0x8c]
push ecx
mov ecx, dword [ebp - 0x3c]
movss dword [ebp - 0x120], xmm0
movss xmm0, dword [ebp - 0x88]
mov dword [esp], 0x40000000
push eax
movss dword [ebp - 0x11c], xmm0
lea eax, [ebp - 0x120]
movss xmm0, dword [ebp - 0x84]
push eax
movss dword [ebp - 0xd8], xmm0
lea eax, [ebp - 0xd8]
movss xmm0, dword [ebp - 0x80]
push eax
movss dword [ebp - 0xd4], xmm0
call fcn.100ec980
movq xmm0, qword [edi]
mov eax, dword [edi + 8]
add edi, 0x10
movq qword [ebp - 0xc4], xmm0
mov dword [ebp - 0xbc], eax
cmp edi, dword [ebp - 0x4c]
jne 0x100cc201
mov edi, dword [ebp - 0x64]
xorps xmm3, xmm3
mov esi, dword [ebp - 0x6c]
mov eax, dword [edi + 0x54]
sub eax, dword [edi + 0x50]
sar eax, 4
cmp eax, 1
jbe 0x100cc9b3
movss xmm6, dword [edi + 0x90]
ucomiss xmm6, xmm3
lahf
test ah, 0x44
jnp 0x100cc9b3
movss xmm5, dword [edi + 0x94]
ucomiss xmm5, xmm3
lahf
test ah, 0x44
jnp 0x100cc9b3
mov eax, dword [ebp - 0x60]
mov ecx, dword [0x1055d084]
add ecx, 0x8227453d
mov dword [ebp - 0x140], 0
xor ecx, 0xb5eaaa9f
mov dword [ebp - 0x13c], 0
movss xmm0, dword [eax]
mulss xmm0, dword [0x1046f3bc]
mov dword [ebp - 0x138], 0
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x140]
subss xmm0, dword [0x1046f32c]
cvttss2si eax, xmm0
movzx eax, al
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1046efa4]
movss dword [ebp - 0x134], xmm0
call fcn.1004a1d0
movss xmm2, dword [0x1046f258]
mov ecx, dword [ebp - 0x3c]
push 0x24
push eax
lea eax, [ebp - 0xe0]
movss dword [ebp - 0xe0], xmm6
push eax
movss dword [ebp - 0xdc], xmm5
call fcn.100ed320
mov eax, dword [ebp - 0x60]
mov ecx, dword [0x1055d084]
movss xmm6, dword [edi + 0x94]
add ecx, 0x8227453d
movss xmm5, dword [edi + 0x90]
xor ecx, 0xb5eaaa9f
movss xmm0, dword [eax]
mulss xmm0, dword [0x1046f3bc]
mov dword [ebp - 0x150], 0x3d70f0f2
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x3c], ecx
lea ecx, [ebp - 0x150]
cvttss2si eax, xmm0
mov dword [ebp - 0x14c], 0x3d70f0f2
mov dword [ebp - 0x148], 0x3d70f0f2
movzx eax, al
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1046efa4]
movss dword [ebp - 0x144], xmm0
call fcn.1004a1d0
movss xmm2, dword [0x1046f270]
mov ecx, dword [ebp - 0x3c]
push 0x24
push eax
lea eax, [ebp - 0xe8]
movss dword [ebp - 0xe8], xmm5
push eax
movss dword [ebp - 0xe4], xmm6
call fcn.100ed320
mov eax, dword [0x1055d084]
movss xmm0, dword [edi + 0x90]
add eax, 0x8227453d
movss xmm1, dword [edi + 0x94]
xor eax, 0xb5eaaa9f
push 0x92
push 0x1b0
mov dword [ebp - 0x30], eax
mov ecx, dword [eax + 0xc]
movss dword [ebp - 0x4c], xmm0
movss dword [ebp - 0x3c], xmm1
movss dword [ebp - 0xf8], xmm0
movss dword [ebp - 0xf4], xmm1
call fcn.100eaba0
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx + 0x28]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0xf0], edx
movaps xmm0, xmmword [0x1046f600]
mov dword [ebp - 0xec], eax
mov eax, dword [ecx + 0x34]
lea ecx, [ebp - 0x188]
movups xmmword [ebp - 0x188], xmm0
mov dword [ebp - 0x50], eax
movaps xmm0, xmmword [0x1046f690]
movups xmmword [ebp - 0x24], xmm0
mov dword [ebp - 0x34], 0
call fcn.1004a1d0
mov dword [ebp - 0x5c], eax
nop word [eax + eax]
movd xmm1, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
cvtdq2ps xmm1, xmm1
mov ecx, dword [eax + 0xc]
mov dword [ebp - 0x48], ecx
mulss xmm1, dword [0x1046efe8]
movaps xmm0, xmm1
call fcn.10387910
mov ecx, dword [ebp - 0x48]
movaps xmm1, xmm0
mulss xmm1, dword [0x1046f258]
mov edx, dword [ebp - 0x40]
shufps xmm0, xmm0, 1
mulss xmm0, dword [0x1046f258]
mov eax, dword [ecx + 0x38]
addss xmm1, dword [ebp - 0x3c]
addss xmm0, dword [ebp - 0x4c]
movss dword [eax], xmm0
movss dword [eax + 4], xmm1
mov eax, dword [ecx + 0x38]
mov dword [eax + 8], edx
mov edx, dword [ebp - 0x44]
mov dword [eax + 0xc], edx
mov eax, dword [ecx + 0x38]
mov edx, dword [ebp - 0x5c]
mov dword [eax + 0x10], edx
mov eax, dword [ebp - 0x34]
add dword [ecx + 0x38], 0x14
inc eax
inc dword [ecx + 0x34]
mov dword [ebp - 0x34], eax
cmp eax, 0x91
jl 0x100cc610
lea ecx, [ebp - 0x24]
call fcn.1004a1d0
mov edi, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0xf0]
push eax
mov ecx, dword [edi + 0xc]
lea eax, [ebp - 0xf8]
push eax
call fcn.100c6690
mov eax, dword [ebp - 0x50]
xor esi, esi
movzx eax, ax
mov edx, eax
add eax, 0x91
movzx eax, ax
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
mov ecx, dword [edi + 0xc]
add edx, esi
mov eax, dword [ecx + 0x3c]
mov word [eax], dx
add dword [ecx + 0x3c], 2
mov edx, dword [edi + 0xc]
mov ecx, dword [ebp - 0x40]
inc ecx
add ecx, esi
inc esi
mov eax, dword [edx + 0x3c]
mov word [eax], cx
add dword [edx + 0x3c], 2
mov ecx, dword [edi + 0xc]
mov edx, dword [ebp - 0x3c]
mov eax, dword [ecx + 0x3c]
mov word [eax], dx
add dword [ecx + 0x3c], 2
mov edx, dword [ebp - 0x40]
cmp esi, 0x90
jl 0x100cc6c8
mov eax, dword [0x1055d084]
mov edi, dword [ebp - 0x64]
add eax, 0x8227453d
mov esi, dword [ebp - 0x6c]
xor eax, 0xb5eaaa9f
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x74]
add eax, 0x54
cmp dword [eax + 0x14], 0xf
jbe 0x100cc72c
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x2c]
call fcn.10033f10
mov ecx, dword [ebp - 0x60]
mov byte [ebp - 4], 4
mov eax, dword [0x1055d084]
add eax, 0x8227453d
movss xmm0, dword [ecx]
xor eax, 0xb5eaaa9f
mulss xmm0, dword [0x1046f3bc]
add eax, 0xc8
cmp dword [ebp - 0x18], 0xf
mov dword [ebp - 0x3c], eax
mov edx, dword [eax]
cvttss2si ecx, xmm0
mov dword [ebp - 0x44], edx
movss xmm0, dword [edi + 0x94]
movss dword [ebp - 0x50], xmm0
movss xmm0, dword [edi + 0x90]
movss dword [ebp - 0x48], xmm0
movss xmm0, dword [eax + 4]
lea eax, [ebp - 0x2c]
cmova eax, dword [ebp - 0x2c]
mov dword [ebp - 0x40], eax
mov eax, dword [edx + 0x38]
mov dword [ebp - 0x4c], ecx
mov ecx, dword [ebp - 0x30]
movss dword [ebp - 0x5c], xmm0
mov eax, dword [eax + 8]
mov dword [ebp - 0xa4], eax
lea eax, [ebp - 0xa4]
mov ecx, dword [ecx + 0xc]
mov dword [ebp - 0x74], ecx
add ecx, 0x4c
push eax
call fcn.100e1f30
mov ecx, dword [ebp - 0x74]
call fcn.100ea8c0
cmp dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x3c]
mov ecx, dword [eax]
movss xmm2, dword [eax + 4]
je 0x100cc832
cmp dword [ebp - 0x18], 0xf
lea eax, [ebp - 0x2c]
movss xmm3, dword [0x1046f470]
cmova eax, dword [ebp - 0x2c]
push 0
push 0
push eax
push ecx
lea eax, [ebp - 0xb0]
mov dword [esp], 0xbf800000
push eax
call fcn.100f07f0
movss xmm0, dword [ebp - 0xb0]
addss xmm0, dword [0x1046f100]
movss xmm2, dword [ebp - 0xac]
cvttss2si eax, xmm0
movd xmm1, eax
cvtdq2ps xmm1, xmm1
movss dword [ebp - 0xb0], xmm1
jmp 0x100cc835
xorps xmm1, xmm1
mov eax, dword [ebp - 0x4c]
lea ecx, [ebp - 0x160]
movzx eax, al
mulss xmm1, dword [0x1046f094]
mov dword [ebp - 0x74], eax
mulss xmm2, dword [0x1046f094]
mov dword [ebp - 0x160], 0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x15c], 0
mov dword [ebp - 0x158], 0
movss xmm5, dword [ebp - 0x48]
mulss xmm0, dword [0x1046f058]
subss xmm5, xmm1
movss xmm6, dword [ebp - 0x50]
subss xmm6, xmm2
cvttss2si eax, xmm0
movss dword [ebp - 0x108], xmm5
movzx eax, al
movss dword [ebp - 0x104], xmm6
movd xmm0, eax
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x1046efa4]
movss dword [ebp - 0x154], xmm0
call fcn.1004a1d0
addss xmm5, dword [0x1046f104]
addss xmm6, dword [0x1046f104]
movss xmm2, dword [ebp - 0x5c]
push 0
push ecx
mov dword [esp], 0
push 0
push dword [ebp - 0x40]
movss dword [ebp - 0x100], xmm5
push eax
lea eax, [ebp - 0x100]
movss dword [ebp - 0xfc], xmm6
push eax
mov eax, dword [ebp - 0x30]
push dword [ebp - 0x44]
mov ecx, dword [eax + 0xc]
call fcn.100ed390
movd xmm0, dword [ebp - 0x74]
lea ecx, [ebp - 0x170]
cvtdq2ps xmm0, xmm0
mov dword [ebp - 0x170], 0x3f800000
mov dword [ebp - 0x16c], 0x3f800000
mov dword [ebp - 0x168], 0x3f800000
mulss xmm0, dword [0x1046efa4]
movss dword [ebp - 0x164], xmm0
call fcn.1004a1d0
movss xmm2, dword [ebp - 0x5c]
push 0
push ecx
mov dword [esp], 0
push 0
push dword [ebp - 0x40]
push eax
lea eax, [ebp - 0x108]
push eax
mov eax, dword [ebp - 0x30]
push dword [ebp - 0x44]
mov ecx, dword [eax + 0xc]
call fcn.100ed390
mov eax, dword [ebp - 0x30]
mov ecx, dword [eax + 0xc]
dec dword [ecx + 0x4c]
call fcn.100ea8c0
mov eax, dword [ebp - 0x18]
cmp eax, 0xf
jbe 0x100cc9a1
push eax
push dword [ebp - 0x2c]
lea eax, [ebp - 0x2c]
push eax
call fcn.10034640
add esp, 0xc
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], 0
mov ecx, dword [ebp - 0xa0]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x58]
mov dword [ecx + 0x24], eax
mov edi, dword [edi]
mov dword [ebp - 0x64], edi
cmp edi, esi
jne 0x100cb7a0
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.102fe398
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret