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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x102324cb
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x102d5080]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, ecx
mov dword [ebp - 0x18], eax
lea ecx, [eax + 8]
mov eax, dword [ecx]
call dword [eax + 0x28]
imul eax, eax, 0xef00
add eax, 0x107f4330
mov dword [ebp - 0x28], eax
mov eax, dword [0x10bbf240]
add eax, 0xaff3cc8c
xor eax, 0x3743f7af
cmp dword [eax + 0x13c], 0
je 0x1016d027
mov ecx, dword [eax + 0x134]
mov dword [ebp - 0x24], ecx
test ecx, ecx
je 0x1016d027
mov eax, dword [0x10373c4c]
test al, 1
jne 0x1016c982
or eax, 1
mov dword [0x10373c4c], eax
mov dword [ebp - 4], 0
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016c8a4
nop word [eax + eax]
mov eax, dword [ebx]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x1016c899
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016c873
xor edx, edx
test ecx, ecx
je 0x1016c899
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016c880
cmp edi, 0x4e9f1122
je 0x1016c8ba
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016c860
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
mov dword [0x10373c50], eax
jmp 0x1016c987
mov eax, dword [ebp - 0x10]
xor esi, esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x1c], esi
cmp dword [eax + 4], esi
jle 0x1016c958
xor ecx, ecx
mov dword [ebp - 0x20], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016c904
cmp dword [ecx + 4], 0
jle 0x1016c904
push 0
mov edx, 0x1c93bcf0
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016c901
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x14], esi
mov eax, dword [ebp - 0x10]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016c910
xor edx, edx
test ecx, ecx
je 0x1016c93c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016c920
cmp edi, 0x1c93bcf0
je 0x1016c96b
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
inc edx
mov esi, dword [ebp - 0x14]
add ecx, 0x3c
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [eax + 4]
jl 0x1016c8d3
mov eax, esi
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
mov dword [0x10373c50], eax
jmp 0x1016c987
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp - 0x14]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
mov dword [0x10373c50], eax
jmp 0x1016c987
mov eax, dword [0x10373c50]
mov eax, dword [eax + ecx]
mov dword [ebp - 0x2c], eax
mov eax, dword [0x1037556c]
test al, 1
jne 0x1016cae2
or eax, 1
mov dword [0x1037556c], eax
mov dword [ebp - 4], 1
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016ca04
mov eax, dword [ebx]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1016c9f9
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016c9d0
xor edx, edx
test ecx, ecx
je 0x1016c9f9
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016c9e0
cmp edi, 0x72e242a1
je 0x1016ca1a
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016c9b7
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
mov dword [0x1037552c], eax
jmp 0x1016cae7
mov eax, dword [ebp - 0x14]
xor esi, esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x20], esi
cmp dword [eax + 4], esi
jle 0x1016cab8
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016ca64
cmp dword [ecx + 4], 0
jle 0x1016ca64
push 0
mov edx, 0x84cdad2
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016ca61
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x10], esi
mov eax, dword [ebp - 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016ca70
xor edx, edx
test ecx, ecx
je 0x1016ca9c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016ca80
cmp edi, 0x84cdad2
je 0x1016cacb
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
inc edx
mov esi, dword [ebp - 0x10]
add ecx, 0x3c
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x1016ca33
mov eax, esi
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
mov dword [0x1037552c], eax
jmp 0x1016cae7
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp - 0x10]
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x24]
mov dword [0x1037552c], eax
jmp 0x1016cae7
mov eax, dword [0x1037552c]
cmp dword [ebp - 0x2c], 2
je 0x1016d027
cmp dword [eax + ecx], 0
jle 0x1016d027
mov eax, dword [ebp - 0x28]
cmp byte [eax], 0
je 0x1016d027
cmp dword [eax + 4], 2
je 0x1016d027
mov ecx, dword [0x10bbf240]
add ecx, 0xaff3cc8c
xor ecx, 0x3743f7af
mov edx, dword [ecx + 0x134]
mov dword [ebp - 0x1c], edx
test edx, edx
je 0x1016cd25
mov ecx, dword [ecx + 0x184]
mov eax, dword [ecx + 0x1c]
cmp dword [eax + 0x30], ecx
jne 0x1016cd25
cmp dword [ebp - 0x18], edx
je 0x1016cd25
mov ecx, dword [0x1037553c]
test cl, 1
jne 0x1016cc86
or ecx, 1
mov dword [0x1037553c], ecx
mov dword [ebp - 4], 2
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016cbc4
nop dword [eax]
mov eax, dword [ebx]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1016cbb9
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016cb93
xor edx, edx
test ecx, ecx
je 0x1016cbb9
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016cba0
cmp edi, 0x1eee87cc
je 0x1016cbdd
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016cb80
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [0x1037553c]
mov dword [0x103754f4], eax
jmp 0x1016cc8b
mov eax, dword [ebp - 0x14]
xor esi, esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x24], esi
cmp dword [eax + 4], esi
jle 0x1016cc74
xor ecx, ecx
mov dword [ebp - 0x20], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016cc27
cmp dword [ecx + 4], 0
jle 0x1016cc27
push 0
mov edx, 0xa5bfefb3
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016cc24
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x10], esi
mov eax, dword [ebp - 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016cc30
xor edx, edx
test ecx, ecx
je 0x1016cc5c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016cc40
cmp edi, 0xa5bfefb3
je 0x1016cc7b
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
inc edx
mov esi, dword [ebp - 0x10]
add ecx, 0x3c
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [eax + 4]
jl 0x1016cbf6
mov eax, esi
jmp 0x1016cbc6
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp - 0x10]
jmp 0x1016cbc6
mov eax, dword [0x103754f4]
mov edx, dword [ebp - 0x18]
mov edx, dword [eax + edx]
mov dword [ebp - 0x2c], edx
test cl, 1
jne 0x1016cd19
or ecx, 1
mov dword [0x1037553c], ecx
mov dword [ebp - 4], 3
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016cd08
nop dword [eax + eax]
mov eax, dword [ebx]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1016ccfd
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016ccd3
xor edx, edx
test ecx, ecx
je 0x1016ccfd
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016cce0
cmp edi, 0x1eee87cc
je 0x1016cdbe
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016ccc0
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x2c]
mov dword [0x103754f4], eax
mov ecx, dword [ebp - 0x1c]
cmp edx, dword [ecx + eax]
je 0x1016d027
mov edi, dword [ebp - 0x18]
mov ebx, dword [edi + 0x9960]
mov dword [ebp - 0x2c], ebx
test ebx, ebx
je 0x1016d027
mov eax, dword [0x10373c28]
test al, 1
jne 0x1016cf2c
or eax, 1
mov dword [0x10373c28], eax
mov dword [ebp - 4], 4
mov ebx, dword [0x10371278]
cmp ebx, dword [0x1037127c]
je 0x1016cdab
mov eax, dword [ebx]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1016cda0
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016cd76
xor edx, edx
test ecx, ecx
je 0x1016cda0
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016cd83
cmp edi, 0x72e242a1
je 0x1016ce66
add ebx, 4
cmp ebx, dword [0x1037127c]
jne 0x1016cd63
mov ebx, dword [ebp - 0x2c]
xor edx, edx
mov edi, dword [ebp - 0x18]
mov dword [0x10373cc0], edx
jmp 0x1016cf32
mov eax, dword [ebp - 0x14]
xor esi, esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x24], esi
cmp dword [eax + 4], esi
jle 0x1016ce54
xor ecx, ecx
mov dword [ebp - 0x20], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016ce08
cmp dword [ecx + 4], 0
jle 0x1016ce08
push 0
mov edx, 0xa5bfefb3
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016ce05
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x10], esi
mov eax, dword [ebp - 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016ce11
xor edx, edx
test ecx, ecx
je 0x1016ce3c
nop
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016ce20
cmp edi, 0xa5bfefb3
je 0x1016ce5b
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
inc edx
mov esi, dword [ebp - 0x10]
add ecx, 0x3c
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [eax + 4]
jl 0x1016cdd7
mov eax, esi
jmp 0x1016cd0a
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp - 0x10]
jmp 0x1016cd0a
mov eax, dword [ebp - 0x14]
xor esi, esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x24], esi
cmp dword [eax + 4], esi
jle 0x1016cf08
xor ecx, ecx
mov dword [ebp - 0x20], ecx
nop
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x1016ceb1
cmp dword [ecx + 4], 0
jle 0x1016ceb1
push 0
mov edx, 0xf3c2c786
call fcn.1013bb80
add esp, 4
test eax, eax
je 0x1016ceae
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x10], esi
mov eax, dword [ebp - 0x14]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x1016cec0
xor edx, edx
test ecx, ecx
je 0x1016ceec
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x1016ced0
cmp edi, 0xf3c2c786
je 0x1016cf18
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x20]
inc edx
mov esi, dword [ebp - 0x10]
add ecx, 0x3c
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [eax + 4]
jl 0x1016ce80
mov ebx, dword [ebp - 0x2c]
mov edx, esi
mov edi, dword [ebp - 0x18]
mov dword [0x10373cc0], edx
jmp 0x1016cf32
mov edx, dword [ebx + 0x2c]
add edx, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x18]
mov dword [0x10373cc0], edx
jmp 0x1016cf32
mov edx, dword [0x10373cc0]
movss xmm3, dword [0x102bd7ac]
lea ecx, [ebx + 0xf8]
movss xmm0, dword [ecx]
lea eax, [ebp - 0x2c]
movss xmm5, dword [ebx + 0xa4]
lea esi, [ebx + 0xfc]
comiss xmm0, xmm3
mov dword [ebp - 0x2c], 0x3f800000
mov dword [ebp - 0x24], 0x3f800000
movss xmm0, dword [ebx + 0x11c]
xorps xmm4, xmm4
mulss xmm0, dword [0x102bd700]
movaps xmm2, xmm3
cmovbe eax, ecx
comiss xmm5, xmm4
movss xmm1, dword [eax]
addss xmm0, dword [0x102bd6f0]
maxss xmm1, xmm4
mulss xmm1, xmm0
subss xmm2, xmm1
jbe 0x1016cfc9
movss xmm0, dword [esi]
lea eax, [ebp - 0x24]
comiss xmm0, xmm3
movss xmm0, dword [0x102bd73c]
subss xmm0, xmm2
cmovbe eax, esi
movss xmm1, dword [eax]
maxss xmm1, xmm4
mulss xmm1, xmm5
mulss xmm1, xmm0
addss xmm2, xmm1
mov eax, dword [ebp - 0x28]
mulss xmm2, dword [ebx + 0x338]
movss xmm1, dword [0x102bdb98]
movd xmm0, dword [eax + 4]
cvtdq2ps xmm0, xmm0
mulss xmm2, xmm0
movss xmm0, dword [0x102bda6c]
addss xmm2, dword [edx + edi + 4]
comiss xmm1, xmm2
jbe 0x1016d009
nop dword [eax + eax]
addss xmm2, xmm0
comiss xmm1, xmm2
ja 0x1016d000
movss xmm1, dword [0x102bda24]
comiss xmm2, xmm1
jbe 0x1016d01f
subss xmm2, xmm0
comiss xmm2, xmm1
ja 0x1016d016
movss dword [ebx + 0x80], xmm2
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret