Function at 0x10022420
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 0x101cc5a3
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x1b8
mov eax, dword [0x1026b040]
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 - 0xd8], edi
mov eax, dword [0x104d5f6c]
mov edx, dword [0x104d5f48]
add eax, 0x1f6b1a94
xor eax, 0x33ad0c7d
mov dword [ebp - 0xe4], 0x11
mov dword [ebp - 0xe8], eax
add edx, 0x3479199f
mov eax, dword [0x10633ee0]
xor edx, 0xd3f15a3a
add eax, 0xfab78433
mov dword [ebp - 0xb0], edx
xor eax, 0xc85d879a
mov eax, dword [eax + 0x14c]
mov dword [ebp - 0x84], eax
mov eax, dword [0x10304cb8]
test al, 1
jne 0x10022663
or eax, 1
mov dword [0x10304cb8], eax
mov dword [ebp - 4], 0
mov eax, dword [0x103030f8]
mov ecx, dword [0x103030fc]
mov dword [ebp - 0x74], eax
cmp eax, ecx
je 0x10022543
mov dword [ebp - 0x88], eax
nop
mov ecx, dword [eax]
mov dword [ebp - 0x94], ecx
test ecx, ecx
je 0x10022532
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [edi + ecx], 0
jne 0x10022506
xor edx, edx
test ecx, ecx
je 0x10022532
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10022513
cmp esi, 0x72e242a1
je 0x10022568
mov eax, dword [ebp - 0x88]
add eax, 4
mov dword [ebp - 0x88], eax
cmp eax, dword [0x103030fc]
jne 0x100224f0
mov esi, dword [0x103030f8]
xor eax, eax
mov edi, dword [ebp - 0xd8]
mov edx, dword [ebp - 0xb0]
mov dword [0x10306530], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10022671
mov eax, dword [ebp - 0x94]
xor edi, edi
mov dword [ebp - 0x8c], edi
mov dword [ebp - 0x88], edi
cmp dword [eax + 4], edi
jle 0x10022656
xor ecx, ecx
mov dword [ebp - 0x78], ecx
nop word [eax + eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0xac], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x100225cf
cmp dword [ecx + 4], 0
jle 0x100225cf
push 0
mov edx, 0xf3e9a9ed
call fcn.10115470
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x100225c9
mov eax, dword [esi + 0x2c]
add eax, ecx
add edi, eax
mov dword [ebp - 0x8c], edi
mov eax, dword [ebp - 0x94]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
inc ecx
cmp byte [edi + ecx], 0
jne 0x100225d8
xor edx, edx
test ecx, ecx
je 0x10022604
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100225e5
cmp esi, 0xf3e9a9ed
je 0x10022639
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0x88]
mov ecx, dword [ebp - 0x78]
inc edx
mov edi, dword [ebp - 0x8c]
add ecx, 0x3c
mov dword [ebp - 0x88], edx
mov dword [ebp - 0x78], ecx
cmp edx, dword [eax + 4]
jl 0x10022590
mov esi, dword [0x103030f8]
mov eax, edi
mov dword [ebp - 0x74], esi
jmp 0x1002254b
mov eax, dword [ebp - 0xac]
mov esi, dword [0x103030f8]
mov dword [ebp - 0x74], esi
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x8c]
jmp 0x1002254b
mov esi, dword [0x103030f8]
mov eax, edi
jmp 0x1002254b
mov esi, dword [0x103030f8]
mov eax, dword [0x10306530]
mov dword [ebp - 0x74], esi
mov ecx, dword [ebp - 0x84]
cmp byte [ecx + eax], 0
mov eax, dword [0x10633ee0]
je 0x1002269c
add eax, 0xfab78433
xor eax, 0xc85d879a
mov eax, dword [eax + 0x154]
movss xmm4, dword [eax + 0x130]
jmp 0x100226b4
add eax, 0xfab78433
xor eax, 0xc85d879a
mov eax, dword [eax + 0x154]
movss xmm4, dword [eax + 0x12c]
movss xmm3, dword [edx + 0x1ac]
movss xmm2, dword [edx + 0x1a8]
movaps xmm1, xmm3
movaps xmm0, xmm2
mulss xmm1, xmm3
mulss xmm0, xmm2
addss xmm0, xmm1
call fcn.1000c7e0
maxss xmm0, dword [0x1025805c]
xor ecx, ecx
mov edx, 0x11
mov dword [ebp - 0xdc], ecx
divss xmm0, xmm4
mulss xmm0, dword [0x10258118]
subss xmm0, dword [0x1025805c]
cvttss2si eax, xmm0
test eax, eax
cmovs eax, ecx
lea ecx, [ebp - 0xe0]
sub edx, eax
lea eax, [ebp - 0xdc]
mov dword [ebp - 0xe0], edx
cmovns eax, ecx
cmp edx, 0x11
lea ecx, [ebp - 0xe4]
cmovle ecx, eax
mov eax, dword [ecx]
mov dword [ebp - 0xec], eax
test eax, eax
jne 0x1002274b
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov eax, edi
jmp 0x10023943
mov ecx, dword [ebp - 0xb0]
xor edi, edi
mov dword [ebp - 0xac], edi
movss xmm0, dword [ecx + 0x1b0]
test eax, eax
jle 0x1002392f
nop dword [eax]
mov edx, dword [0x10633ee0]
lea eax, [edi + 1]
add edx, 0xfab78433
movd xmm5, eax
mov eax, dword [ebp - 0xb0]
xor edx, 0xc85d879a
cvtdq2ps xmm5, xmm5
mov ecx, dword [edx + 0x108]
mulss xmm5, dword [ecx + 0x20]
movaps xmm6, xmm5
movaps xmm7, xmm5
mulss xmm6, dword [eax + 0x1a8]
mulss xmm7, dword [eax + 0x1ac]
mulss xmm5, dword [eax + 0x1b0]
movaps xmm2, xmm6
mov eax, dword [ebp - 0xe8]
movaps xmm1, xmm7
movss dword [ebp - 0x90], xmm6
movss dword [ebp - 0x94], xmm7
movaps xmm0, xmm5
movss dword [ebp - 0x88], xmm5
addss xmm2, dword [eax + 0x152b84]
addss xmm1, dword [eax + 0x152b88]
addss xmm0, dword [eax + 0x152b8c]
movss dword [ebp - 0xbc], xmm6
movss dword [ebp - 0xb8], xmm7
movss dword [ebp - 0xd4], xmm2
movss dword [ebp - 0xd0], xmm1
movss dword [ebp - 0xcc], xmm0
mov eax, dword [edx + 0x14c]
mov dword [ebp - 0x80], eax
mov eax, dword [0x10306540]
movss dword [ebp - 0xb4], xmm5
test al, 1
jne 0x100229bb
or eax, 1
mov dword [0x10306540], eax
mov dword [ebp - 4], 1
mov ecx, dword [0x103030fc]
cmp esi, ecx
je 0x100228b2
mov eax, esi
mov dword [ebp - 0x78], esi
cmp eax, ecx
je 0x100228b2
mov ecx, dword [eax]
mov dword [ebp - 0x8c], ecx
test ecx, ecx
je 0x100228a1
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x10022878
xor edx, edx
test ecx, ecx
je 0x100228a1
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10022885
cmp edi, 0x72e242a1
je 0x100228c5
mov eax, dword [ebp - 0x78]
add eax, 4
mov dword [ebp - 0x78], eax
cmp eax, dword [0x103030fc]
jne 0x10022862
mov esi, dword [ebp - 0x74]
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x10304c98], eax
jmp 0x100229c0
mov eax, dword [ebp - 0x8c]
xor edi, edi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x78], edi
cmp dword [eax + 4], edi
jle 0x100229a8
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 0x1002291b
cmp dword [ecx + 4], 0
jle 0x1002291b
push 0
mov edx, 0xa4a37590
call fcn.10115470
add esp, 4
test eax, eax
je 0x10022915
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x7c], edi
mov eax, dword [ebp - 0x8c]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x10022924
xor edx, edx
test ecx, ecx
je 0x10022950
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10022931
cmp edi, 0xa4a37590
je 0x10022985
mov eax, dword [ebp - 0x8c]
mov edx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x74]
inc edx
mov edi, dword [ebp - 0x7c]
add ecx, 0x3c
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x74], ecx
cmp edx, dword [eax + 4]
jl 0x100228e1
mov esi, dword [0x103030f8]
mov eax, edi
mov dword [ebp - 0x74], esi
mov dword [0x10304c98], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100229c0
mov eax, dword [ebp - 0x84]
mov esi, dword [0x103030f8]
mov dword [ebp - 0x74], esi
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x7c]
mov dword [0x10304c98], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100229c0
mov esi, dword [ebp - 0x74]
mov eax, edi
mov dword [0x10304c98], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100229c0
mov eax, dword [0x10304c98]
mov ecx, dword [ebp - 0x80]
mov al, byte [ecx + eax]
mov ecx, dword [0x10633ee0]
and al, 1
add ecx, 0xfab78433
mov byte [ebp - 0x95], al
xor ecx, 0xc85d879a
mov eax, dword [ecx + 0x14c]
mov dword [ebp - 0x8c], eax
mov eax, dword [0x10b11b04]
test al, 1
jne 0x10022a0b
or eax, 1
mov dword [0x10b11b04], eax
mov edx, dword [ecx + 0x204]
mov dword [0x10b11b2c], edx
jmp 0x10022a11
mov edx, dword [0x10b11b2c]
test al, 2
jne 0x10022a28
or eax, 2
mov dword [0x10b11b04], eax
mov eax, dword [ecx + 0x234]
mov dword [0x10b11b18], eax
cmp byte [ebp - 0x95], 0
jne 0x10022a6b
mov eax, dword [edx + 0x1c]
mov eax, dword [eax + 0x2c]
xor eax, edx
mov dword [ebp - 0x84], eax
mov eax, dword [ecx + 0x108]
movss xmm0, dword [ebp - 0x84]
mulss xmm0, dword [eax + 0x20]
subss xmm5, xmm0
movss dword [ebp - 0x88], xmm5
movss dword [ebp - 0xb4], xmm5
jmp 0x10022aec
mov eax, dword [0x10306540]
test al, 1
jne 0x10022aec
or eax, 1
mov dword [0x10306540], eax
mov dword [ebp - 4], 2
cmp esi, dword [0x103030fc]
je 0x10022ade
nop dword [eax + eax]
mov eax, dword [esi]
mov dword [ebp - 0x7c], eax
test eax, eax
je 0x10022ad0
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10022aa3
xor edx, edx
test ecx, ecx
je 0x10022acd
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10022ab0
cmp edi, 0x72e242a1
je 0x10022c65
mov esi, dword [ebp - 0x74]
add esi, 4
mov dword [ebp - 0x74], esi
cmp esi, dword [0x103030fc]
jne 0x10022a90
xor eax, eax
mov dword [0x10304c98], eax
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xcc]
lea ecx, [ebp - 0x70]
movss xmm3, dword [ebp - 0xd4]
movss xmm4, dword [ebp - 0xd0]
movaps xmm0, xmm3
mov dword [ebp - 0x108], eax
mov eax, dword [0x10633ee0]
add eax, 0xfab78433
unpcklps xmm0, xmm4
movq qword [ebp - 0xd4], xmm0
xor eax, 0xc85d879a
movq qword [ebp - 0x110], xmm0
mov eax, dword [eax + 0x108]
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 - 0xcc]
movss dword [ebp - 0xc8], xmm1
movss dword [ebp - 0xc4], xmm0
movss dword [ebp - 0xc0], xmm2
call fcn.1001fc80
push 1
mov dword [ebp - 0xf8], 0x102520c0
call fcn.101c954c
mov dword [ebp - 0xf0], eax
add esp, 4
mov eax, dword [ebp - 0x8c]
mov dword [ebp - 0xf4], eax
mov eax, dword [0x10633ee0]
add eax, 0xfab78433
xor eax, 0xc85d879a
mov eax, dword [eax + 0x110]
mov dword [ebp - 0xa4], eax
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0x9c], eax
mov eax, dword [0x10307d9c]
test al, 1
jne 0x10022e18
or eax, 1
mov dword [0x10307d9c], eax
mov dword [ebp - 4], 3
mov eax, dword [0x103030f8]
mov ecx, dword [0x103030fc]
mov dword [ebp - 0x74], eax
cmp eax, ecx
je 0x10022c4e
mov dword [ebp - 0x80], eax
mov ecx, dword [eax]
mov dword [ebp - 0x7c], ecx
test ecx, ecx
je 0x10022c40
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10022c10
xor edx, edx
test ecx, ecx
je 0x10022c40
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10022c20
cmp edi, 0x1eee87cc
je 0x10022d20
mov eax, dword [ebp - 0x80]
add eax, 4
mov dword [ebp - 0x80], eax
cmp eax, dword [0x103030fc]
jne 0x10022bf7
mov eax, dword [ebp - 0x74]
xor ecx, ecx
mov dword [0x10307d98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x10022e26
mov eax, dword [ebp - 0x7c]
xor edi, edi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x78], edi
cmp dword [eax + 4], edi
jle 0x10022d08
xor ecx, ecx
mov dword [ebp - 0x80], ecx
nop
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10022cb7
cmp dword [ecx + 4], 0
jle 0x10022cb7
push 0
mov edx, 0xa4a37590
call fcn.10115470
add esp, 4
test eax, eax
je 0x10022cb4
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x74], edi
mov eax, dword [ebp - 0x7c]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10022cc0
xor edx, edx
test ecx, ecx
je 0x10022cec
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10022cd0
cmp edi, 0xa4a37590
je 0x10022d0f
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x80]
inc edx
mov edi, dword [ebp - 0x74]
add ecx, 0x3c
mov dword [ebp - 0x78], edx
mov dword [ebp - 0x80], ecx
cmp edx, dword [eax + 4]
jl 0x10022c80
mov eax, edi
jmp 0x10022ae0
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x74]
jmp 0x10022ae0
mov eax, dword [ebp - 0x7c]
xor edi, edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x80], edi
cmp dword [eax + 4], edi
jle 0x10022e04
xor ecx, ecx
mov dword [ebp - 0x74], 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 0x10022d77
cmp dword [ecx + 4], 0
jle 0x10022d77
push 0
mov edx, 0x7d388d3e
call fcn.10115470
add esp, 4
test eax, eax
je 0x10022d74
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x78], edi
mov eax, dword [ebp - 0x7c]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10022d80
xor edx, edx
test ecx, ecx
je 0x10022dac
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10022d90
cmp edi, 0x7d388d3e
je 0x10022de1
mov eax, dword [ebp - 0x7c]
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x74]
inc edx
mov edi, dword [ebp - 0x78]
add ecx, 0x3c
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x74], ecx
cmp edx, dword [eax + 4]
jl 0x10022d40
mov eax, dword [0x103030f8]
mov ecx, edi
mov dword [ebp - 0x74], eax
mov dword [0x10307d98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x10022e26
mov eax, dword [ebp - 0x84]
mov ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x78]
mov eax, dword [0x103030f8]
mov dword [ebp - 0x74], eax
mov dword [0x10307d98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x10022e26
mov eax, dword [ebp - 0x74]
mov ecx, edi
mov dword [0x10307d98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x10022e26
mov eax, dword [0x103030f8]
mov ecx, dword [0x10307d98]
mov dword [ebp - 0x74], eax
add ecx, dword [ebp - 0x8c]
mov dword [ebp - 0xa0], ecx
mov ecx, dword [0x10306570]
test cl, 1
jne 0x10022f85
or ecx, 1
mov dword [0x10306570], ecx
mov dword [ebp - 4], 4
cmp eax, dword [0x103030fc]
je 0x10022eaa
nop dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x78], ecx
test ecx, ecx
je 0x10022e9c
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10022e73
xor edx, edx
test ecx, ecx
je 0x10022e9c
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10022e80
cmp edi, 0x1eee87cc
je 0x10022ebd
mov eax, dword [ebp - 0x74]
add eax, 4
mov dword [ebp - 0x74], eax
cmp eax, dword [0x103030fc]
jne 0x10022e60
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x10307d94], eax
jmp 0x10022f8a
mov eax, dword [ebp - 0x78]
xor edi, edi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edi
cmp dword [eax + 4], edi
jle 0x10022f5b
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 0x10022f0d
cmp dword [ecx + 4], 0
jle 0x10022f0d
push 0
mov edx, 0xe57f80c
call fcn.10115470
add esp, 4
test eax, eax
je 0x10022f0a
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 0x10022f16
xor edx, edx
test ecx, ecx
je 0x10022f3f
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10022f23
cmp edi, 0xe57f80c
je 0x10022f6b
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x74]
inc edx
mov edi, dword [ebp - 0x7c]
add ecx, 0x3c
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x74], ecx
cmp edx, dword [eax + 4]
jl 0x10022ed6
mov eax, edi
mov dword [ebp - 4], 0xffffffff
mov dword [0x10307d94], eax
jmp 0x10022f8a
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x7c]
mov dword [0x10307d94], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10022f8a
mov eax, dword [0x10307d94]
push dword [ebp - 0xa0]
add eax, dword [ebp - 0x8c]
lea ecx, [ebp - 0x170]
push eax
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x110]
push eax
call fcn.1003ad00
lea ecx, [ebp - 0x70]
push ecx
lea ecx, [ebp - 0xf8]
push ecx
mov ecx, dword [ebp - 0xa4]
push 0x201400b
push eax
call dword [ebp - 0x9c]
movss xmm3, dword [ebp - 0x44]
ucomiss xmm3, dword [0x1025805c]
lahf
test ah, 0x44
jnp 0x10023502
mov dword [ebp - 0x84], 0
nop dword [eax]
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 - 0x90]
movss xmm6, dword [ebp - 0x50]
movss xmm7, dword [ebp - 0x88]
movss xmm3, dword [ebp - 0x90]
addss xmm2, xmm0
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 - 0x90], xmm3
movss xmm3, dword [ebp - 0x94]
subss xmm3, xmm1
movss dword [ebp - 0xbc], xmm0
mulss xmm0, xmm5
movss dword [ebp - 0x88], xmm7
movss dword [ebp - 0xb4], xmm7
mulss xmm2, xmm3
movss dword [ebp - 0x94], xmm3
movss dword [ebp - 0xb8], 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 0x10023114
movaps xmm0, xmm2
movaps xmm1, xmm2
mulss xmm0, xmm5
mulss xmm1, xmm4
movss xmm4, dword [ebp - 0x90]
subss xmm4, xmm0
mulss xmm2, xmm6
movss xmm0, dword [ebp - 0x94]
subss xmm0, xmm1
subss xmm7, xmm2
movss dword [ebp - 0x90], xmm4
movss dword [ebp - 0xbc], xmm4
movss dword [ebp - 0x94], xmm0
movss dword [ebp - 0xb8], xmm0
movss dword [ebp - 0x88], xmm7
movss dword [ebp - 0xb4], xmm7
jmp 0x1002311c
movss xmm4, dword [ebp - 0x90]
mov ecx, dword [0x10633ee0]
movss xmm1, dword [0x1025805c]
add ecx, 0xfab78433
xor ecx, 0xc85d879a
subss xmm1, xmm3
mov eax, dword [ecx + 0x108]
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 - 0xc8], xmm2
movss dword [ebp - 0x114], xmm1
mov eax, dword [ebp - 0x114]
mov dword [ebp - 0xc0], eax
mov eax, dword [ecx + 0x110]
mov dword [ebp - 0xa0], eax
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xa8], eax
mov eax, dword [0x10307d9c]
test al, 1
jne 0x10023328
or eax, 1
mov dword [0x10307d9c], eax
mov dword [ebp - 4], 5
mov eax, dword [0x103030f8]
mov ecx, dword [0x103030fc]
mov dword [ebp - 0x74], eax
cmp eax, ecx
je 0x1002321b
mov dword [ebp - 0x80], eax
mov ecx, dword [eax]
mov dword [ebp - 0x78], ecx
test ecx, ecx
je 0x1002320d
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x100231e4
xor edx, edx
test ecx, ecx
je 0x1002320d
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100231f1
cmp edi, 0x1eee87cc
je 0x10023232
mov eax, dword [ebp - 0x80]
add eax, 4
mov dword [ebp - 0x80], eax
cmp eax, dword [0x103030fc]
jne 0x100231d1
mov eax, dword [ebp - 0x74]
xor ecx, ecx
mov dword [0x10307d98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x10023336
mov eax, dword [ebp - 0x78]
xor edi, edi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edi
cmp dword [eax + 4], edi
jle 0x10023314
xor ecx, ecx
mov dword [ebp - 0x74], ecx
nop dword [eax + eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x9c], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10023287
cmp dword [ecx + 4], 0
jle 0x10023287
push 0
mov edx, 0x7d388d3e
call fcn.10115470
add esp, 4
test eax, eax
je 0x10023284
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 0x10023290
xor edx, edx
test ecx, ecx
je 0x100232bc
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100232a0
cmp edi, 0x7d388d3e
je 0x100232f1
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x74]
inc edx
mov edi, dword [ebp - 0x7c]
add ecx, 0x3c
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x74], ecx
cmp edx, dword [eax + 4]
jl 0x10023250
mov eax, dword [0x103030f8]
mov ecx, edi
mov dword [ebp - 0x74], eax
mov dword [0x10307d98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x10023336
mov eax, dword [ebp - 0x9c]
mov ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x7c]
mov eax, dword [0x103030f8]
mov dword [ebp - 0x74], eax
mov dword [0x10307d98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x10023336
mov eax, dword [ebp - 0x74]
mov ecx, edi
mov dword [0x10307d98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x10023336
mov eax, dword [0x103030f8]
mov ecx, dword [0x10307d98]
mov dword [ebp - 0x74], eax
add ecx, dword [ebp - 0x8c]
mov dword [ebp - 0xa4], ecx
mov ecx, dword [0x10306570]
test cl, 1
jne 0x10023495
or ecx, 1
mov dword [0x10306570], ecx
mov dword [ebp - 4], 6
cmp eax, dword [0x103030fc]
je 0x100233ba
nop dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x78], ecx
test ecx, ecx
je 0x100233ac
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10023383
xor edx, edx
test ecx, ecx
je 0x100233ac
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10023390
cmp edi, 0x1eee87cc
je 0x100233cd
mov eax, dword [ebp - 0x74]
add eax, 4
mov dword [ebp - 0x74], eax
cmp eax, dword [0x103030fc]
jne 0x10023370
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x10307d94], eax
jmp 0x1002349a
mov eax, dword [ebp - 0x78]
xor edi, edi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x80], edi
cmp dword [eax + 4], edi
jle 0x1002346b
xor ecx, ecx
mov dword [ebp - 0x74], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x9c], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1002341d
cmp dword [ecx + 4], 0
jle 0x1002341d
push 0
mov edx, 0xe57f80c
call fcn.10115470
add esp, 4
test eax, eax
je 0x1002341a
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 0x10023426
xor edx, edx
test ecx, ecx
je 0x1002344f
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10023433
cmp edi, 0xe57f80c
je 0x1002347b
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x74]
inc edx
mov edi, dword [ebp - 0x7c]
add ecx, 0x3c
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x74], ecx
cmp edx, dword [eax + 4]
jl 0x100233e6
mov eax, edi
mov dword [ebp - 4], 0xffffffff
mov dword [0x10307d94], eax
jmp 0x1002349a
mov eax, dword [ebp - 0x9c]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x7c]
mov dword [0x10307d94], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1002349a
mov eax, dword [0x10307d94]
push dword [ebp - 0xa4]
add eax, dword [ebp - 0x8c]
lea ecx, [ebp - 0x170]
push eax
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.1003ad00
lea ecx, [ebp - 0x70]
push ecx
lea ecx, [ebp - 0xf8]
push ecx
mov ecx, dword [ebp - 0xa0]
push 0x201400b
push eax
call dword [ebp - 0xa8]
movss xmm3, dword [ebp - 0x44]
ucomiss xmm3, dword [0x1025805c]
lahf
test ah, 0x44
jnp 0x10023502
mov eax, dword [ebp - 0x84]
inc eax
mov dword [ebp - 0x84], eax
cmp eax, 2
jl 0x10022ff0
movq xmm0, qword [ebp - 0x64]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xcc], eax
mov eax, dword [0x10633ee0]
movq qword [ebp - 0xc8], xmm0
add eax, 0xfab78433
movq qword [ebp - 0xd4], xmm0
xor eax, 0xc85d879a
movss xmm0, dword [ebp - 0x5c]
subss xmm0, dword [0x102580a8]
movss dword [ebp - 0xc0], xmm0
mov eax, dword [eax + 0x110]
mov dword [ebp - 0xa4], eax
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xa0], eax
mov eax, dword [0x10307d9c]
test al, 1
jne 0x1002370a
or eax, 1
mov dword [0x10307d9c], eax
mov dword [ebp - 4], 7
mov eax, dword [0x103030f8]
mov ecx, dword [0x103030fc]
mov dword [ebp - 0x90], eax
cmp eax, ecx
je 0x100235e5
mov dword [ebp - 0x84], eax
mov ecx, dword [eax]
mov dword [ebp - 0x88], ecx
test ecx, ecx
je 0x100235d4
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x100235a8
xor edx, edx
test ecx, ecx
je 0x100235d4
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100235b5
cmp edi, 0x1eee87cc
je 0x100235ff
mov eax, dword [ebp - 0x84]
add eax, 4
mov dword [ebp - 0x84], eax
cmp eax, dword [0x103030fc]
jne 0x10023592
mov eax, dword [ebp - 0x90]
xor ecx, ecx
mov dword [0x10307d98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1002371b
mov eax, dword [ebp - 0x88]
xor edi, edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x84], edi
cmp dword [eax + 4], edi
jle 0x100236f3
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 0x1002365a
cmp dword [ecx + 4], 0
jle 0x1002365a
push 0
mov edx, 0x7d388d3e
call fcn.10115470
add esp, 4
test eax, eax
je 0x10023654
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x78], edi
mov eax, dword [ebp - 0x88]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10023663
xor edx, edx
test ecx, ecx
je 0x1002368f
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10023670
cmp edi, 0x7d388d3e
je 0x100236cd
mov eax, dword [ebp - 0x88]
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 0x10023620
mov eax, dword [0x103030f8]
mov ecx, edi
mov dword [ebp - 0x90], eax
mov dword [0x10307d98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1002371b
mov eax, dword [ebp - 0xa8]
mov ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x78]
mov eax, dword [0x103030f8]
mov dword [ebp - 0x90], eax
mov dword [0x10307d98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1002371b
mov eax, dword [ebp - 0x90]
mov ecx, edi
mov dword [0x10307d98], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x1002371b
mov eax, dword [0x103030f8]
mov ecx, dword [0x10307d98]
mov dword [ebp - 0x90], eax
add ecx, dword [ebp - 0x8c]
mov dword [ebp - 0x9c], ecx
mov ecx, dword [0x10306570]
test cl, 1
jne 0x10023890
or ecx, 1
mov dword [0x10306570], ecx
mov dword [ebp - 4], 8
cmp eax, dword [0x103030fc]
je 0x100237a3
nop
mov ecx, dword [eax]
mov dword [ebp - 0x88], ecx
test ecx, ecx
je 0x10023792
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x10023766
xor edx, edx
test ecx, ecx
je 0x10023792
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10023773
cmp edi, 0x1eee87cc
je 0x100237b6
mov eax, dword [ebp - 0x90]
add eax, 4
mov dword [ebp - 0x90], eax
cmp eax, dword [0x103030fc]
jne 0x10023750
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x10307d94], eax
jmp 0x10023895
mov eax, dword [ebp - 0x88]
xor edi, edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x84], edi
cmp dword [eax + 4], edi
jle 0x10023866
xor ecx, ecx
mov dword [ebp - 0x80], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0xa8], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x1002380f
cmp dword [ecx + 4], 0
jle 0x1002380f
push 0
mov edx, 0xe57f80c
call fcn.10115470
add esp, 4
test eax, eax
je 0x10023809
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x78], edi
mov eax, dword [ebp - 0x88]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10023818
xor edx, edx
test ecx, ecx
je 0x10023844
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10023825
cmp edi, 0xe57f80c
je 0x10023876
mov eax, dword [ebp - 0x88]
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 0x100237d5
mov eax, edi
mov dword [ebp - 4], 0xffffffff
mov dword [0x10307d94], eax
jmp 0x10023895
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x78]
mov dword [0x10307d94], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10023895
mov eax, dword [0x10307d94]
push dword [ebp - 0x9c]
add eax, dword [ebp - 0x8c]
lea ecx, [ebp - 0x1c0]
push eax
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0xd4]
push eax
call fcn.1003ad00
lea ecx, [ebp - 0x70]
push ecx
lea ecx, [ebp - 0xf8]
push ecx
mov ecx, dword [ebp - 0xa4]
push 0x201400b
push eax
call dword [ebp - 0xa0]
mov edi, dword [ebp - 0xac]
movq xmm0, qword [ebp - 0xbc]
inc edi
mov eax, dword [ebp - 0xb4]
movq qword [ebp - 0x104], xmm0
mov dword [ebp - 0xfc], eax
mov dword [ebp - 0xac], edi
cmp edi, dword [ebp - 0xec]
jge 0x10023917
mov esi, dword [0x103030f8]
mov dword [ebp - 0x74], esi
jmp 0x10022770
movss xmm0, dword [ebp - 0xfc]
movss xmm3, dword [ebp - 0x100]
movss xmm2, dword [ebp - 0x104]
mov eax, dword [ebp - 0xd8]
movss dword [eax], xmm2
movss dword [eax + 4], xmm3
movss dword [eax + 8], xmm0
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.101c8fef
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret