Function at 0x100851a0
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 0x100ac60d
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x40
push esi
push edi
mov eax, dword [0x100c100c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [ebx + 8]
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x100858c5
cmp dword [0x100c1240], 0
je 0x100858c5
mov edi, dword [eax + 8]
mov eax, dword [0x1010c0c0]
test al, 1
jne 0x10085246
or eax, 1
mov dword [0x1010c0c0], eax
mov edx, 0x990704d7
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x30]
call fcn.10043520
push 0xda7d68cb
mov edx, eax
mov ecx, 0x1010c0c4
call fcn.10043990
add esp, 4
push 0x100addd0
call fcn.100a35fc
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x1010c0c4]
call eax
mov esi, eax
mov dword [ebp - 0x18], esi
test edi, edi
je 0x100852c0
test esi, esi
je 0x100852c0
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x100852c0
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov eax, dword [ecx]
mov ecx, esi
and eax, 0xffffff
push eax
call edx
mov esi, eax
test esi, esi
je 0x100852a9
mov edi, 0x811c9dc5
xor ecx, ecx
inc ecx
cmp byte [ecx + esi], 0
jne 0x10085282
xor edx, edx
test ecx, ecx
je 0x100852a9
nop
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10085290
cmp edi, 0x11ab48ff
je 0x100852bb
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x100852c0
mov esi, dword [ebp - 0x18]
jmp 0x10085264
mov ecx, dword [ebp - 0x20]
jmp 0x100852c2
xor ecx, ecx
movsx eax, byte [ecx + 0x10]
dec eax
cmp eax, 6
ja case.0x100852d0.2
jmp dword [eax*4 + 0x100858dc]
push dword [ecx + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
mov edx, eax
jmp 0x10085353
push dword [ecx + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtoi]
add esp, 4
mov edx, eax
jmp 0x10085353
movss xmm4, dword [ecx + 0xc]
movss xmm3, dword [0x100b6824]
movaps xmm0, xmm4
movss xmm2, dword [0x100b681c]
andps xmm3, xmm4
xorps xmm0, xmm3
movaps xmm1, xmm4
cmpltss xmm0, xmm2
andps xmm2, xmm0
orps xmm2, xmm3
addss xmm1, xmm2
subss xmm1, xmm2
movss xmm2, dword [0x100b666c]
movaps xmm0, xmm1
subss xmm0, xmm4
cmpnless xmm0, xmm3
andps xmm0, xmm2
subss xmm1, xmm0
cvttss2si edx, xmm1
jmp 0x10085353
xor edx, edx
jmp 0x10085353
mov edx, dword [ecx + 0xc]
mov ecx, dword [0x10106910]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
mov esi, dword [0x10106910]
mov edi, eax
mov ecx, dword [esi]
mov edx, dword [ecx + 0x30]
mov ecx, esi
call edx
cmp edi, eax
jne 0x100858c5
mov edi, dword [ebp - 0x1c]
mov eax, dword [0x1010c0c0]
mov edi, dword [edi + 8]
test al, 1
jne 0x100853cd
or eax, 1
mov dword [0x1010c0c0], eax
mov edx, 0x990704d7
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x30]
call fcn.10043520
push 0xda7d68cb
mov edx, eax
mov ecx, 0x1010c0c4
call fcn.10043990
add esp, 4
push 0x100addd0
call fcn.100a35fc
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x1010c0c4]
call eax
mov esi, eax
mov dword [ebp - 0x18], esi
test edi, edi
je 0x10085450
test esi, esi
je 0x10085450
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x10085450
nop dword [eax + eax]
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov eax, dword [ecx]
mov ecx, esi
and eax, 0xffffff
push eax
call edx
mov esi, eax
test esi, esi
je 0x10085439
mov edi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [ecx + esi], 0
jne 0x10085410
xor edx, edx
test ecx, ecx
je 0x10085439
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10085420
cmp edi, 0xfd0c5087
je 0x1008544b
mov ecx, dword [ebp - 0x20]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x20], ecx
test ecx, ecx
je 0x10085450
mov esi, dword [ebp - 0x18]
jmp 0x100853f0
mov ecx, dword [ebp - 0x20]
jmp 0x10085452
xor ecx, ecx
movsx eax, byte [ecx + 0x10]
xorps xmm0, xmm0
dec eax
movss dword [ebp - 0x20], xmm0
cmp eax, 6
ja case.0x10085464.4
jmp dword [eax*4 + 0x100858f8]
push dword [ecx + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atof]
fstp dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x18]
add esp, 4
jmp case.0x10085464.4
push dword [ecx + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtof]
fstp dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x18]
add esp, 4
jmp case.0x10085464.4
movss xmm0, dword [ecx + 0xc]
jmp case.0x10085464.4
movd xmm0, dword [ecx + 0xc]
cvtdq2ps xmm0, xmm0
jmp case.0x10085464.4
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.100a4660
cvtsd2ss xmm0, xmm0
mov eax, dword [ebp - 0x1c]
movss dword [ebp - 0x18], xmm0
mov edi, dword [eax + 8]
mov eax, dword [0x1010c0c0]
test al, 1
jne 0x10085511
or eax, 1
mov dword [0x1010c0c0], eax
mov edx, 0x990704d7
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x30]
call fcn.10043520
push 0xda7d68cb
mov edx, eax
mov ecx, 0x1010c0c4
call fcn.10043990
add esp, 4
push 0x100addd0
call fcn.100a35fc
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x1010c0c4]
call eax
mov esi, eax
mov dword [ebp - 0x24], esi
test edi, edi
je 0x10085590
test esi, esi
je 0x10085590
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x10085590
nop
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov eax, dword [ecx]
mov ecx, esi
and eax, 0xffffff
push eax
call edx
mov esi, eax
test esi, esi
je 0x10085579
mov edi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [ecx + esi], 0
jne 0x10085550
xor edx, edx
test ecx, ecx
je 0x10085579
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x10085560
cmp edi, 0xfc0c4ef4
je 0x1008558b
mov ecx, dword [ebp - 0x14]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x14], ecx
test ecx, ecx
je 0x10085590
mov esi, dword [ebp - 0x24]
jmp 0x10085530
mov ecx, dword [ebp - 0x14]
jmp 0x10085592
xor ecx, ecx
movsx eax, byte [ecx + 0x10]
dec eax
cmp eax, 6
ja case.0x1008559c.4
jmp dword [eax*4 + 0x10085914]
push dword [ecx + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atof]
fstp dword [ebp - 0x14]
movss xmm0, dword [ebp - 0x14]
add esp, 4
jmp 0x100855f6
push dword [ecx + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtof]
fstp dword [ebp - 0x14]
movss xmm0, dword [ebp - 0x14]
add esp, 4
jmp 0x100855f6
movss xmm0, dword [ecx + 0xc]
jmp 0x100855f6
movd xmm0, dword [ecx + 0xc]
cvtdq2ps xmm0, xmm0
jmp 0x100855f6
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.100a4660
cvtsd2ss xmm0, xmm0
jmp 0x100855f6
xorps xmm0, xmm0
mov eax, dword [ebp - 0x1c]
movss dword [ebp - 0x14], xmm0
mov edi, dword [eax + 8]
mov eax, dword [0x1010c0c0]
test al, 1
jne 0x1008564e
or eax, 1
mov dword [0x1010c0c0], eax
mov edx, 0x990704d7
mov dword [ebp - 4], 3
lea ecx, [ebp - 0x30]
call fcn.10043520
push 0xda7d68cb
mov edx, eax
mov ecx, 0x1010c0c4
call fcn.10043990
add esp, 4
push 0x100addd0
call fcn.100a35fc
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov eax, dword [0x1010c0c4]
call eax
mov esi, eax
mov dword [ebp - 0x24], esi
test edi, edi
je 0x100856d0
test esi, esi
je 0x100856d0
mov ecx, dword [edi + 0x18]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x100856d0
nop dword [eax]
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov eax, dword [ecx]
mov ecx, esi
and eax, 0xffffff
push eax
call edx
mov esi, eax
test esi, esi
je 0x100856b9
mov edi, 0x811c9dc5
xor ecx, ecx
nop
inc ecx
cmp byte [ecx + esi], 0
jne 0x10085690
xor edx, edx
test ecx, ecx
je 0x100856b9
nop dword [eax]
movsx eax, byte [edx + esi]
inc edx
xor eax, edi
imul edi, eax, 0x1000193
cmp edx, ecx
jb 0x100856a0
cmp edi, 0xff0c53ad
je 0x100856cb
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ecx + 0x14]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je 0x100856d0
mov esi, dword [ebp - 0x24]
jmp 0x10085670
mov ecx, dword [ebp - 0x1c]
jmp 0x100856d2
xor ecx, ecx
movsx eax, byte [ecx + 0x10]
dec eax
cmp eax, 6
ja case.0x100856dc.4
jmp dword [eax*4 + 0x10085930]
push dword [ecx + 4]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atof]
fstp dword [ebp - 0x1c]
movss xmm4, dword [ebp - 0x1c]
add esp, 4
movss dword [ebp - 0x20], xmm4
jmp 0x10085742
push dword [ecx + 8]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtof]
jmp 0x100856ec
movss xmm4, dword [ecx + 0xc]
movss dword [ebp - 0x20], xmm4
jmp 0x10085742
movd xmm4, dword [ecx + 0xc]
cvtdq2ps xmm4, xmm4
movss dword [ebp - 0x20], xmm4
jmp 0x10085742
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + 4]
mov ecx, dword [ecx]
call fcn.100a4660
xorps xmm4, xmm4
cvtsd2ss xmm4, xmm0
movss dword [ebp - 0x20], xmm4
jmp 0x10085742
xorps xmm4, xmm4
mov eax, dword [0x10106b6c]
mov edx, dword [0x100c1240]
add eax, 0xffffffc2
movss xmm5, dword [ebp - 0x18]
xor eax, 0xe7c70455
cmp byte [0x100ca350], 0
mov esi, dword [eax + edx]
mov eax, dword [0x1010696c]
movd xmm0, esi
cvtdq2ps xmm0, xmm0
mulss xmm0, dword [eax + 0x20]
movss dword [ebp - 0x1c], xmm0
je 0x1008582c
mov ecx, dword [0x10106b08]
mov eax, dword [0x10106bc4]
add ecx, 0xffffffdb
movss xmm3, dword [ebp - 0x14]
xor ecx, 0xe7c7043c
add eax, 0xffffffac
movss dword [ebp - 0x50], xmm5
xor eax, 0xe7c7046b
movss dword [ebp - 0x4c], xmm3
movss dword [ebp - 0x48], xmm4
movss xmm0, dword [ecx + edx + 8]
movss xmm2, dword [ecx + edx]
addss xmm0, dword [eax + edx + 8]
addss xmm2, dword [eax + edx]
movss xmm1, dword [ecx + edx + 4]
addss xmm1, dword [eax + edx + 4]
mov dword [ebp - 0x38], esi
movss dword [ebp - 0x28], xmm0
mov eax, dword [ebp - 0x28]
mov dword [ebp - 0x3c], eax
mov eax, dword [0x101075b0]
unpcklps xmm2, xmm1
movq qword [ebp - 0x44], xmm2
mov word [ebp - 0x34], 0
cmp eax, dword [0x101075b4]
je 0x10085813
movups xmm0, xmmword [ebp - 0x50]
movups xmmword [eax], xmm0
movups xmm0, xmmword [ebp - 0x40]
movups xmmword [eax + 0x10], xmm0
add dword [0x101075b0], 0x20
jmp 0x10085827
lea ecx, [ebp - 0x50]
push ecx
push eax
mov ecx, 0x101075ac
call fcn.10087a80
movss xmm5, dword [ebp - 0x18]
movss xmm0, dword [ebp - 0x1c]
mov eax, dword [0x101075a8]
test eax, eax
je 0x100858c5
mov ecx, dword [0x101075a4]
xor edx, edx
movss xmm2, dword [0x100b6820]
lea esi, [eax + ecx]
mov dword [ebp - 0x24], esi
cmp ecx, esi
je 0x100858c5
mov edi, dword [0x101075a0]
movss xmm3, dword [0x100b666c]
mov esi, dword [0x1010759c]
lea eax, [edi - 1]
and eax, ecx
mov eax, dword [esi + eax*4]
mov esi, dword [ebp - 0x24]
cmp byte [eax + 0x32], 0
jne 0x1008589a
movss xmm1, dword [eax + 0xc]
addss xmm1, dword [eax + 8]
subss xmm0, xmm1
call fcn.1001cc90
comiss xmm0, xmm3
ja 0x1008589a
comiss xmm2, xmm0
jbe 0x1008589a
movaps xmm2, xmm0
mov edx, eax
movss xmm0, dword [ebp - 0x1c]
inc ecx
cmp ecx, esi
jne 0x10085861
movss xmm3, dword [ebp - 0x14]
test edx, edx
je 0x100858c5
movss xmm0, dword [ebp - 0x20]
mov byte [edx + 0x32], 1
movss dword [edx + 0x24], xmm5
movss dword [edx + 0x28], xmm3
movss dword [edx + 0x2c], 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 4