Function at 0x1008c580
Capabilities:
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xffffffe0
sub esp, 0xc0
mov esi, esp
mov dword [esi + 0x98], ebp
mov dword [esi + 0x18], ecx
mov edx, dword [ebp + 8]
mov dword [esi + 0x9c], esp
mov dword [esi + 0xa8], 0xffffffff
lea eax, [esi + 0xa0]
mov dword [esi + 0xa4], 0x100a06e0
mov ecx, dword fs:[0]
mov dword [esi + 0xa0], ecx
mov dword fs:[0], eax
mov ecx, dword [edx + 4]
mov eax, dword [ecx + 0x18]
cmp eax, 2
jg 0x1008c5eb
add ecx, 0x3c8
cmp eax, 3
jb 0x1008c5fd
call fcn.1009f400
add ecx, 0x9c68
add eax, 0xfffffffd
cmp eax, 2
jae 0x1008cbb8
imul eax, eax, 0x32e0
add ecx, eax
mov dword [esi + 0xc], ecx
mov eax, dword [edx]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x294c]
mov edi, dword [eax]
mov eax, dword [0x1025f63c]
test al, 1
je 0x1008c9a9
mov ebx, dword [0x1025f638]
mov eax, dword [ebx + 4]
mov eax, dword [eax + ecx]
mov dword [esi + 8], eax
add edi, dword [edi + 0xb0]
mov ecx, dword [esi + 0x18]
push 0
push dword [ebp + 0xc]
call fcn.10089480
mov ebx, dword [ebp + 8]
mov ecx, dword [ebx + 0x14]
sub ecx, dword [ebx + 0xc]
lea edx, [ebx + 0xc]
mov dword [esi + 0x10], edx
sar ecx, 2
imul ecx, ecx, 0xeeeeeeef
cmp ecx, eax
jae 0x1008c673
cmp eax, 0x4444445
jae 0x1008cbbd
mov ecx, dword [esi + 0x10]
push eax
call fcn.1009f410
mov eax, dword [esi + 8]
lea eax, [eax + eax*2]
lea eax, [edi + eax*4]
mov dword [esi + 4], eax
xor ecx, ecx
xorps xmm6, xmm6
movss xmm7, dword [0x101a72c0]
jmp 0x1008c69d
mov ecx, dword [esi + 0x14]
inc ecx
cmp ecx, 6
je 0x1008c85a
mov eax, dword [ebp + 0xc]
mov edx, ecx
mov dword [esi + 0x14], ecx
bt eax, ecx
jae 0x1008c690
mov eax, dword [esi + 0x14]
lea eax, [eax + eax*2]
mov ecx, dword [esi + 0x18]
mov edi, dword [ecx + eax*4]
mov eax, dword [ecx + eax*4 + 4]
mov dword [esi + 8], eax
cmp edi, eax
jne 0x1008c704
jmp 0x1008c690
mov dword [esi + 0xa8], 0xffffffff
mov ecx, dword [esi + 0x10]
lea ebx, [esi + 0x40]
push ebx
push edx
push edi
lea edx, [esi + 0x7c]
push edx
lea edx, [esi + 0x20]
push edx
push eax
call fcn.1009f4d0
movss xmm7, dword [0x101a72c0]
xorps xmm6, xmm6
add edi, 4
cmp edi, dword [esi + 8]
je 0x1008c690
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 8]
add eax, ecx
je 0x1008c6fc
mov ecx, dword [edi]
mov edx, ecx
shl edx, 6
lea ecx, [edx + ecx*4]
mov dword [esi + 0x28], 0
movlps qword [esi + 0x20], xmm6
mov edx, dword [eax + ecx]
lea edx, [edx + edx*2]
shl edx, 4
movss xmm0, dword [eax + ecx + 0x10]
addss xmm0, dword [eax + ecx + 0x1c]
movss xmm3, dword [eax + ecx + 0xc]
addss xmm3, dword [eax + ecx + 0x18]
movss xmm1, dword [eax + ecx + 8]
addss xmm1, dword [eax + ecx + 0x14]
mulss xmm0, xmm7
mulss xmm3, xmm7
mulss xmm1, xmm7
mov ebx, dword [esi + 0xc]
movss xmm2, dword [ebx + edx + 0x24]
mulss xmm2, xmm3
movss xmm4, dword [ebx + edx + 0x20]
mulss xmm4, xmm1
addss xmm4, xmm2
movss xmm2, dword [ebx + edx + 0x28]
mulss xmm2, xmm0
addss xmm2, xmm4
unpcklps xmm3, xmm3
movss xmm4, dword [ebx + edx + 0x14]
movss xmm5, dword [ebx + edx + 4]
unpcklps xmm5, xmm4
movss xmm4, dword [ebx + edx]
mulps xmm5, xmm3
movss xmm3, dword [ebx + edx + 0x10]
unpcklps xmm4, xmm3
unpcklps xmm1, xmm1
mulps xmm1, xmm4
addps xmm1, xmm5
movss xmm3, dword [ebx + edx + 0x18]
movss xmm4, dword [ebx + edx + 8]
unpcklps xmm4, xmm3
unpcklps xmm0, xmm0
mulps xmm0, xmm4
addps xmm0, xmm1
movss xmm1, dword [ebx + edx + 0x1c]
movss xmm3, dword [ebx + edx + 0xc]
unpcklps xmm3, xmm1
addps xmm3, xmm0
addss xmm2, dword [ebx + edx + 0x2c]
movlps qword [esi + 0x20], xmm3
movss dword [esi + 0x28], xmm2
mov dword [esi + 0x40], 0
lea edx, [eax + ecx + 4]
mov byte [esi + 0x7c], 1
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x10]
cmp eax, dword [ecx + 0x14]
je 0x1008c6d0
mov ecx, dword [edx]
mov edx, dword [edi]
mov ebx, dword [esi + 0x28]
mov dword [eax + 8], ebx
mov ebx, dword [ebp + 8]
movsd xmm0, qword [esi + 0x20]
movsd qword [eax], xmm0
movups xmmword [eax + 0xc], xmm6
mov dword [eax + 0x19], 0
mov dword [eax + 0x1d], 0
mov word [eax + 0x24], 1
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x30], edx
mov dword [eax + 0x34], ecx
mov dword [eax + 0x38], 0
add dword [ebx + 0x10], 0x3c
jmp 0x1008c6fc
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov ebx, dword [ecx + 4]
mov ecx, dword [ebx + 0x18]
mov dword [esi + 8], ecx
mov edi, dword [eax]
mov eax, dword [0x1025f644]
test al, 1
je 0x1008cab9
mov ecx, dword [0x1025f640]
mov dword [esi + 0xa8], 0xffffffff
lea eax, [ebx + 0x6c]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + 8]
mov dword [ecx + edi + 8], edx
movsd xmm0, qword [eax]
movsd qword [ecx + edi], xmm0
mov edx, dword [0x10259d58]
mov ecx, edi
push eax
call dword [edx + 0x18]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
test eax, eax
je 0x1008c8d9
lea ecx, [ebx + 0x78]
mov dword [esi + 4], ecx
mov edx, edi
lea edi, [ebx + 0x84]
mov ecx, dword [0x10259d58]
mov dword [esi + 0xc], ecx
mov ecx, eax
push edi
mov edi, edx
push dword [esi + 4]
mov eax, dword [esi + 0xc]
call dword [eax + 0x28]
mov eax, dword [esi + 8]
cmp eax, 2
jg 0x1008c8f3
add ebx, 0x3c8
cmp eax, 3
jb 0x1008c905
mov ecx, ebx
call fcn.1009f400
add ebx, 0x9c68
add eax, 0xfffffffd
cmp eax, 2
jae 0x1008cbc2
imul eax, eax, 0x32e0
add ebx, eax
movss xmm0, dword [ebx + 0x3004]
mov dword [esi + 0x20], 0
movss dword [esi + 0x24], xmm0
mov dword [esi + 0x28], 0
mov eax, dword [0x10259d58]
mov ecx, edi
lea edx, [esi + 0x20]
push edx
call dword [eax + 0x14]
mov eax, dword [ebx + 0x3000]
shl eax, 4
lea eax, [eax + eax*2]
push eax
push ebx
push dword [edi + 0x2910]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [0x10259d58]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0xa]
mov eax, dword [eax]
mov dword [edi + 0x2690], eax
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
cmp edi, ebx
je 0x1008c993
nop word cs:[eax + eax]
push 1
push edi
push eax
call fcn.1008b1c0
mov eax, dword [ebp + 8]
add edi, 0x3c
cmp edi, ebx
jne 0x1008c980
mov eax, dword [esi + 0xa0]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
mov dword [esi + 0x94], ecx
mov dword [esi + 0x1c], edi
or eax, 1
mov dword [0x1025f63c], eax
mov eax, dword [0x10259d5c]
mov dword [esi + 0x14], eax
mov eax, 0x861cb0c6
mov ecx, 0xb148c790
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xa4114c8b
mov ecx, 0x8b1bd5e6
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0xf44ac06a
mov ecx, 0xcabd7d6a
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov ecx, 0xd42f5350
mov eax, 0x33137ba6
mov edx, 0x33137ba6
mov dword [esi + 0x5c], edx
mov dword [esi + 0x58], ecx
mov ecx, 0xf57df285
mov edx, 0xd82686f5
mov dword [esi + 0x24], edx
mov dword [esi + 0x20], ecx
mov ecx, 0xcd652de6
mov edx, 0xb536b288
mov dword [esi + 0x2c], edx
mov dword [esi + 0x28], ecx
mov ecx, 0xbc249f07
mov edx, 0xa5df0903
mov dword [esi + 0x34], edx
mov dword [esi + 0x30], ecx
mov ecx, 0xa04a0028
mov dword [esi + 0x3c], eax
mov dword [esi + 0x38], ecx
lea eax, [esi + 0x20]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x40]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x40], xmm0
movaps xmm0, xmmword [esi + 0x50]
xorps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi + 0x50], xmm0
mov dword [esi + 0xa8], 0
lea eax, [esi + 0x40]
lea ecx, [esi + 0x7c]
mov dword [esi + 4], ecx
push eax
call fcn.10015240
mov eax, dword [esi + 0x8c]
mov dword [esi + 8], eax
cmp dword [esi + 0x90], 0x10
jb 0x1008ca8f
mov eax, dword [esi + 0x7c]
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
je 0x1008cbc9
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x1008cbda
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1008cc24
mov dword [esi + 0x1c], ebx
mov dword [esi + 0x18], edi
or eax, 1
mov dword [0x1025f644], eax
mov eax, 0x861cb0c6
mov ecx, 0xac48c390
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xe01c598f
mov ecx, 0xc369dfb6
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0xce6bfc62
mov ecx, 0xcbb66e6a
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov eax, 0xa04a0028
mov ecx, 0x33137ba6
mov edx, 0xf57df285
mov edi, 0xd82686f5
mov dword [esi + 0x24], edi
mov dword [esi + 0x20], edx
mov edx, 0xcd652de6
mov edi, 0xb536b288
mov dword [esi + 0x2c], edi
mov dword [esi + 0x28], edx
mov edx, 0xbc249f07
mov edi, 0xa5df0903
mov dword [esi + 0x34], edi
mov dword [esi + 0x30], edx
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
xor eax, eax
lea ecx, [esi + 0x20]
movaps xmm0, xmmword [esi + 0x40]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x40], xmm0
movaps xmm0, xmmword [esi + 0x50]
xorps xmm0, xmmword [ecx + 0x10]
mov eax, dword [0x10259d5c]
mov dword [esi + 0x14], eax
movaps xmmword [esi + 0x50], xmm0
mov dword [esi + 0xa8], 2
lea ecx, [esi + 0x7c]
mov dword [esi + 0xc], ecx
lea eax, [esi + 0x40]
push eax
call fcn.10015240
mov eax, dword [esi + 0x8c]
mov dword [esi + 4], eax
cmp dword [esi + 0x90], 0x10
jb 0x1008cb92
mov eax, dword [esi + 0x7c]
mov dword [esi + 0xc], eax
cmp dword [esi + 4], 0
je 0x1008cbd0
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x1008ccbb
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1008cd05
call fcn.1009f400
call fcn.100365f0
mov ecx, ebx
call fcn.1009f400
mov ecx, 0x811c9dc5
jmp 0x1008cc41
mov ecx, 0x811c9dc5
jmp 0x1008cd22
mov edi, dword [esi + 8]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 4]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x1008cbea
cmp dword [esi + 0x10], 0
je 0x1008cc41
add edx, dword [esi + 4]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x10], edi
jne 0x1008cc2f
mov edx, dword [esi + 0x14]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x1008cd95
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x1008cc85
cmp dword [ebx + 0x1c], 0x10
jb 0x1008cc6f
mov eax, dword [ebx + 8]
jmp 0x1008cc72
lea eax, [ebx + 8]
push dword [esi + 8]
push eax
push dword [esi + 4]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1008cc92
cmp ebx, edi
je 0x1008cd95
mov ebx, dword [ebx + 4]
jmp 0x1008cc5c
add ebx, 0x20
lea ecx, [esi + 0x7c]
call fcn.10014f60
mov dword [0x1025f638], ebx
mov dword [esi + 0xa8], 0xffffffff
mov edi, dword [esi + 0x1c]
mov ecx, dword [esi + 0x94]
jmp 0x1008c627
mov edi, dword [esi + 4]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0xc]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x1008cccb
cmp dword [esi + 0x10], 0
je 0x1008cd22
add edx, dword [esi + 0xc]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x10], edi
jne 0x1008cd10
mov edx, dword [esi + 0x14]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1008cdac
mov ebx, edi
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x18]
jne 0x1008cd64
cmp dword [ebx + 0x1c], 0x10
jb 0x1008cd4e
mov eax, dword [ebx + 8]
jmp 0x1008cd51
lea eax, [ebx + 8]
push dword [esi + 4]
push eax
push dword [esi + 0xc]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1008cd6d
cmp ebx, edi
je 0x1008cdac
mov ebx, dword [ebx + 4]
jmp 0x1008cd3b
add ebx, 0x20
lea ecx, [esi + 0x7c]
call fcn.10014f60
mov ecx, ebx
mov dword [0x1025f640], ebx
mov dword [esi + 0xa8], 0xffffffff
mov edi, dword [esi + 0x18]
mov ebx, dword [esi + 0x1c]
jmp 0x1008c887
mov dword [esi + 0xa8], 1
push str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
mov dword [esi + 0xa8], 3
push str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
nop word cs:[eax + eax]
push ebp
sub esp, 0x18
lea esi, [ebp - 0xac]
mov ebp, dword [esi + 0x98]
lea ecx, [esi + 0x7c]
call fcn.10014f60
add esp, 0x18
pop ebp
ret