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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x101f1461
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x30
push esi
push edi
mov eax, dword [0x10285040]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x40], ecx
cmp byte [0x10305fee], 0
je 0x10129414
mov eax, dword [0x10335008]
add eax, 0x9b31f5a8
xor eax, 0x82b71aa9
cmp byte [eax + 0x63d68], 0
je 0x10128cf0
test byte [eax + 0x6572c], 8
jne 0x10129414
mov eax, dword [0x10b33e60]
add eax, 0x7a4232c8
xor eax, 0xfcb4fca8
mov eax, dword [eax + 0x14c]
mov dword [ebp - 0x30], eax
mov eax, dword [eax + 0x25c]
cmp eax, 9
je 0x10129414
cmp eax, 8
je 0x10129414
mov eax, dword [0x10320228]
test al, 1
jne 0x10128e6b
or eax, 1
mov dword [0x10320228], eax
mov dword [ebp - 4], 0
mov eax, dword [0x1031cd80]
mov dword [ebp - 0x28], eax
cmp eax, dword [0x1031cd84]
je 0x10128d9a
nop dword [eax]
mov ecx, dword [eax]
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x10128d8c
mov edi, dword [ecx + 0xc]
mov esi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [edi + ecx], 0
jne 0x10128d63
xor edx, edx
test ecx, ecx
je 0x10128d8c
movsx eax, byte [edi + edx]
inc edx
xor eax, esi
imul esi, eax, 0x1000193
cmp edx, ecx
jb 0x10128d70
cmp esi, 0x72e242a1
je 0x10128dad
mov eax, dword [ebp - 0x28]
add eax, 4
mov dword [ebp - 0x28], eax
cmp eax, dword [0x1031cd84]
jne 0x10128d50
xor eax, eax
mov dword [ebp - 4], 0xffffffff
mov dword [0x1031e930], eax
jmp 0x10128e70
mov eax, dword [ebp - 0x18]
xor edi, edi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x28], edi
cmp dword [eax + 4], edi
jle 0x10128e44
xor ecx, ecx
mov dword [ebp - 0x24], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x34], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10128dfa
cmp dword [ecx + 4], 0
jle 0x10128dfa
push 0
mov edx, 0xa4a37590
call fcn.1012b660
add esp, 4
test eax, eax
je 0x10128df7
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x1c], edi
mov eax, dword [ebp - 0x18]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x10128e03
xor edx, edx
test ecx, ecx
je 0x10128e2c
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10128e10
cmp edi, 0xa4a37590
je 0x10128e54
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x24]
inc edx
mov edi, dword [ebp - 0x1c]
add ecx, 0x3c
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], ecx
cmp edx, dword [eax + 4]
jl 0x10128dc6
mov eax, edi
mov dword [ebp - 4], 0xffffffff
mov dword [0x1031e930], eax
jmp 0x10128e70
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x1c]
mov dword [0x1031e930], eax
mov dword [ebp - 4], 0xffffffff
jmp 0x10128e70
mov eax, dword [0x1031e930]
mov ecx, dword [ebp - 0x30]
test byte [ecx + eax], 1
jne 0x10129414
mov ecx, dword [0x10b33e60]
add ecx, 0x7a4232c8
xor ecx, 0xfcb4fca8
mov eax, dword [ecx + 0x158]
mov edx, dword [eax + 0x30]
mov eax, edx
shr eax, 0x11
test al, 1
jne 0x10129414
mov eax, edx
mov dword [ebp - 0x18], edx
shr dword [ebp - 0x18], 4
and byte [ebp - 0x18], 1
shr eax, 3
and eax, 0xffffff01
mov dword [ebp - 0x34], eax
mov eax, edx
shr eax, 9
shr edx, 0xa
and eax, 0xffffff01
and edx, 0xffffff01
mov dword [ebp - 0x24], eax
cmp byte [ebp - 0x34], 0
mov dword [ebp - 0x28], edx
jne 0x10128eec
test al, al
jne 0x10128eec
cmp byte [ebp - 0x18], al
jne 0x10128eec
mov byte [ebp - 0x11], al
test dl, dl
je 0x10128ef0
mov byte [ebp - 0x11], 1
mov eax, dword [0x1031e91c]
mov ecx, dword [ecx + 0x14c]
mov dword [ebp - 0x3c], ecx
test al, 1
jne 0x10129034
or eax, 1
mov dword [0x1031e91c], eax
mov dword [ebp - 4], 1
mov eax, dword [0x1031cd80]
mov dword [ebp - 0x20], eax
cmp eax, dword [0x1031cd84]
je 0x10128f6f
mov ecx, dword [eax]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x10128f61
mov esi, dword [ecx + 0xc]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [esi + ecx], 0
jne 0x10128f38
xor edx, edx
test ecx, ecx
je 0x10128f61
movsx eax, byte [esi + edx]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10128f45
cmp edi, 0x4e9f1122
je 0x10128f7e
mov eax, dword [ebp - 0x20]
add eax, 4
mov dword [ebp - 0x20], eax
cmp eax, dword [0x1031cd84]
jne 0x10128f25
mov ecx, dword [ebp - 0x3c]
xor eax, eax
mov dword [0x103201cc], eax
jmp 0x10129039
mov eax, dword [ebp - 0x1c]
xor edi, edi
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x2c], edi
cmp dword [eax + 4], edi
jle 0x10129015
xor ecx, ecx
mov dword [ebp - 0x30], ecx
mov esi, dword [eax]
add esi, ecx
mov dword [ebp - 0x38], esi
mov ecx, dword [esi + 0x28]
test ecx, ecx
je 0x10128fcb
cmp dword [ecx + 4], 0
jle 0x10128fcb
push 0
mov edx, 0x53630d14
call fcn.1012b660
add esp, 4
test eax, eax
je 0x10128fc8
mov ecx, dword [esi + 0x2c]
add ecx, eax
add edi, ecx
mov dword [ebp - 0x20], edi
mov eax, dword [ebp - 0x1c]
mov esi, dword [esi]
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10128fd4
xor edx, edx
test ecx, ecx
je 0x10128ffd
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10128fe1
cmp edi, 0x53630d14
je 0x10129021
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x30]
inc edx
mov edi, dword [ebp - 0x20]
add ecx, 0x3c
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], ecx
cmp edx, dword [eax + 4]
jl 0x10128f97
mov ecx, dword [ebp - 0x3c]
mov eax, edi
mov dword [0x103201cc], eax
jmp 0x10129039
mov eax, dword [ebp - 0x38]
mov ecx, dword [ebp - 0x3c]
mov eax, dword [eax + 0x2c]
add eax, dword [ebp - 0x20]
mov dword [0x103201cc], eax
jmp 0x10129039
mov eax, dword [0x103201cc]
movss xmm1, dword [ecx + eax]
movss xmm0, dword [ecx + eax + 4]
movss dword [ebp - 0x3c], xmm0
movss dword [ebp - 0x38], xmm1
mulss xmm0, xmm0
mulss xmm1, xmm1
addss xmm0, xmm1
call fcn.1000d460
movss xmm5, dword [0x10271280]
movaps xmm2, xmm0
xorps xmm0, xmm0
movss dword [ebp - 0x30], xmm2
comiss xmm2, xmm0
jbe 0x101290b2
movss dword [ebp - 0x2c], xmm0
movd xmm0, dword [0x10306014]
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [0x10270f74]
divss xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_asinf
movss xmm5, dword [0x10271280]
movaps xmm7, xmm0
mulss xmm7, dword [0x10271238]
movss xmm2, dword [ebp - 0x30]
jmp 0x101290c2
movss xmm0, dword [0x10271214]
movaps xmm7, xmm5
movss dword [ebp - 0x2c], xmm0
cmp byte [ebp - 0x11], 0
xorps xmm1, xmm1
mov edi, dword [ebp - 0x40]
movss xmm6, dword [0x102713f4]
movss xmm4, dword [0x102712cc]
movss xmm0, dword [edi + 8]
xorps xmm0, xmmword [0x10271af0]
movss dword [edi + 8], xmm0
je 0x10129143
cmp byte [ebp - 0x34], 0
je 0x1012919a
cmp byte [ebp - 0x24], 0
je 0x10129109
movss xmm0, dword [0x102711a0]
jmp 0x10129139
cmp byte [ebp - 0x28], 0
je 0x10129117
movss xmm1, dword [0x102713d4]
comiss xmm6, xmm1
movaps xmm0, xmm1
jbe 0x10129129
nop
addss xmm0, xmm4
comiss xmm6, xmm0
ja 0x10129120
comiss xmm0, xmm5
jbe 0x10129139
nop
subss xmm0, xmm4
comiss xmm0, xmm5
ja 0x10129130
addss xmm0, dword [edi + 0x18]
movss dword [edi + 0x18], xmm0
mov eax, dword [0x10b33e60]
movss xmm0, dword [0x1027112c]
lea esi, [eax + 0x7a4232c8]
xor esi, 0xfcb4fca8
mov edx, dword [esi + 0x264]
mov ecx, dword [edx + 0x1c]
mov ecx, dword [ecx + 0x2c]
xor ecx, edx
comiss xmm0, xmm2
mov dword [ebp - 0x28], ecx
jb 0x1012920e
mov eax, dword [esi + 0x158]
movss xmm0, dword [ebp - 0x28]
movss dword [eax + 0x24], xmm0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
cmp byte [ebp - 0x18], 0
je 0x101291e4
cmp byte [ebp - 0x24], 0
je 0x101291b0
movss xmm1, dword [0x10271258]
jmp 0x101291c3
cmp byte [ebp - 0x28], 0
je 0x101291c0
movss xmm1, dword [0x102713f0]
jmp 0x101291c3
movaps xmm1, xmm5
mov eax, dword [0x10b33e60]
add eax, 0x7a4232c8
xor eax, 0xfcb4fca8
mov eax, dword [eax + 0x158]
mov dword [eax + 0x24], 0
jmp 0x10129117
cmp byte [ebp - 0x24], 0
je 0x101291f7
movss xmm0, dword [0x10271214]
jmp 0x10129139
cmp byte [ebp - 0x28], 0
je 0x10129117
movss xmm0, dword [0x102713e8]
jmp 0x10129139
fld dword [ebp - 0x3c]
fld dword [ebp - 0x38]
fld st(0)
movss xmm3, dword [edi + 0x18]
fld st(2)
fxch st(1)
fpatan
fstp dword [ebp - 0x40]
movss xmm0, dword [ebp - 0x40]
mulss xmm0, dword [0x102711d4]
subss xmm3, xmm0
comiss xmm6, xmm3
jbe 0x10129243
addss xmm3, xmm4
comiss xmm6, xmm3
ja 0x1012923a
comiss xmm3, xmm5
jbe 0x10129251
subss xmm3, xmm4
comiss xmm3, xmm5
ja 0x10129248
movss xmm1, dword [0x1027132c]
lea edx, [ebp - 0x3c]
divss xmm1, dword [ebp - 0x30]
lea ecx, [ebp - 0x40]
movss xmm2, dword [ebp - 0x28]
movaps xmm0, xmm2
movss dword [ebp - 0x3c], xmm1
xorps xmm0, xmmword [0x10271af0]
comiss xmm1, xmm0
movss dword [ebp - 0x40], xmm0
movaps xmm0, xmm3
cmovae ecx, edx
lea edx, [ebp - 0x28]
comiss xmm2, xmm1
cmovae edx, ecx
add eax, 0x7a4232c8
xor eax, 0xfcb4fca8
mov ecx, dword [eax + 0x158]
mov eax, dword [edx]
mov dword [ecx + 0x24], eax
call fcn.1000d440
xorps xmm2, xmm2
comiss xmm3, xmm2
jbe 0x101292cf
mov eax, dword [0x10b33e60]
add eax, 0x7a4232c8
xor eax, 0xfcb4fca8
mov eax, dword [eax + 0x158]
mov dword [eax + 0x28], 0xc3e10000
jmp 0x101292f0
comiss xmm2, xmm3
jbe 0x101292f0
mov eax, dword [0x10b33e60]
add eax, 0x7a4232c8
xor eax, 0xfcb4fca8
mov eax, dword [eax + 0x158]
mov dword [eax + 0x28], 0x43e10000
movss xmm3, dword [ebp - 0x2c]
comiss xmm3, xmm0
jae 0x10129307
comiss xmm0, dword [0x10271024]
jb 0x10129410
fpatan
movss xmm1, dword [edi + 0x18]
fstp dword [ebp - 0x40]
movss xmm2, dword [ebp - 0x40]
mulss xmm2, dword [0x102711cc]
subss xmm1, xmm2
comiss xmm6, xmm1
jbe 0x10129330
addss xmm1, xmm4
comiss xmm6, xmm1
ja 0x10129327
comiss xmm1, xmm5
jbe 0x1012933e
subss xmm1, xmm4
comiss xmm1, xmm5
ja 0x10129335
comiss xmm7, xmm1
jae 0x1012937c
addss xmm7, xmm2
movss dword [edi + 0x18], xmm7
mov eax, dword [0x10b33e60]
add eax, 0x7a4232c8
xor eax, 0xfcb4fca8
mov eax, dword [eax + 0x158]
mov dword [eax + 0x28], 0xc3e10000
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movaps xmm0, xmm7
xorps xmm0, xmmword [0x10271af0]
comiss xmm1, xmm0
jae 0x101293c4
subss xmm2, xmm7
movss dword [edi + 0x18], xmm2
mov eax, dword [0x10b33e60]
add eax, 0x7a4232c8
xor eax, 0xfcb4fca8
mov eax, dword [eax + 0x158]
mov dword [eax + 0x28], 0x43e10000
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movss xmm1, dword [edi + 8]
movaps xmm0, xmm1
mulss xmm1, dword [0x102712e0]
mulss xmm0, xmm3
addss xmm0, dword [edi + 0x18]
movss dword [edi + 0x18], xmm0
mov eax, dword [0x10b33e60]
add eax, 0x7a4232c8
xor eax, 0xfcb4fca8
mov eax, dword [eax + 0x158]
movss dword [eax + 0x28], xmm1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
fstp st(1)
fstp st(0)
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret