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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x103a7d5d
mov eax, dword fs:[0]
push eax
sub esp, 0x34
push ebx
push esi
push edi
mov eax, dword [0x1049b0c0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x28], ecx
mov edx, dword [0x11b92250]
add edx, 0xc6c19814
xor edx, 0x26996288
cmp dword [edx + 0x158], 0
je 0x102381ad
cmp byte [0x1052010b], 0
xorps xmm5, xmm5
je 0x10238161
mov eax, dword [edx + 0x154]
cmp dword [eax + 0x25c], 9
jne 0x10238161
mov ecx, dword [edx + 0x160]
movss xmm0, dword [ecx + 0x28]
ucomiss xmm0, xmm5
lahf
test ah, 0x44
jp 0x10237883
movss xmm0, dword [ecx + 0x10]
addss xmm0, dword [0x1046f2ac]
movss dword [ecx + 0x10], xmm0
mov eax, dword [0x11b92250]
movss xmm6, dword [0x1046f104]
add eax, 0xc6c19814
movss xmm7, dword [0x1046f318]
xor eax, 0x26996288
mov eax, dword [eax + 0x160]
test byte [eax + 0x30], 8
je 0x10237d04
movss xmm0, dword [eax + 0x28]
comiss xmm0, xmm5
jbe 0x102378ca
movss xmm0, dword [eax + 0x10]
subss xmm0, xmm6
movss dword [eax + 0x10], xmm0
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov eax, dword [eax + 0x160]
comiss xmm5, dword [eax + 0x28]
jbe 0x102378f3
movss xmm0, dword [eax + 0x10]
addss xmm0, xmm7
movss dword [eax + 0x10], xmm0
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov eax, dword [eax + 0x160]
and dword [eax + 0x30], 0xfffffbff
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov eax, dword [eax + 0x160]
or dword [eax + 0x30], 0x200
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov eax, dword [eax + 0x154]
mov dword [ebp - 0x20], eax
mov eax, dword [eax + 0x25c]
cmp eax, 8
je 0x102381ad
cmp eax, 9
je 0x102381ad
mov eax, dword [0x10544904]
test al, 1
jne 0x10237aa7
or eax, 1
mov dword [0x10544904], eax
mov dword [ebp - 4], 0
mov ebx, dword [0x1053ebb8]
cmp ebx, dword [0x1053ebbc]
je 0x102379c9
mov eax, dword [ebx]
mov dword [ebp - 0x10], eax
test eax, eax
je 0x102379be
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10237998
xor edx, edx
test ecx, ecx
je 0x102379be
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x102379a5
cmp edi, 0x72e242a1
je 0x102379e0
add ebx, 4
cmp ebx, dword [0x1053ebbc]
jne 0x10237985
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [0x10541648], edx
mov dword [ebp - 4], 0xffffffff
jmp 0x10237ab0
mov eax, dword [ebp - 0x10]
xor esi, esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x18], esi
cmp dword [eax + 4], esi
jle 0x10237a88
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
nop dword [eax]
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x10237a31
cmp dword [ecx + 4], 0
jle 0x10237a31
push 0
mov edx, 0xa4a37590
call fcn.10238b60
add esp, 4
test eax, eax
je 0x10237a2e
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 word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10237a40
xor edx, edx
test ecx, ecx
je 0x10237a6c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10237a50
cmp edi, 0xa4a37590
je 0x10237a9c
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
mov ecx, dword [ebp - 0x1c]
inc edx
mov esi, dword [ebp - 0x14]
add ecx, 0x3c
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x10237a00
mov edx, esi
mov dword [ebp - 0x18], esi
mov dword [0x10541648], edx
mov dword [ebp - 4], 0xffffffff
jmp 0x10237ab0
mov edx, dword [ebx + 0x2c]
add edx, dword [ebp - 0x14]
jmp 0x102379cb
mov edx, dword [0x10541648]
mov dword [ebp - 0x18], edx
mov eax, dword [ebp - 0x20]
test byte [eax + edx], 1
je 0x102381ad
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov ecx, dword [eax + 0x160]
mov eax, dword [ecx + 0x30]
test al, 4
jne 0x102381ad
test eax, 0x20000
je 0x102381ad
movss xmm0, dword [ecx + 0x28]
sub esp, 0xc
movss xmm1, dword [ecx + 0x24]
mov eax, esp
lea ecx, [ebp - 0x40]
movss dword [eax], xmm0
movss dword [eax + 4], xmm1
mov dword [eax + 8], 0
call fcn.10237760
mov ecx, dword [0x10541638]
add esp, 0xc
movq xmm0, qword [eax]
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
movq qword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0x34]
xor eax, 0x26996288
mov eax, dword [eax + 0x160]
movss dword [eax + 0x28], xmm0
mov eax, dword [0x11b92250]
movss xmm0, dword [ebp - 0x30]
add eax, 0xc6c19814
xor eax, 0x26996288
mov eax, dword [eax + 0x160]
movss dword [eax + 0x24], xmm0
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov eax, dword [eax + 0x154]
mov dword [ebp - 0x24], eax
test cl, 1
jne 0x10237cbd
or ecx, 1
mov dword [0x10541638], ecx
mov dword [ebp - 4], 1
mov ebx, dword [0x1053ebb8]
cmp ebx, dword [0x1053ebbc]
je 0x10237be4
nop
mov eax, dword [ebx]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x10237bd9
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x10237bb3
xor edx, edx
test ecx, ecx
je 0x10237bd9
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10237bc0
cmp edi, 0x4e9f1122
je 0x10237c01
add ebx, 4
cmp ebx, dword [0x1053ebbc]
jne 0x10237ba0
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x24]
mov dword [0x105446ac], ecx
mov dword [ebp - 4], 0xffffffff
jmp 0x10237cc6
mov eax, dword [ebp - 0x14]
xor esi, esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x1c], esi
cmp dword [eax + 4], esi
jle 0x10237ca8
xor ecx, ecx
mov dword [ebp - 0x20], ecx
nop word [eax + eax]
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x10237c51
cmp dword [ecx + 4], 0
jle 0x10237c51
push 0
mov edx, 0x53630d14
call fcn.10238b60
add esp, 4
test eax, eax
je 0x10237c4e
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 0x10237c60
xor edx, edx
test ecx, ecx
je 0x10237c8c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10237c70
cmp edi, 0x53630d14
je 0x10237cb2
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
inc edx
mov esi, dword [ebp - 0x10]
add ecx, 0x3c
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], ecx
cmp edx, dword [eax + 4]
jl 0x10237c20
mov ecx, esi
mov dword [ebp - 0x10], esi
jmp 0x10237be9
mov ecx, dword [ebx + 0x2c]
add ecx, dword [ebp - 0x10]
jmp 0x10237be6
mov ecx, dword [0x105446ac]
mov dword [ebp - 0x10], ecx
movss xmm1, dword [eax + ecx + 4]
movss xmm0, dword [eax + ecx]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
comiss xmm0, dword [0x1046f450]
ja 0x10237d12
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov eax, dword [eax + 0x160]
and dword [eax + 0x30], 0xfffdffff
jmp 0x10237d12
mov eax, dword [0x105446ac]
mov edx, dword [0x10541648]
mov dword [ebp - 0x10], eax
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov eax, dword [eax + 0x160]
test byte [eax + 0x30], 0x10
je 0x10238161
movss xmm0, dword [eax + 0x28]
comiss xmm0, xmm5
jbe 0x10237d49
movss xmm0, dword [eax + 0x10]
subss xmm0, xmm6
movss dword [eax + 0x10], xmm0
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov eax, dword [eax + 0x160]
comiss xmm5, dword [eax + 0x28]
jbe 0x10237d72
movss xmm0, dword [eax + 0x10]
addss xmm0, xmm7
movss dword [eax + 0x10], xmm0
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov eax, dword [eax + 0x160]
and dword [eax + 0x30], 0xfffffbff
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov eax, dword [eax + 0x160]
or dword [eax + 0x30], 0x200
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov eax, dword [eax + 0x154]
mov dword [ebp - 0x24], eax
mov eax, dword [eax + 0x25c]
cmp eax, 8
je 0x102381ad
cmp eax, 9
je 0x102381ad
mov eax, dword [0x10544904]
test al, 1
jne 0x10237e57
or eax, 1
mov dword [0x10544904], eax
mov dword [ebp - 4], 2
mov ebx, dword [0x1053ebb8]
cmp ebx, dword [0x1053ebbc]
je 0x10237e48
mov eax, dword [ebx]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x10237e3d
mov esi, dword [eax + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10237e13
xor edx, edx
test ecx, ecx
je 0x10237e3d
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10237e20
cmp edi, 0x72e242a1
je 0x10237fa0
add ebx, 4
cmp ebx, dword [0x1053ebbc]
jne 0x10237e00
xor edx, edx
mov dword [0x10541648], edx
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x24]
test byte [eax + edx], 1
je 0x102381ad
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov ecx, dword [eax + 0x160]
mov eax, dword [ecx + 0x30]
test al, 4
jne 0x102381ad
test eax, 0x20000
je 0x102381ad
movss xmm0, dword [ecx + 0x28]
sub esp, 0xc
movss xmm1, dword [ecx + 0x24]
mov eax, esp
lea ecx, [ebp - 0x40]
movss dword [eax], xmm0
movss dword [eax + 4], xmm1
mov dword [eax + 8], 0
call fcn.10237760
add esp, 0xc
movq xmm0, qword [eax]
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
movq qword [ebp - 0x34], xmm0
movss xmm0, dword [ebp - 0x34]
xor eax, 0x26996288
mov eax, dword [eax + 0x160]
movss dword [eax + 0x28], xmm0
mov eax, dword [0x11b92250]
movss xmm0, dword [ebp - 0x30]
add eax, 0xc6c19814
xor eax, 0x26996288
mov eax, dword [eax + 0x160]
movss dword [eax + 0x24], xmm0
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov ecx, dword [eax + 0x154]
mov eax, dword [0x10541638]
mov dword [ebp - 0x24], ecx
test al, 1
jne 0x10238122
or eax, 1
mov dword [0x10541638], eax
mov dword [ebp - 4], 3
mov ebx, dword [0x1053ebb8]
cmp ebx, dword [0x1053ebbc]
je 0x10237f8a
mov eax, dword [ebx]
mov dword [ebp - 0x18], eax
test eax, eax
je 0x10237f7f
mov edi, dword [eax + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [edi + ecx], 0
jne 0x10237f55
xor edx, edx
test ecx, ecx
je 0x10237f7f
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10237f62
cmp esi, 0x4e9f1122
je 0x1023805a
add ebx, 4
cmp ebx, dword [0x1053ebbc]
jne 0x10237f42
mov ecx, dword [ebp - 0x24]
xor eax, eax
mov dword [0x105446ac], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10238125
mov eax, dword [ebp - 0x18]
xor esi, esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x20], esi
cmp dword [eax + 4], esi
jle 0x10238048
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
nop dword [eax]
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x10237ff1
cmp dword [ecx + 4], 0
jle 0x10237ff1
push 0
mov edx, 0xa4a37590
call fcn.10238b60
add esp, 4
test eax, eax
je 0x10237fee
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x14], esi
mov eax, dword [ebp - 0x18]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop word [eax + eax]
inc ecx
cmp byte [ecx + esi], 0
jne 0x10238000
xor edx, edx
test ecx, ecx
je 0x1023802c
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10238010
cmp edi, 0xa4a37590
je 0x1023804f
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
inc edx
mov esi, dword [ebp - 0x14]
add ecx, 0x3c
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x10237fc0
mov edx, esi
jmp 0x10237e4a
mov edx, dword [ebx + 0x2c]
add edx, dword [ebp - 0x14]
jmp 0x10237e4a
mov eax, dword [ebp - 0x18]
xor esi, esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x20], esi
cmp dword [eax + 4], esi
jle 0x102380f8
xor ecx, ecx
mov dword [ebp - 0x1c], ecx
mov ebx, dword [eax]
add ebx, ecx
mov ecx, dword [ebx + 0x28]
test ecx, ecx
je 0x102380a4
cmp dword [ecx + 4], 0
jle 0x102380a4
push 0
mov edx, 0x53630d14
call fcn.10238b60
add esp, 4
test eax, eax
je 0x102380a1
mov ecx, dword [ebx + 0x2c]
add ecx, eax
add esi, ecx
mov dword [ebp - 0x14], esi
mov eax, dword [ebp - 0x18]
mov esi, dword [ebx]
mov edi, 0x811c9dc5
xor ecx, ecx
nop dword [eax]
inc ecx
cmp byte [esi + ecx], 0
jne 0x102380b0
xor edx, edx
test ecx, ecx
je 0x102380dc
nop dword [eax]
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x102380c0
cmp edi, 0x53630d14
je 0x1023810b
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
inc edx
mov esi, dword [ebp - 0x14]
add ecx, 0x3c
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], ecx
cmp edx, dword [eax + 4]
jl 0x10238073
mov ecx, dword [ebp - 0x24]
mov eax, esi
mov dword [0x105446ac], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10238125
mov eax, dword [ebx + 0x2c]
add eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x24]
mov dword [0x105446ac], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10238125
mov eax, dword [ebp - 0x10]
movss xmm1, dword [eax + ecx + 4]
movss xmm0, dword [eax + ecx]
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
comiss xmm0, dword [0x1046f450]
ja 0x10238161
mov eax, dword [0x11b92250]
add eax, 0xc6c19814
xor eax, 0x26996288
mov eax, dword [eax + 0x160]
and dword [eax + 0x30], 0xfffdffff
mov ebx, dword [ebp - 0x28]
mov ecx, ebx
call fcn.10235c70
mov ecx, ebx
call fcn.102353a0
mov ecx, ebx
call fcn.10235a10
mov ecx, ebx
call fcn.10236150
test al, al
jne 0x102381ad
mov word [ebx + 0x20], 0
mov byte [ebx + 0x22], al
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x28], 0
mov dword [ebx + 0x24], 0
mov eax, dword [ebx + 0x30]
cmp eax, dword [ebx + 0x34]
je 0x102381ad
mov dword [ebx + 0x34], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret