Function at 0x10022230
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 0x101bc943
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x1b8
mov eax, dword [0x10203360]
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 - 0xd8], ecx
mov eax, dword [0x1046e02c]
mov edx, dword [0x1046e008]
add eax, 0x74feedfd
xor eax, 0xd0609303
mov dword [ebp - 0x8c], 0x11
mov dword [ebp - 0xdc], eax
add edx, 0xc76c3b04
mov eax, dword [0x105cbfb0]
xor edx, 0x47dce98a
add eax, 0x4fd8cdb0
add edx, 0x1a8
xor eax, 0x91d5c6d7
mov dword [ebp - 0xbc], edx
mov eax, dword [eax + 0x14c]
mov dword [ebp - 0x80], eax
mov eax, dword [0x1029cb88]
test al, 1
jne 0x10022493
or eax, 1
mov dword [0x1029cb88], eax
mov dword [ebp - 4], 0
mov eax, dword [0x1029b360]
mov ecx, dword [0x1029b364]
mov dword [ebp - 0x7c], eax
cmp eax, ecx
je 0x1002234d
mov dword [ebp - 0x74], eax
nop dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x94], ecx
test ecx, ecx
je 0x1002233f
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + edi], 0
jne 0x10022316
xor edx, edx
test ecx, ecx
je 0x1002233f
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10022323
cmp esi, 0x72e242a1
je 0x1002236c
mov eax, dword [ebp - 0x74]
add eax, 4
mov dword [ebp - 0x74], eax
cmp eax, dword [0x1029b364]
jne 0x10022300
mov edi, dword [0x1029b360]
xor eax, eax
mov edx, dword [ebp - 0xbc]
mov dword [0x1029e400], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100224a1
mov eax, dword [ebp - 0x94]
xor edi, edi
mov dword [ebp - 0x88], edi
mov dword [ebp - 0x74], edi
cmp dword [eax + 4], edi
jle 0x10022473
xor ecx, ecx
mov dword [ebp - 0x78], ecx
nop dword [eax + eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x100223cf
cmp dword [ecx + 4], 0
jle 0x100223cf
push 0
mov edx, 0xf3e9a9ed
call fcn.101146e0
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x100223c9
mov eax, dword [esi + 0x2c]
add eax, ecx
add edi, eax
mov dword [ebp - 0x88], edi
mov eax, dword [ebp - 0x94]
mov edi, dword [esi]
xor ecx, ecx
mov esi, 0x811c9dc5
inc ecx
cmp byte [ecx + edi], 0
jne 0x100223d8
xor edx, edx
test ecx, ecx
je 0x10022404
movsx eax, byte [edx + edi]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x100223e5
cmp esi, 0xf3e9a9ed
je 0x10022424
mov eax, dword [ebp - 0x94]
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x78]
inc edx
add ecx, 0x3c
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x78], ecx
cmp edx, dword [eax + 4]
jge 0x10022450
mov edi, dword [ebp - 0x88]
jmp 0x10022390
mov eax, dword [ebp - 0x84]
mov edi, dword [0x1029b360]
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0x7c], edi
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x88]
mov dword [0x1029e400], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100224a1
mov edi, dword [0x1029b360]
mov eax, dword [ebp - 0x88]
mov edx, dword [ebp - 0xbc]
mov dword [ebp - 0x7c], edi
mov dword [0x1029e400], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100224a1
mov eax, dword [ebp - 0x88]
mov edi, dword [0x1029b360]
mov edx, dword [ebp - 0xbc]
mov dword [0x1029e400], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x100224a1
mov edi, dword [0x1029b360]
mov eax, dword [0x1029e400]
mov dword [ebp - 0x7c], edi
mov ecx, dword [ebp - 0x80]
cmp byte [ecx + eax], 0
mov eax, dword [0x105cbfb0]
je 0x100224c9
add eax, 0x4fd8cdb0
xor eax, 0x91d5c6d7
mov eax, dword [eax + 0x154]
movss xmm4, dword [eax + 0x130]
jmp 0x100224e1
add eax, 0x4fd8cdb0
xor eax, 0x91d5c6d7
mov eax, dword [eax + 0x154]
movss xmm4, dword [eax + 0x12c]
movss xmm3, dword [edx + 4]
movss xmm2, dword [edx]
movaps xmm1, xmm3
movaps xmm0, xmm2
mulss xmm1, xmm3
mulss xmm0, xmm2
addss xmm0, xmm1
call fcn.1000cb10
maxss xmm0, dword [0x101f0824]
xor ecx, ecx
lea edx, [ebp - 0x84]
mov esi, 0x11
mov dword [ebp - 0x84], ecx
divss xmm0, xmm4
mulss xmm0, dword [0x101f08e0]
subss xmm0, dword [0x101f0824]
cvttss2si eax, xmm0
test eax, eax
cmovs eax, ecx
lea ecx, [ebp - 0x80]
sub esi, eax
mov eax, esi
mov dword [ebp - 0x80], esi
shr eax, 0x1f
test al, al
cmove edx, ecx
cmp esi, 0x11
lea ecx, [ebp - 0x8c]
cmovle ecx, edx
mov eax, dword [ecx]
mov dword [ebp - 0xe4], eax
test eax, eax
jne 0x10022582
mov eax, dword [ebp - 0xd8]
mov dword [eax], 0
mov dword [eax + 4], 0
mov dword [eax + 8], 0
jmp 0x100237da
mov esi, dword [ebp - 0xbc]
xor ecx, ecx
movss xmm0, dword [esi + 8]
test eax, eax
jle 0x100237c6
nop word [eax + eax]
mov edx, dword [0x105cbfb0]
inc ecx
add edx, 0x4fd8cdb0
mov dword [ebp - 0xe0], ecx
xor edx, 0x91d5c6d7
movd xmm6, ecx
cvtdq2ps xmm6, xmm6
mov eax, dword [edx + 0x108]
mulss xmm6, dword [eax + 0x20]
mov eax, dword [ebp - 0xdc]
movaps xmm0, xmm6
movaps xmm7, xmm6
mulss xmm0, dword [esi + 4]
mulss xmm7, dword [esi]
mulss xmm6, dword [esi + 8]
movaps xmm1, xmm0
addss xmm1, dword [eax + 0x152b88]
movss dword [ebp - 0x88], xmm0
movaps xmm2, xmm7
addss xmm2, dword [eax + 0x152b84]
movss dword [ebp - 0xb4], xmm0
movaps xmm0, xmm6
addss xmm0, dword [eax + 0x152b8c]
movss dword [ebp - 0xd0], xmm1
movss dword [ebp - 0x98], xmm7
movss dword [ebp - 0xd4], xmm2
movss dword [ebp - 0x94], xmm6
movss dword [ebp - 0xcc], xmm0
mov eax, dword [edx + 0x14c]
mov dword [ebp - 0x8c], eax
mov eax, dword [0x1029e410]
movss dword [ebp - 0xb8], xmm7
movss dword [ebp - 0xb0], xmm6
test al, 1
jne 0x100227f0
or eax, 1
mov dword [0x1029e410], eax
mov dword [ebp - 4], 1
mov ecx, dword [0x1029b364]
cmp edi, ecx
je 0x100226e0
mov eax, edi
mov dword [ebp - 0x74], edi
cmp eax, ecx
je 0x100226e0
nop dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x90], ecx
test ecx, ecx
je 0x100226cf
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x100226a6
xor edx, edx
test ecx, ecx
je 0x100226cf
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100226b3
cmp edi, 0x72e242a1
je 0x100226f4
mov eax, dword [ebp - 0x74]
add eax, 4
mov dword [ebp - 0x74], eax
cmp eax, dword [0x1029b364]
jne 0x10022690
mov edi, dword [ebp - 0x7c]
xor ecx, ecx
mov dword [ebp - 4], 0xffffffff
mov dword [0x1029cb68], ecx
jmp 0x100227f6
mov eax, dword [ebp - 0x90]
xor edi, edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x74], edi
cmp dword [eax + 4], edi
jle 0x100227db
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 0x1002274a
cmp dword [ecx + 4], 0
jle 0x1002274a
push 0
mov edx, 0xa4a37590
call fcn.101146e0
add esp, 4
test eax, eax
je 0x10022744
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 0x10022753
xor edx, edx
test ecx, ecx
je 0x1002277f
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10022760
cmp edi, 0xa4a37590
je 0x1002279c
mov eax, dword [ebp - 0x90]
mov edx, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x7c]
inc edx
add ecx, 0x3c
mov dword [ebp - 0x74], edx
mov dword [ebp - 0x7c], ecx
cmp edx, dword [eax + 4]
jge 0x100227c0
mov edi, dword [ebp - 0x78]
jmp 0x10022710
mov eax, dword [ebp - 0x84]
mov edi, dword [0x1029b360]
mov dword [ebp - 0x7c], edi
mov ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x78]
mov dword [0x1029cb68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x100227f6
mov edi, dword [0x1029b360]
mov ecx, dword [ebp - 0x78]
mov dword [ebp - 0x7c], edi
mov dword [0x1029cb68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x100227f6
mov ecx, dword [ebp - 0x78]
mov edi, dword [ebp - 0x7c]
mov dword [0x1029cb68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x100227f6
mov ecx, dword [0x1029cb68]
mov eax, dword [ebp - 0x8c]
mov edx, dword [0x105cbfb0]
add edx, 0x4fd8cdb0
xor edx, 0x91d5c6d7
mov al, byte [ecx + eax]
and al, 1
mov byte [ebp - 0x99], al
mov eax, dword [edx + 0x14c]
mov dword [ebp - 0x90], eax
mov eax, dword [0x10aa9bdc]
test al, 1
jne 0x10022844
or eax, 1
mov dword [0x10aa9bdc], eax
mov esi, dword [edx + 0x204]
mov dword [0x10aa9c04], esi
jmp 0x1002284a
mov esi, dword [0x10aa9c04]
test al, 2
jne 0x10022863
or eax, 2
mov dword [0x10aa9bdc], eax
mov eax, dword [edx + 0x234]
mov dword [0x10aa9bf0], eax
jmp 0x10022868
mov eax, dword [0x10aa9bf0]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp - 0x8c]
test byte [ecx + eax], 1
jne 0x100228a9
mov eax, dword [esi + 0x1c]
mov eax, dword [eax + 0x2c]
xor eax, esi
mov dword [ebp - 0x84], eax
mov eax, dword [edx + 0x108]
movss xmm0, dword [ebp - 0x84]
mulss xmm0, dword [eax + 0x20]
subss xmm6, xmm0
movss dword [ebp - 0xb0], xmm6
jmp 0x1002295b
mov eax, dword [0x1029e410]
test al, 1
jne 0x1002292d
or eax, 1
mov dword [0x1029e410], eax
mov dword [ebp - 4], 2
cmp edi, dword [0x1029b364]
je 0x1002291e
nop dword [eax]
mov eax, dword [edi]
mov dword [ebp - 0x78], eax
test eax, eax
je 0x10022910
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x100228e3
xor edx, edx
test ecx, ecx
je 0x1002290d
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100228f0
cmp edi, 0x72e242a1
je 0x10022ada
mov edi, dword [ebp - 0x7c]
add edi, 4
mov dword [ebp - 0x7c], edi
cmp edi, dword [0x1029b364]
jne 0x100228d0
xor ecx, ecx
mov dword [0x1029cb68], ecx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x90]
test byte [eax + ecx], 1
je 0x10022963
cmp byte [ebp - 0x99], 0
jne 0x10022963
mov ecx, dword [ebp - 0x80]
mov eax, dword [ecx + 0x1c]
mov eax, dword [eax + 0x2c]
xor eax, ecx
mov dword [ebp - 0xb0], eax
movss xmm6, dword [ebp - 0xb0]
movss dword [ebp - 0x94], xmm6
mov eax, dword [ebp - 0xcc]
lea ecx, [ebp - 0x70]
movss xmm4, dword [ebp - 0xd4]
movaps xmm1, xmm6
movss xmm5, dword [ebp - 0xd0]
movaps xmm0, xmm4
mov dword [ebp - 0x100], eax
mov eax, dword [0x105cbfb0]
add eax, 0x4fd8cdb0
unpcklps xmm0, xmm5
xor eax, 0x91d5c6d7
movq qword [ebp - 0xd4], xmm0
movq qword [ebp - 0x108], xmm0
mov eax, dword [eax + 0x108]
movss xmm0, dword [eax + 0x20]
movaps xmm3, xmm0
mulss xmm1, xmm0
movaps xmm2, xmm0
mulss xmm3, xmm7
mulss xmm2, dword [ebp - 0x88]
addss xmm1, dword [ebp - 0xcc]
addss xmm3, xmm4
addss xmm2, xmm5
movss dword [ebp - 0xc0], xmm1
movss dword [ebp - 0xc8], xmm3
movss dword [ebp - 0xc4], xmm2
call fcn.1001fa70
push 1
mov dword [ebp - 0xf0], 0x101ea84c
call fcn.101b9bc0
mov dword [ebp - 0xe8], eax
add esp, 4
mov eax, dword [ebp - 0x90]
mov dword [ebp - 0xec], eax
mov eax, dword [0x105cbfb0]
add eax, 0x4fd8cdb0
xor eax, 0x91d5c6d7
mov eax, dword [eax + 0x110]
mov dword [ebp - 0xa8], eax
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xa0], eax
mov eax, dword [0x1029fc6c]
test al, 1
jne 0x10022c90
or eax, 1
mov dword [0x1029fc6c], eax
mov dword [ebp - 4], 3
mov eax, dword [0x1029b360]
mov ecx, dword [0x1029b364]
mov dword [ebp - 0x7c], eax
cmp eax, ecx
je 0x10022ac3
mov dword [ebp - 0x80], eax
mov ecx, dword [eax]
mov dword [ebp - 0x78], ecx
test ecx, ecx
je 0x10022ab5
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10022a88
xor edx, edx
test ecx, ecx
je 0x10022ab5
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10022a95
cmp edi, 0x1eee87cc
je 0x10022b99
mov eax, dword [ebp - 0x80]
add eax, 4
mov dword [ebp - 0x80], eax
cmp eax, dword [0x1029b364]
jne 0x10022a75
mov eax, dword [ebp - 0x7c]
xor ecx, ecx
mov dword [0x1029fc68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x10022c9e
mov eax, dword [ebp - 0x78]
xor edi, edi
mov dword [ebp - 0x7c], edi
mov dword [ebp - 0x8c], edi
cmp dword [eax + 4], edi
jle 0x10022b81
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 0x10022b2d
cmp dword [ecx + 4], 0
jle 0x10022b2d
push 0
mov edx, 0xa4a37590
call fcn.101146e0
add esp, 4
test eax, eax
je 0x10022b2a
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 0x10022b36
xor edx, edx
test ecx, ecx
je 0x10022b5f
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10022b43
cmp edi, 0xa4a37590
je 0x10022b88
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x8c]
mov ecx, dword [ebp - 0x74]
inc edx
mov edi, dword [ebp - 0x7c]
add ecx, 0x3c
mov dword [ebp - 0x8c], edx
mov dword [ebp - 0x74], ecx
cmp edx, dword [eax + 4]
jl 0x10022af6
mov ecx, edi
jmp 0x10022920
mov eax, dword [ebp - 0x84]
mov ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x7c]
jmp 0x10022920
mov eax, dword [ebp - 0x78]
xor edi, edi
mov dword [ebp - 0x74], edi
mov dword [ebp - 0x80], edi
cmp dword [eax + 4], edi
jle 0x10022c7c
xor ecx, ecx
mov dword [ebp - 0x8c], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10022bec
cmp dword [ecx + 4], 0
jle 0x10022bec
push 0
mov edx, 0x7d388d3e
call fcn.101146e0
add esp, 4
test eax, eax
je 0x10022be9
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 0x10022bf5
xor edx, edx
test ecx, ecx
je 0x10022c1e
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10022c02
cmp edi, 0x7d388d3e
je 0x10022c59
mov eax, dword [ebp - 0x78]
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x8c]
inc edx
mov edi, dword [ebp - 0x74]
add ecx, 0x3c
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x8c], ecx
cmp edx, dword [eax + 4]
jl 0x10022bb5
mov eax, dword [0x1029b360]
mov ecx, edi
mov dword [ebp - 0x7c], eax
mov dword [0x1029fc68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x10022c9e
mov eax, dword [ebp - 0x84]
mov ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x74]
mov eax, dword [0x1029b360]
mov dword [ebp - 0x7c], eax
mov dword [0x1029fc68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x10022c9e
mov eax, dword [ebp - 0x7c]
mov ecx, edi
mov dword [0x1029fc68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x10022c9e
mov eax, dword [0x1029b360]
mov ecx, dword [0x1029fc68]
mov dword [ebp - 0x7c], eax
add ecx, dword [ebp - 0x90]
mov dword [ebp - 0xa4], ecx
mov ecx, dword [0x1029e440]
test cl, 1
jne 0x10022e08
or ecx, 1
mov dword [0x1029e440], ecx
mov dword [ebp - 4], 4
cmp eax, dword [0x1029b364]
je 0x10022d1b
mov ecx, dword [eax]
mov dword [ebp - 0x74], ecx
test ecx, ecx
je 0x10022d0d
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10022ce4
xor edx, edx
test ecx, ecx
je 0x10022d0d
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10022cf1
cmp edi, 0x1eee87cc
je 0x10022d2e
mov eax, dword [ebp - 0x7c]
add eax, 4
mov dword [ebp - 0x7c], eax
cmp eax, dword [0x1029b364]
jne 0x10022cd1
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x1029fc64], eax
jmp 0x10022e0d
mov eax, dword [ebp - 0x74]
xor edi, edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x80], edi
cmp dword [eax + 4], edi
jle 0x10022dde
xor ecx, ecx
mov dword [ebp - 0x8c], ecx
nop word [eax + eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x84], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10022d87
cmp dword [ecx + 4], 0
jle 0x10022d87
push 0
mov edx, 0xe57f80c
call fcn.101146e0
add esp, 4
test eax, eax
je 0x10022d84
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 0x10022d90
xor edx, edx
test ecx, ecx
je 0x10022dbc
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10022da0
cmp edi, 0xe57f80c
je 0x10022dee
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x8c]
inc edx
mov edi, dword [ebp - 0x78]
add ecx, 0x3c
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x8c], ecx
cmp edx, dword [eax + 4]
jl 0x10022d50
mov eax, edi
mov dword [ebp - 4], 0xffffffff
mov dword [0x1029fc64], eax
jmp 0x10022e0d
mov eax, dword [ebp - 0x84]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x78]
mov dword [0x1029fc64], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10022e0d
mov eax, dword [0x1029fc64]
push dword [ebp - 0xa4]
add eax, dword [ebp - 0x90]
lea ecx, [ebp - 0x170]
push eax
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x108]
push eax
call fcn.1003a6d0
lea ecx, [ebp - 0x70]
push ecx
lea ecx, [ebp - 0xf0]
push ecx
mov ecx, dword [ebp - 0xa8]
push 0x201400b
push eax
call dword [ebp - 0xa0]
movss xmm3, dword [ebp - 0x44]
ucomiss xmm3, dword [0x101f0824]
lahf
test ah, 0x44
jnp 0x100233a5
mov dword [ebp - 0x84], 0
movss xmm4, dword [ebp - 0x54]
movss xmm5, dword [ebp - 0x58]
movaps xmm2, xmm4
mulss xmm2, dword [ebp - 0x88]
movaps xmm0, xmm5
mulss xmm0, dword [ebp - 0x98]
movss xmm6, dword [ebp - 0x50]
movss xmm7, dword [ebp - 0x94]
addss xmm2, xmm0
movss xmm3, dword [ebp - 0x98]
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 - 0x98], xmm3
movss dword [ebp - 0xb8], xmm0
movss xmm0, dword [ebp - 0x88]
subss xmm0, xmm1
movss dword [ebp - 0x94], xmm7
movss dword [ebp - 0xb0], xmm7
mulss xmm2, xmm0
movss dword [ebp - 0x88], xmm0
movss dword [ebp - 0xb4], 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 0x10022f9b
movaps xmm0, xmm2
movaps xmm1, xmm2
mulss xmm0, xmm5
mulss xmm1, xmm4
movss xmm4, dword [ebp - 0x98]
subss xmm4, xmm0
mulss xmm2, xmm6
movss xmm0, dword [ebp - 0x88]
subss xmm0, xmm1
subss xmm7, xmm2
movss dword [ebp - 0x98], xmm4
movss dword [ebp - 0xb8], xmm4
movss dword [ebp - 0x88], xmm0
movss dword [ebp - 0xb4], xmm0
movss dword [ebp - 0x94], xmm7
movss dword [ebp - 0xb0], xmm7
jmp 0x10022fa3
movss xmm4, dword [ebp - 0x98]
mov ecx, dword [0x105cbfb0]
movss xmm1, dword [0x101f0824]
add ecx, 0x4fd8cdb0
xor ecx, 0x91d5c6d7
subss xmm1, xmm3
mov eax, dword [ecx + 0x108]
mulss xmm1, dword [eax + 0x20]
movaps xmm2, xmm1
movaps xmm0, xmm1
mulss xmm0, dword [ebp - 0x88]
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 - 0x10c], xmm1
mov eax, dword [ebp - 0x10c]
mov dword [ebp - 0xc0], eax
mov eax, dword [ecx + 0x110]
mov dword [ebp - 0xa4], eax
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xac], eax
mov eax, dword [0x1029fc6c]
test al, 1
jne 0x100231be
or eax, 1
mov dword [0x1029fc6c], eax
mov dword [ebp - 4], 5
mov eax, dword [0x1029b360]
mov ecx, dword [0x1029b364]
mov dword [ebp - 0x7c], eax
cmp eax, ecx
je 0x100230aa
mov dword [ebp - 0x80], eax
mov ecx, dword [eax]
mov dword [ebp - 0x74], ecx
test ecx, ecx
je 0x1002309c
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10023070
xor edx, edx
test ecx, ecx
je 0x1002309c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10023080
cmp edi, 0x1eee87cc
je 0x100230c1
mov eax, dword [ebp - 0x80]
add eax, 4
mov dword [ebp - 0x80], eax
cmp eax, dword [0x1029b364]
jne 0x10023058
mov eax, dword [ebp - 0x7c]
xor ecx, ecx
mov dword [0x1029fc68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x100231cc
mov eax, dword [ebp - 0x74]
xor edi, edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x80], edi
cmp dword [eax + 4], edi
jle 0x100231aa
xor ecx, ecx
mov dword [ebp - 0x8c], 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 0x10023117
cmp dword [ecx + 4], 0
jle 0x10023117
push 0
mov edx, 0x7d388d3e
call fcn.101146e0
add esp, 4
test eax, eax
je 0x10023114
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 0x10023120
xor edx, edx
test ecx, ecx
je 0x1002314c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10023130
cmp edi, 0x7d388d3e
je 0x10023187
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x8c]
inc edx
mov edi, dword [ebp - 0x78]
add ecx, 0x3c
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x8c], ecx
cmp edx, dword [eax + 4]
jl 0x100230e0
mov eax, dword [0x1029b360]
mov ecx, edi
mov dword [ebp - 0x7c], eax
mov dword [0x1029fc68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x100231cc
mov eax, dword [ebp - 0xa0]
mov ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x78]
mov eax, dword [0x1029b360]
mov dword [ebp - 0x7c], eax
mov dword [0x1029fc68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x100231cc
mov eax, dword [ebp - 0x7c]
mov ecx, edi
mov dword [0x1029fc68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x100231cc
mov eax, dword [0x1029b360]
mov ecx, dword [0x1029fc68]
mov dword [ebp - 0x7c], eax
add ecx, dword [ebp - 0x90]
mov dword [ebp - 0xa8], ecx
mov ecx, dword [0x1029e440]
test cl, 1
jne 0x10023338
or ecx, 1
mov dword [0x1029e440], ecx
mov dword [ebp - 4], 6
cmp eax, dword [0x1029b364]
je 0x1002324a
nop
mov ecx, dword [eax]
mov dword [ebp - 0x74], ecx
test ecx, ecx
je 0x1002323c
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10023213
xor edx, edx
test ecx, ecx
je 0x1002323c
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10023220
cmp edi, 0x1eee87cc
je 0x1002325d
mov eax, dword [ebp - 0x7c]
add eax, 4
mov dword [ebp - 0x7c], eax
cmp eax, dword [0x1029b364]
jne 0x10023200
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x1029fc64], eax
jmp 0x1002333d
mov eax, dword [ebp - 0x74]
xor edi, edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x80], edi
cmp dword [eax + 4], edi
jle 0x1002330e
xor ecx, ecx
mov dword [ebp - 0x8c], 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 0x100232b7
cmp dword [ecx + 4], 0
jle 0x100232b7
push 0
mov edx, 0xe57f80c
call fcn.101146e0
add esp, 4
test eax, eax
je 0x100232b4
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 0x100232c0
xor edx, edx
test ecx, ecx
je 0x100232ec
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100232d0
cmp edi, 0xe57f80c
je 0x1002331e
mov eax, dword [ebp - 0x74]
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0x8c]
inc edx
mov edi, dword [ebp - 0x78]
add ecx, 0x3c
mov dword [ebp - 0x80], edx
mov dword [ebp - 0x8c], ecx
cmp edx, dword [eax + 4]
jl 0x10023280
mov eax, edi
mov dword [ebp - 4], 0xffffffff
mov dword [0x1029fc64], eax
jmp 0x1002333d
mov eax, dword [ebp - 0xa0]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x78]
mov dword [0x1029fc64], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1002333d
mov eax, dword [0x1029fc64]
push dword [ebp - 0xa8]
add eax, dword [ebp - 0x90]
lea ecx, [ebp - 0x170]
push eax
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x64]
push eax
call fcn.1003a6d0
lea ecx, [ebp - 0x70]
push ecx
lea ecx, [ebp - 0xf0]
push ecx
mov ecx, dword [ebp - 0xa4]
push 0x201400b
push eax
call dword [ebp - 0xac]
movss xmm3, dword [ebp - 0x44]
ucomiss xmm3, dword [0x101f0824]
lahf
test ah, 0x44
jnp 0x100233a5
mov eax, dword [ebp - 0x84]
inc eax
mov dword [ebp - 0x84], eax
cmp eax, 2
jl 0x10022e70
movq xmm0, qword [ebp - 0x64]
mov eax, dword [ebp - 0x5c]
mov dword [ebp - 0xcc], eax
mov eax, dword [0x105cbfb0]
movq qword [ebp - 0xc8], xmm0
add eax, 0x4fd8cdb0
movq qword [ebp - 0xd4], xmm0
xor eax, 0x91d5c6d7
movss xmm0, dword [ebp - 0x5c]
subss xmm0, dword [0x101f0870]
movss dword [ebp - 0xc0], xmm0
mov eax, dword [eax + 0x110]
mov dword [ebp - 0xa8], eax
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov dword [ebp - 0xa4], eax
mov eax, dword [0x1029fc6c]
test al, 1
jne 0x100235a7
or eax, 1
mov dword [0x1029fc6c], eax
mov dword [ebp - 4], 7
mov eax, dword [0x1029b360]
mov ecx, dword [0x1029b364]
mov dword [ebp - 0x88], eax
cmp eax, ecx
je 0x10023485
mov dword [ebp - 0x84], eax
mov ecx, dword [eax]
mov dword [ebp - 0x74], ecx
test ecx, ecx
je 0x10023474
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10023448
xor edx, edx
test ecx, ecx
je 0x10023474
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10023455
cmp edi, 0x1eee87cc
je 0x1002349f
mov eax, dword [ebp - 0x84]
add eax, 4
mov dword [ebp - 0x84], eax
cmp eax, dword [0x1029b364]
jne 0x10023435
mov eax, dword [ebp - 0x88]
xor ecx, ecx
mov dword [0x1029fc68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x100235b8
mov eax, dword [ebp - 0x74]
xor edi, edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x84], edi
cmp dword [eax + 4], edi
jle 0x10023590
xor ecx, ecx
mov dword [ebp - 0x80], ecx
nop dword [eax + eax]
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0xac], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x100234f7
cmp dword [ecx + 4], 0
jle 0x100234f7
push 0
mov edx, 0x7d388d3e
call fcn.101146e0
add esp, 4
test eax, eax
je 0x100234f4
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 0x10023500
xor edx, edx
test ecx, ecx
je 0x1002352c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10023510
cmp edi, 0x7d388d3e
je 0x1002356a
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 0x100234c0
mov eax, dword [0x1029b360]
mov ecx, edi
mov dword [ebp - 0x88], eax
mov dword [0x1029fc68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x100235b8
mov eax, dword [ebp - 0xac]
mov ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x78]
mov eax, dword [0x1029b360]
mov dword [ebp - 0x88], eax
mov dword [0x1029fc68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x100235b8
mov eax, dword [ebp - 0x88]
mov ecx, edi
mov dword [0x1029fc68], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x100235b8
mov eax, dword [0x1029b360]
mov ecx, dword [0x1029fc68]
mov dword [ebp - 0x88], eax
add ecx, dword [ebp - 0x90]
mov dword [ebp - 0xa0], ecx
mov ecx, dword [0x1029e440]
test cl, 1
jne 0x10023728
or ecx, 1
mov dword [0x1029e440], ecx
mov dword [ebp - 4], 8
cmp eax, dword [0x1029b364]
je 0x10023640
nop dword [eax + eax]
mov ecx, dword [eax]
mov dword [ebp - 0x74], ecx
test ecx, ecx
je 0x1002362f
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10023603
xor edx, edx
test ecx, ecx
je 0x1002362f
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10023610
cmp edi, 0x1eee87cc
je 0x10023653
mov eax, dword [ebp - 0x88]
add eax, 4
mov dword [ebp - 0x88], eax
cmp eax, dword [0x1029b364]
jne 0x100235f0
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x1029fc64], eax
jmp 0x1002372d
mov eax, dword [ebp - 0x74]
xor edi, edi
mov dword [ebp - 0x78], edi
mov dword [ebp - 0x84], edi
cmp dword [eax + 4], edi
jle 0x100236fe
xor ecx, ecx
mov dword [ebp - 0x80], ecx
nop
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0xac], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x100236a7
cmp dword [ecx + 4], 0
jle 0x100236a7
push 0
mov edx, 0xe57f80c
call fcn.101146e0
add esp, 4
test eax, eax
je 0x100236a4
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 0x100236b0
xor edx, edx
test ecx, ecx
je 0x100236dc
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100236c0
cmp edi, 0xe57f80c
je 0x1002370e
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 0x10023670
mov eax, edi
mov dword [ebp - 4], 0xffffffff
mov dword [0x1029fc64], eax
jmp 0x1002372d
mov eax, dword [ebp - 0xac]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x78]
mov dword [0x1029fc64], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x1002372d
mov eax, dword [0x1029fc64]
push dword [ebp - 0xa0]
add eax, dword [ebp - 0x90]
lea ecx, [ebp - 0x1c0]
push eax
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0xd4]
push eax
call fcn.1003a6d0
lea ecx, [ebp - 0x70]
push ecx
lea ecx, [ebp - 0xf0]
push ecx
mov ecx, dword [ebp - 0xa8]
push 0x201400b
push eax
call dword [ebp - 0xa4]
movq xmm0, qword [ebp - 0xb8]
mov ecx, dword [ebp - 0xe0]
mov eax, dword [ebp - 0xb0]
movq qword [ebp - 0xfc], xmm0
mov dword [ebp - 0xf4], eax
cmp ecx, dword [ebp - 0xe4]
jge 0x100237ae
mov edi, dword [0x1029b360]
mov esi, dword [ebp - 0xbc]
mov dword [ebp - 0x7c], edi
jmp 0x100225a0
movss xmm0, dword [ebp - 0xf4]
movss xmm3, dword [ebp - 0xf8]
movss xmm2, dword [ebp - 0xfc]
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.101b965e
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret