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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x102311b3
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x1d8
mov eax, dword [0x102d5080]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0xdc], ecx
mov ecx, dword [0x107f41c0]
add ecx, 0x1efd30ca
xor ecx, 0xd7168c7a
add ecx, 0xc0
mov dword [ebp - 0x84], ecx
je 0x1014d662
mov edi, dword [0x107f41e8]
add edi, 0xdee113ef
xor edi, 0xb3e5279a
add edi, 0x3cbe40
mov dword [ebp - 0xc0], edi
je 0x1014d662
mov eax, dword [0x10bbf240]
add eax, 0xaff3cc8c
xor eax, 0x3743f7af
mov eax, dword [eax + 0x134]
mov dword [ebp - 0x80], eax
mov eax, dword [0x10373cb0]
test al, 1
jne 0x1014c2e8
or eax, 1
mov dword [0x10373cb0], eax
mov dword [ebp - 4], 0
mov eax, dword [0x10371278]
mov ecx, dword [0x1037127c]
mov dword [ebp - 0x7c], eax
cmp eax, ecx
je 0x1014c1ad
mov dword [ebp - 0x74], eax
nop dword [eax + eax]
mov ecx, dword [eax]
mov dword [ebp - 0x98], ecx
test ecx, ecx
je 0x1014c19f
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x1014c176
xor edx, edx
test ecx, ecx
je 0x1014c19f
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x1014c183
cmp esi, 0x72e242a1
je 0x1014c1cc
mov eax, dword [ebp - 0x74]
add eax, 4
mov dword [ebp - 0x74], eax
cmp eax, dword [0x1037127c]
jne 0x1014c160
mov esi, dword [0x10371278]
xor eax, eax
mov ecx, dword [ebp - 0x84]
mov dword [0x10375558], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1014c2f6
mov eax, dword [ebp - 0x98]
xor edi, edi
mov dword [ebp - 0x94], edi
mov dword [ebp - 0x74], edi
cmp dword [eax + 4], edi
jle 0x1014c2cc
xor ecx, ecx
mov dword [ebp - 0x78], ecx
nop dword [eax + eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0xb0], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1014c22d
cmp dword [ecx + 4], 0
jle 0x1014c22d
push 0
mov edx, 0xf3e9a9ed
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1014c227
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x94], edi
mov eax, dword [ebp - 0x98]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
inc ecx
cmp byte [ecx + edi], 0
jne 0x1014c236
xor edx, edx
test ecx, ecx
je 0x1014c262
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x1014c243
cmp esi, 0xf3e9a9ed
je 0x1014c2a0
mov eax, dword [ebp - 0x98]
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x78]
inc edx
mov edi, dword [ebp - 0x94]
add ecx, 0x3c
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x78], ecx
cmp edx, dword [eax + 4]
jl 0x1014c1f0
mov esi, dword [0x10371278]
mov eax, edi
mov ecx, dword [ebp - 0x84]
mov dword [ebp - 0x7c], esi
mov dword [0x10375558], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1014c2f6
mov eax, dword [ebp - 0xb0]
mov esi, dword [0x10371278]
mov ecx, dword [ebp - 0x84]
mov dword [ebp - 0x7c], esi
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x94]
mov dword [0x10375558], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1014c2f6
mov esi, dword [0x10371278]
mov eax, edi
mov ecx, dword [ebp - 0x84]
mov dword [0x10375558], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1014c2f6
mov esi, dword [0x10371278]
mov eax, dword [0x10375558]
mov dword [ebp - 0x7c], esi
mov edx, dword [ebp - 0x80]
cmp byte [edx + eax], 0
mov eax, dword [0x10bbf240]
je 0x1014c31e
add eax, 0xaff3cc8c
xor eax, 0x3743f7af
mov eax, dword [eax + 0x13c]
movss xmm2, dword [eax + 0x138]
jmp 0x1014c336
add eax, 0xaff3cc8c
xor eax, 0x3743f7af
mov eax, dword [eax + 0x13c]
movss xmm2, dword [eax + 0x134]
movss xmm3, dword [ecx + 0x58]
movss xmm4, dword [ecx + 0x5c]
movaps xmm0, xmm3
movss xmm5, dword [ecx + 0x60]
movaps xmm1, xmm4
mulss xmm0, xmm3
mulss xmm1, xmm4
movups xmmword [ebp - 0x140], xmm3
addss xmm0, xmm1
movss dword [ebp - 0xf0], xmm4
movss dword [ebp - 0xf4], xmm5
call fcn.1000ded0
maxss xmm0, dword [0x102bd7ac]
xor eax, eax
mov edi, dword [ebp - 0xc0]
mov dword [ebp - 0xe0], eax
lea ecx, [ebp - 0xe0]
mov dword [ebp - 0xe8], 0xe
divss xmm0, xmm2
mulss xmm0, dword [0x102bd87c]
subss xmm0, dword [0x102bd7ac]
cvttss2si edx, xmm0
test edx, edx
cmovs edx, eax
mov eax, edx
mov dword [ebp - 0xe4], edx
shr eax, 0x1f
test al, al
lea eax, [ebp - 0xe4]
cmove ecx, eax
cmp edx, 0xe
lea eax, [ebp - 0xe8]
cmovle eax, ecx
mov eax, dword [eax]
mov dword [ebp - 0xec], eax
test eax, eax
jne 0x1014c3fc
mov ecx, dword [ebp - 0xdc]
movq xmm0, qword [edi + 0x24]
movq qword [ecx + 0x24], xmm0
mov eax, dword [edi + 0x2c]
jmp 0x1014d65f
xor edi, edi
mov dword [ebp - 0xb0], edi
test eax, eax
jle 0x1014d62e
nop dword [eax]
mov edx, dword [0x10bbf240]
lea eax, [edi + 1]
add edx, 0xaff3cc8c
movd xmm0, eax
mov eax, dword [ebp - 0xc0]
xor edx, 0x3743f7af
cvtdq2ps xmm0, xmm0
mov ecx, dword [edx + 0xf0]
movaps xmm6, xmm3
movaps xmm7, xmm4
mulss xmm0, dword [ecx + 0x20]
mulss xmm6, xmm0
mulss xmm7, xmm0
mulss xmm5, xmm0
movaps xmm2, xmm6
addss xmm2, dword [eax + 0x24]
movaps xmm1, xmm7
movss dword [ebp - 0x8c], xmm6
addss xmm1, dword [eax + 0x28]
movaps xmm0, xmm5
movss dword [ebp - 0x94], xmm7
addss xmm0, dword [eax + 0x2c]
movss dword [ebp - 0xd8], xmm2
movss dword [ebp - 0x98], xmm5
movss dword [ebp - 0xd4], xmm1
movss dword [ebp - 0xbc], xmm6
movss dword [ebp - 0xd0], xmm0
mov eax, dword [edx + 0x134]
mov dword [ebp - 0x88], eax
mov eax, dword [0x10375568]
movss dword [ebp - 0xb8], xmm7
movss dword [ebp - 0xb4], xmm5
test al, 1
jne 0x1014c64d
or eax, 1
mov dword [0x10375568], eax
mov dword [ebp - 4], 1
mov ecx, dword [0x1037127c]
cmp esi, ecx
je 0x1014c540
mov eax, esi
mov dword [ebp - 0x74], esi
cmp eax, ecx
je 0x1014c540
nop word [eax + eax]
mov ecx, dword [eax]
mov dword [ebp - 0x90], ecx
test ecx, ecx
je 0x1014c52f
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1014c506
xor edx, edx
test ecx, ecx
je 0x1014c52f
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1014c513
cmp edi, 0x72e242a1
je 0x1014c554
mov eax, dword [ebp - 0x74]
add eax, 4
mov dword [ebp - 0x74], eax
cmp eax, dword [0x1037127c]
jne 0x1014c4f0
mov esi, dword [ebp - 0x7c]
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
mov dword [0x10373c68], ecx
jmp 0x1014c653
mov eax, dword [ebp - 0x90]
xor edi, edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x74], edi
cmp dword [eax + 4], edi
jle 0x1014c639
xor ecx, ecx
mov dword [ebp - 0x7c], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1014c5aa
cmp dword [ecx + 4], 0
jle 0x1014c5aa
push 0
mov edx, 0xa4a37590
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1014c5a4
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x78], edi
mov eax, dword [ebp - 0x90]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1014c5b3
xor edx, edx
test ecx, ecx
je 0x1014c5df
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1014c5c0
cmp edi, 0xa4a37590
je 0x1014c615
mov eax, dword [ebp - 0x90]
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x7c]
inc edx
mov edi, dword [ebp - 0x78]
add ecx, 0x3c
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x7c], ecx
cmp edx, dword [eax + 4]
jl 0x1014c570
mov esi, dword [0x10371278]
mov ecx, edi
mov dword [ebp - 0x7c], esi
mov dword [0x10373c68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1014c653
mov eax, dword [ebp - 0x84]
mov esi, dword [0x10371278]
mov dword [ebp - 0x7c], esi
mov ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x78]
mov dword [0x10373c68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1014c653
mov esi, dword [ebp - 0x7c]
mov ecx, edi
mov dword [0x10373c68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1014c653
mov ecx, dword [0x10373c68]
mov eax, dword [ebp - 0x88]
mov edx, dword [0x10bbf240]
add edx, 0xaff3cc8c
xor edx, 0x3743f7af
mov al, byte [eax + ecx]
and al, 1
mov byte [ebp - 0x99], al
mov eax, dword [edx + 0x134]
mov dword [ebp - 0x90], eax
mov eax, dword [0x1109cdfc]
test al, 1
jne 0x1014c6a1
or eax, 1
mov dword [0x1109cdfc], eax
mov edi, dword [edx + 0x1ec]
mov dword [0x1109ce24], edi
jmp 0x1014c6a7
mov edi, dword [0x1109ce24]
test al, 2
jne 0x1014c6c0
or eax, 2
mov dword [0x1109cdfc], eax
mov eax, dword [edx + 0x21c]
mov dword [0x1109ce10], eax
jmp 0x1014c6c5
mov eax, dword [0x1109ce10]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x88]
test byte [eax + ecx], 1
jne 0x1014c706
mov eax, dword [edi + 0x1c]
mov eax, dword [eax + 0x2c]
xor eax, edi
mov dword [ebp - 0x84], eax
mov eax, dword [edx + 0xf0]
movss xmm0, dword [ebp - 0x84]
mulss xmm0, dword [eax + 0x20]
subss xmm5, xmm0
movss dword [ebp - 0xb4], xmm5
jmp 0x1014c7bb
mov eax, dword [0x10375568]
test al, 1
jne 0x1014c78d
or eax, 1
mov dword [0x10375568], eax
mov dword [ebp - 4], 2
cmp esi, dword [0x1037127c]
je 0x1014c77e
mov eax, dword [esi]
mov dword [ebp - 0x78], eax
test eax, eax
je 0x1014c770
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1014c740
xor edx, edx
test ecx, ecx
je 0x1014c76d
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1014c750
cmp edi, 0x72e242a1
je 0x1014c935
mov esi, dword [ebp - 0x7c]
add esi, 4
mov dword [ebp - 0x7c], esi
cmp esi, dword [0x1037127c]
jne 0x1014c726
xor ecx, ecx
mov dword [0x10373c68], ecx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x90]
test byte [eax + ecx], 1
je 0x1014c7c3
cmp byte [ebp - 0x99], 0
jne 0x1014c7c3
mov ecx, dword [ebp - 0x80]
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax + 0x2c]
xor eax, ecx
mov dword [ebp - 0xb4], eax
movss xmm5, dword [ebp - 0xb4]
movss dword [ebp - 0x98], xmm5
mov eax, dword [ebp - 0xd0]
lea ecx, [ebp - 0x70]
movss xmm3, dword [ebp - 0xd8]
movss xmm4, dword [ebp - 0xd4]
movaps xmm0, xmm3
mov dword [ebp - 0x11c], eax
mov eax, dword [0x10bbf240]
add eax, 0xaff3cc8c
unpcklps xmm0, xmm4
movq qword [ebp - 0xd8], xmm0
xor eax, 0x3743f7af
movq qword [ebp - 0x124], xmm0
mov eax, dword [eax + 0xf0]
movss xmm2, dword [eax + 0x20]
movaps xmm1, xmm2
movaps xmm0, xmm2
mulss xmm1, xmm6
mulss xmm0, xmm7
mulss xmm2, xmm5
addss xmm1, xmm3
addss xmm0, xmm4
addss xmm2, dword [ebp - 0xd0]
movss dword [ebp - 0xcc], xmm1
movss dword [ebp - 0xc8], xmm0
movss dword [ebp - 0xc4], xmm2
call fcn.1002f4f0
push 1
mov dword [ebp - 0x100], 0x102b670c
call fcn.101f3bac
mov dword [ebp - 0xf8], eax
add esp, 4
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xfc], eax
mov eax, dword [0x10bbf240]
add eax, 0xaff3cc8c
xor eax, 0x3743f7af
mov eax, dword [eax + 0xf8]
mov dword [ebp - 0xa4], eax
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xa0], eax
mov eax, dword [0x103754d4]
test al, 1
jne 0x1014caee
or eax, 1
mov dword [0x103754d4], eax
mov dword [ebp - 4], 3
mov eax, dword [0x10371278]
mov ecx, dword [0x1037127c]
mov dword [ebp - 0x7c], eax
cmp eax, ecx
je 0x1014c91e
mov dword [ebp - 0x80], eax
nop
mov ecx, dword [eax]
mov dword [ebp - 0x78], ecx
test ecx, ecx
je 0x1014c910
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1014c8e3
xor edx, edx
test ecx, ecx
je 0x1014c910
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1014c8f0
cmp edi, 0x1eee87cc
je 0x1014c9f6
mov eax, dword [ebp - 0x80]
add eax, 4
mov dword [ebp - 0x80], eax
cmp eax, dword [0x1037127c]
jne 0x1014c8d0
mov eax, dword [ebp - 0x7c]
xor ecx, ecx
mov dword [0x10373c98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1014cafc
mov eax, dword [ebp - 0x78]
xor edi, edi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x88], edi
cmp dword [eax + 4], edi
jle 0x1014c9de
xor ecx, ecx
mov dword [ebp - 0x74], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1014c988
cmp dword [ecx + 4], 0
jle 0x1014c988
push 0
mov edx, 0xa4a37590
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1014c985
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x7c], edi
mov eax, dword [ebp - 0x78]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1014c991
xor edx, edx
test ecx, ecx
je 0x1014c9bc
nop
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1014c9a0
cmp edi, 0xa4a37590
je 0x1014c9e5
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x74]
inc edx
mov edi, dword [ebp - 0x7c]
add ecx, 0x3c
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x74], ecx
cmp edx, dword [eax + 4]
jl 0x1014c951
mov ecx, edi
jmp 0x1014c780
mov eax, dword [ebp - 0x84]
mov ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x7c]
jmp 0x1014c780
mov eax, dword [ebp - 0x78]
xor edi, edi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x80], edi
cmp dword [eax + 4], edi
jle 0x1014cada
xor ecx, ecx
mov dword [ebp - 0x88], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1014ca49
cmp dword [ecx + 4], 0
jle 0x1014ca49
push 0
mov edx, 0x7d388d3e
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1014ca46
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x74], edi
mov eax, dword [ebp - 0x78]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1014ca52
xor edx, edx
test ecx, ecx
je 0x1014ca7c
nop
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1014ca60
cmp edi, 0x7d388d3e
je 0x1014cab7
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x88]
inc edx
mov edi, dword [ebp - 0x74]
add ecx, 0x3c
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x88], ecx
cmp edx, dword [eax + 4]
jl 0x1014ca12
mov eax, dword [0x10371278]
mov ecx, edi
mov dword [ebp - 0x7c], eax
mov dword [0x10373c98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1014cafc
mov eax, dword [ebp - 0x84]
mov ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x74]
mov eax, dword [0x10371278]
mov dword [ebp - 0x7c], eax
mov dword [0x10373c98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1014cafc
mov eax, dword [ebp - 0x7c]
mov ecx, edi
mov dword [0x10373c98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1014cafc
mov eax, dword [0x10371278]
mov ecx, dword [0x10373c98]
mov dword [ebp - 0x7c], eax
add ecx, dword [ebp - 0x90]
mov dword [ebp - 0xac], ecx
mov ecx, dword [0x10373c60]
test cl, 1
jne 0x1014cc68
or ecx, 1
mov dword [0x10373c60], ecx
mov dword [ebp - 4], 4
cmp eax, dword [0x1037127c]
je 0x1014cb7a
nop
mov ecx, dword [eax]
mov dword [ebp - 0x74], ecx
test ecx, ecx
je 0x1014cb6c
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1014cb43
xor edx, edx
test ecx, ecx
je 0x1014cb6c
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1014cb50
cmp edi, 0x1eee87cc
je 0x1014cb8d
mov eax, dword [ebp - 0x7c]
add eax, 4
mov dword [ebp - 0x7c], eax
cmp eax, dword [0x1037127c]
jne 0x1014cb30
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x10373c78], eax
jmp 0x1014cc6d
mov eax, dword [ebp - 0x74]
xor edi, edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x80], edi
cmp dword [eax + 4], edi
jle 0x1014cc3e
xor ecx, ecx
mov dword [ebp - 0x88], ecx
nop dword [eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1014cbe7
cmp dword [ecx + 4], 0
jle 0x1014cbe7
push 0
mov edx, 0xe57f80c
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1014cbe4
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x78], edi
mov eax, dword [ebp - 0x74]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1014cbf0
xor edx, edx
test ecx, ecx
je 0x1014cc1c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1014cc00
cmp edi, 0xe57f80c
je 0x1014cc4e
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x88]
inc edx
mov edi, dword [ebp - 0x78]
add ecx, 0x3c
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x88], ecx
cmp edx, dword [eax + 4]
jl 0x1014cbb0
mov eax, edi
mov dword [ebp - 4], 0xffffffff
mov dword [0x10373c78], eax
jmp 0x1014cc6d
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x78]
mov dword [0x10373c78], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1014cc6d
mov eax, dword [0x10373c78]
push dword [ebp - 0xac]
add eax, dword [ebp - 0x90]
lea ecx, [ebp - 0x190]
push eax
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0x124]
push eax
call fcn.10052f30
lea ecx, [ebp - 0x70]
push ecx
lea ecx, [ebp - 0x100]
push ecx
mov ecx, dword [ebp - 0xa4]
push 0x201400b
push eax
call dword [ebp - 0xa0]
movss xmm3, dword [ebp - 0x44]
ucomiss xmm3, dword [0x102bd7ac]
lahf
test ah, 0x44
jnp 0x1014d1f5
mov dword [ebp - 0x84], 0
movss xmm4, dword [ebp - 0x54]
movss xmm5, dword [ebp - 0x58]
movaps xmm2, xmm4
mulss xmm2, dword [ebp - 0x94]
movaps xmm0, xmm5
mulss xmm0, dword [ebp - 0x8c]
movss xmm6, dword [ebp - 0x50]
movss xmm7, dword [ebp - 0x98]
addss xmm2, xmm0
movss xmm3, dword [ebp - 0x8c]
movaps xmm0, xmm6
mulss xmm0, xmm7
addss xmm2, xmm0
movaps xmm0, xmm2
movaps xmm1, xmm2
mulss xmm0, xmm5
mulss xmm2, xmm6
subss xmm3, xmm0
mulss xmm1, xmm4
subss xmm7, xmm2
movaps xmm2, xmm4
movaps xmm0, xmm3
movss dword [ebp - 0x8c], xmm3
movss dword [ebp - 0xbc], xmm0
movss xmm0, dword [ebp - 0x94]
subss xmm0, xmm1
movss dword [ebp - 0x98], xmm7
movss dword [ebp - 0xb4], xmm7
mulss xmm2, xmm0
movss dword [ebp - 0x94], xmm0
movss dword [ebp - 0xb8], xmm0
movaps xmm0, xmm5
mulss xmm0, xmm3
movss xmm3, dword [ebp - 0x44]
addss xmm2, xmm0
movaps xmm0, xmm7
mulss xmm0, xmm6
addss xmm2, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm2
jbe 0x1014cdf7
movaps xmm0, xmm2
movaps xmm1, xmm2
mulss xmm0, xmm5
mulss xmm1, xmm4
movss xmm4, dword [ebp - 0x8c]
subss xmm4, xmm0
mulss xmm2, xmm6
movss xmm0, dword [ebp - 0x94]
subss xmm0, xmm1
subss xmm7, xmm2
movss dword [ebp - 0x8c], xmm4
movss dword [ebp - 0xbc], xmm4
movss dword [ebp - 0x94], xmm0
movss dword [ebp - 0xb8], xmm0
movss dword [ebp - 0x98], xmm7
movss dword [ebp - 0xb4], xmm7
jmp 0x1014cdff
movss xmm4, dword [ebp - 0x8c]
mov ecx, dword [0x10bbf240]
movss xmm1, dword [0x102bd7ac]
add ecx, 0xaff3cc8c
xor ecx, 0x3743f7af
subss xmm1, xmm3
mov eax, dword [ecx + 0xf0]
mulss xmm1, dword [eax + 0x20]
movaps xmm2, xmm1
movaps xmm0, xmm1
mulss xmm0, dword [ebp - 0x94]
mulss xmm2, xmm4
addss xmm0, dword [ebp - 0x60]
mulss xmm1, xmm7
addss xmm2, dword [ebp - 0x64]
addss xmm1, dword [ebp - 0x5c]
unpcklps xmm2, xmm0
movq qword [ebp - 0xcc], xmm2
movss dword [ebp - 0x110], xmm1
mov eax, dword [ebp - 0x110]
mov dword [ebp - 0xc4], eax
mov eax, dword [ecx + 0xf8]
mov dword [ebp - 0xac], eax
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xa8], eax
mov eax, dword [0x103754d4]
test al, 1
jne 0x1014d00e
or eax, 1
mov dword [0x103754d4], eax
mov dword [ebp - 4], 5
mov eax, dword [0x10371278]
mov ecx, dword [0x1037127c]
mov dword [ebp - 0x7c], eax
cmp eax, ecx
je 0x1014cefe
mov dword [ebp - 0x80], eax
mov ecx, dword [eax]
mov dword [ebp - 0x74], ecx
test ecx, ecx
je 0x1014cef0
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1014cec7
xor edx, edx
test ecx, ecx
je 0x1014cef0
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1014ced4
cmp edi, 0x1eee87cc
je 0x1014cf15
mov eax, dword [ebp - 0x80]
add eax, 4
mov dword [ebp - 0x80], eax
cmp eax, dword [0x1037127c]
jne 0x1014ceb4
mov eax, dword [ebp - 0x7c]
xor ecx, ecx
mov dword [0x10373c98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1014d01c
mov eax, dword [ebp - 0x74]
xor edi, edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x80], edi
cmp dword [eax + 4], edi
jle 0x1014cffa
xor ecx, ecx
mov dword [ebp - 0x88], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0xa0], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1014cf68
cmp dword [ecx + 4], 0
jle 0x1014cf68
push 0
mov edx, 0x7d388d3e
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1014cf65
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x78], edi
mov eax, dword [ebp - 0x74]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1014cf71
xor edx, edx
test ecx, ecx
je 0x1014cf9c
nop
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1014cf80
cmp edi, 0x7d388d3e
je 0x1014cfd7
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x88]
inc edx
mov edi, dword [ebp - 0x78]
add ecx, 0x3c
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x88], ecx
cmp edx, dword [eax + 4]
jl 0x1014cf31
mov eax, dword [0x10371278]
mov ecx, edi
mov dword [ebp - 0x7c], eax
mov dword [0x10373c98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1014d01c
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x78]
mov eax, dword [0x10371278]
mov dword [ebp - 0x7c], eax
mov dword [0x10373c98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1014d01c
mov eax, dword [ebp - 0x7c]
mov ecx, edi
mov dword [0x10373c98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1014d01c
mov eax, dword [0x10371278]
mov ecx, dword [0x10373c98]
mov dword [ebp - 0x7c], eax
add ecx, dword [ebp - 0x90]
mov dword [ebp - 0xa4], ecx
mov ecx, dword [0x10373c60]
test cl, 1
jne 0x1014d188
or ecx, 1
mov dword [0x10373c60], ecx
mov dword [ebp - 4], 6
cmp eax, dword [0x1037127c]
je 0x1014d09a
nop
mov ecx, dword [eax]
mov dword [ebp - 0x74], ecx
test ecx, ecx
je 0x1014d08c
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1014d063
xor edx, edx
test ecx, ecx
je 0x1014d08c
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1014d070
cmp edi, 0x1eee87cc
je 0x1014d0ad
mov eax, dword [ebp - 0x7c]
add eax, 4
mov dword [ebp - 0x7c], eax
cmp eax, dword [0x1037127c]
jne 0x1014d050
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x10373c78], eax
jmp 0x1014d18d
mov eax, dword [ebp - 0x74]
xor edi, edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x80], edi
cmp dword [eax + 4], edi
jle 0x1014d15e
xor ecx, ecx
mov dword [ebp - 0x88], ecx
nop dword [eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0xa0], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1014d107
cmp dword [ecx + 4], 0
jle 0x1014d107
push 0
mov edx, 0xe57f80c
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1014d104
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x78], edi
mov eax, dword [ebp - 0x74]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1014d110
xor edx, edx
test ecx, ecx
je 0x1014d13c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1014d120
cmp edi, 0xe57f80c
je 0x1014d16e
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x88]
inc edx
mov edi, dword [ebp - 0x78]
add ecx, 0x3c
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x88], ecx
cmp edx, dword [eax + 4]
jl 0x1014d0d0
mov eax, edi
mov dword [ebp - 4], 0xffffffff
mov dword [0x10373c78], eax
jmp 0x1014d18d
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x78]
mov dword [0x10373c78], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1014d18d
mov eax, dword [0x10373c78]
push dword [ebp - 0xa4]
add eax, dword [ebp - 0x90]
lea ecx, [ebp - 0x190]
push eax
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.10052f30
lea ecx, [ebp - 0x70]
push ecx
lea ecx, [ebp - 0x100]
push ecx
mov ecx, dword [ebp - 0xac]
push 0x201400b
push eax
call dword [ebp - 0xa8]
movss xmm3, dword [ebp - 0x44]
ucomiss xmm3, dword [0x102bd7ac]
lahf
test ah, 0x44
jnp 0x1014d1f5
mov eax, dword [ebp - 0x84]
inc eax
mov dword [ebp - 0x84], eax
cmp eax, 2
jl 0x1014ccd0
movq xmm0, qword [ebp - 0x64]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xd0], eax
mov eax, dword [0x10bbf240]
movq qword [ebp - 0xcc], xmm0
add eax, 0xaff3cc8c
movq qword [ebp - 0xd8], xmm0
xor eax, 0x3743f7af
movss xmm0, dword [ebp - 0x5c]
subss xmm0, dword [0x102bd800]
movss dword [ebp - 0xc4], xmm0
mov eax, dword [eax + 0xf8]
mov dword [ebp - 0xa4], eax
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xac], eax
mov eax, dword [0x103754d4]
test al, 1
jne 0x1014d3f7
or eax, 1
mov dword [0x103754d4], eax
mov dword [ebp - 4], 7
mov eax, dword [0x10371278]
mov ecx, dword [0x1037127c]
mov dword [ebp - 0x8c], eax
cmp eax, ecx
je 0x1014d2d5
mov dword [ebp - 0x84], eax
mov ecx, dword [eax]
mov dword [ebp - 0x74], ecx
test ecx, ecx
je 0x1014d2c4
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1014d298
xor edx, edx
test ecx, ecx
je 0x1014d2c4
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1014d2a5
cmp edi, 0x1eee87cc
je 0x1014d2ef
mov eax, dword [ebp - 0x84]
add eax, 4
mov dword [ebp - 0x84], eax
cmp eax, dword [0x1037127c]
jne 0x1014d285
mov eax, dword [ebp - 0x8c]
xor ecx, ecx
mov dword [0x10373c98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1014d408
mov eax, dword [ebp - 0x74]
xor edi, edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x84], edi
cmp dword [eax + 4], edi
jle 0x1014d3e0
xor ecx, ecx
mov dword [ebp - 0x80], ecx
nop dword [eax + eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0xa8], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1014d347
cmp dword [ecx + 4], 0
jle 0x1014d347
push 0
mov edx, 0x7d388d3e
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1014d344
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x78], edi
mov eax, dword [ebp - 0x74]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1014d350
xor edx, edx
test ecx, ecx
je 0x1014d37c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1014d360
cmp edi, 0x7d388d3e
je 0x1014d3ba
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x80]
inc edx
mov edi, dword [ebp - 0x78]
add ecx, 0x3c
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x80], ecx
cmp edx, dword [eax + 4]
jl 0x1014d310
mov eax, dword [0x10371278]
mov ecx, edi
mov dword [ebp - 0x8c], eax
mov dword [0x10373c98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1014d408
mov eax, dword [ebp - 0xa8]
mov ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x78]
mov eax, dword [0x10371278]
mov dword [ebp - 0x8c], eax
mov dword [0x10373c98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1014d408
mov eax, dword [ebp - 0x8c]
mov ecx, edi
mov dword [0x10373c98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1014d408
mov eax, dword [0x10371278]
mov ecx, dword [0x10373c98]
mov dword [ebp - 0x8c], eax
add ecx, dword [ebp - 0x90]
mov dword [ebp - 0xa0], ecx
mov ecx, dword [0x10373c60]
test cl, 1
jne 0x1014d578
or ecx, 1
mov dword [0x10373c60], ecx
mov dword [ebp - 4], 8
cmp eax, dword [0x1037127c]
je 0x1014d490
nop dword [eax + eax]
mov ecx, dword [eax]
mov dword [ebp - 0x74], ecx
test ecx, ecx
je 0x1014d47f
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1014d453
xor edx, edx
test ecx, ecx
je 0x1014d47f
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1014d460
cmp edi, 0x1eee87cc
je 0x1014d4a3
mov eax, dword [ebp - 0x8c]
add eax, 4
mov dword [ebp - 0x8c], eax
cmp eax, dword [0x1037127c]
jne 0x1014d440
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x10373c78], eax
jmp 0x1014d57d
mov eax, dword [ebp - 0x74]
xor edi, edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x84], edi
cmp dword [eax + 4], edi
jle 0x1014d54e
xor ecx, ecx
mov dword [ebp - 0x80], ecx
nop
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0xa8], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1014d4f7
cmp dword [ecx + 4], 0
jle 0x1014d4f7
push 0
mov edx, 0xe57f80c
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1014d4f4
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x78], edi
mov eax, dword [ebp - 0x74]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1014d500
xor edx, edx
test ecx, ecx
je 0x1014d52c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1014d510
cmp edi, 0xe57f80c
je 0x1014d55e
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x84]
mov ecx, dword [ebp - 0x80]
inc edx
mov edi, dword [ebp - 0x78]
add ecx, 0x3c
mov dword [ebp - 0x84], edx
mov dword [ebp - 0x80], ecx
cmp edx, dword [eax + 4]
jl 0x1014d4c0
mov eax, edi
mov dword [ebp - 4], 0xffffffff
mov dword [0x10373c78], eax
jmp 0x1014d57d
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x78]
mov dword [0x10373c78], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1014d57d
mov eax, dword [0x10373c78]
push dword [ebp - 0xa0]
add eax, dword [ebp - 0x90]
lea ecx, [ebp - 0x1e0]
push eax
lea eax, [ebp - 0xcc]
push eax
lea eax, [ebp - 0xd8]
push eax
call fcn.10052f30
lea ecx, [ebp - 0x70]
push ecx
lea ecx, [ebp - 0x100]
push ecx
mov ecx, dword [ebp - 0xa4]
push 0x201400b
push eax
call dword [ebp - 0xac]
mov edi, dword [ebp - 0xb0]
movq xmm0, qword [ebp - 0xbc]
inc edi
mov eax, dword [ebp - 0xb4]
movq qword [ebp - 0x10c], xmm0
mov dword [ebp - 0x104], eax
mov dword [ebp - 0xb0], edi
cmp edi, dword [ebp - 0xec]
jge 0x1014d616
mov esi, dword [0x10371278]
movups xmm3, xmmword [ebp - 0x140]
mov dword [ebp - 0x7c], esi
movss xmm4, dword [ebp - 0xf0]
movss xmm5, dword [ebp - 0xf4]
jmp 0x1014c410
movss xmm5, dword [ebp - 0x104]
movss xmm4, dword [ebp - 0x108]
movss xmm3, dword [ebp - 0x10c]
mov eax, dword [ebp - 0xc0]
mov ecx, dword [ebp - 0xdc]
addss xmm3, dword [eax + 0x24]
addss xmm4, dword [eax + 0x28]
addss xmm5, dword [eax + 0x2c]
unpcklps xmm3, xmm4
movss dword [ebp - 0x110], xmm5
mov eax, dword [ebp - 0x110]
movq qword [ecx + 0x24], xmm3
mov dword [ecx + 0x2c], eax
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.101f36c3
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret