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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xffffffe0
sub esp, 0x1a0
mov esi, esp
mov dword [esi + 0x178], ebp
mov edx, dword [ebp + 8]
mov dword [esi + 0x17c], esp
mov dword [esi + 0x188], 0xffffffff
lea eax, [esi + 0x180]
mov dword [esi + 0x184], 0x100a06d0
mov ecx, dword fs:[0]
mov dword [esi + 0x180], ecx
mov dword fs:[0], eax
mov eax, dword [edx]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x294c]
mov eax, dword [eax]
mov dword [esi + 0x58], eax
mov eax, dword [0x1025e63c]
test al, 1
je 0x1008b8f0
mov ebx, dword [0x1025e638]
mov eax, dword [ebx + 4]
mov eax, dword [eax + ecx]
mov dword [esi + 0x12c], eax
mov eax, dword [esi + 0x58]
add eax, dword [eax + 0xb0]
mov dword [esi + 0x58], eax
mov ecx, dword [0x10258da0]
mov dword [esi + 0x13c], 0
xorps xmm0, xmm0
movlps qword [esi + 0x134], xmm0
mov eax, dword [ecx]
lea edx, [esi + 0x134]
mov dword [esp], edx
call dword [eax + 0x48]
sub esp, 4
mov eax, dword [0x10258d58]
mov dword [esi + 0x4c], eax
mov edx, dword [eax + 0x1d8]
mov eax, dword [0x10258ed0]
test al, 1
je 0x1008ba20
mov ebx, dword [0x10258ecc]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebx + 4]
movzx eax, word [eax + edx]
mov word [esi + 0x5e], ax
movss xmm2, dword [ecx + 8]
mov eax, dword [esi + 0x4c]
subss xmm2, dword [eax + 0x198]
movss xmm1, dword [ecx]
movss xmm0, dword [ecx + 4]
subss xmm0, dword [eax + 0x194]
subss xmm1, dword [eax + 0x190]
movss dword [esi + 0x44], xmm0
mulss xmm0, xmm0
movss dword [esi + 0x48], xmm1
mulss xmm1, xmm1
addss xmm1, xmm0
movss dword [esi + 0x40], xmm2
movaps xmm0, xmm2
mulss xmm0, xmm2
addss xmm0, xmm1
cvtss2sd xmm0, xmm0
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jb 0x1008b303
sqrtsd xmm0, xmm0
jmp 0x1008b31b
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
fstp qword [esi + 0x170]
movsd xmm0, qword [esi + 0x170]
movsd qword [esi + 0x50], xmm0
movss xmm0, dword [esi + 0x134]
mulss xmm0, dword [0x101af73c]
cvtss2sd xmm0, xmm0
movsd qword [esi + 0x118], xmm0
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp qword [esi + 0x168]
movsd xmm0, qword [esi + 0x168]
movsd qword [esi + 0xa0], xmm0
movsd xmm0, qword [esi + 0x118]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp qword [esi + 0x160]
movsd xmm0, qword [esi + 0x160]
movsd qword [esi + 0x118], xmm0
movss xmm0, dword [esi + 0x138]
mulss xmm0, dword [0x101af73c]
cvtss2sd xmm0, xmm0
movsd qword [esi + 0x120], xmm0
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp qword [esi + 0x158]
movsd xmm0, qword [esi + 0x158]
movsd qword [esi + 0x148], xmm0
movsd xmm0, qword [esi + 0x120]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
movss xmm1, dword [0x101af73c]
fstp qword [esi + 0x150]
mulss xmm1, dword [esi + 0x13c]
movsd xmm4, qword [esi + 0x150]
ucomiss xmm1, dword [0x101af740]
jae 0x1008b8ac
movss xmm0, dword [0x101af744]
ucomiss xmm0, xmm1
jae 0x1008b8ac
movsd xmm0, qword [esi + 0x50]
cvtsd2ss xmm0, xmm0
xorps xmm2, xmm2
movaps xmm1, xmm0
cmpneqss xmm1, xmm2
andps xmm0, xmm1
movss xmm2, dword [0x101a6280]
andnps xmm1, xmm2
orps xmm1, xmm0
movsd xmm0, qword [esi + 0xa0]
cvtsd2ss xmm0, xmm0
movss xmm3, dword [esi + 0x40]
divss xmm3, xmm1
mulss xmm3, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm4
movss xmm4, dword [esi + 0x44]
divss xmm4, xmm1
movss xmm2, dword [esi + 0x48]
divss xmm2, xmm1
movsd xmm1, qword [esi + 0x118]
cvtsd2ss xmm1, xmm1
mulss xmm0, xmm1
mulss xmm0, xmm2
movsd xmm2, qword [esi + 0x148]
cvtsd2ss xmm2, xmm2
mulss xmm2, xmm1
mulss xmm2, xmm4
addss xmm2, xmm0
subss xmm2, xmm3
xorps xmm0, xmm0
cvtss2sd xmm0, xmm2
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_acos
fstp dword [esi + 0x130]
movss xmm0, dword [esi + 0x130]
mulss xmm0, dword [0x101af748]
mov eax, dword [0x10258d54]
xorps xmm1, xmm1
cvtsi2ss xmm1, dword [eax + 0xc8]
xorps xmm2, xmm2
maxss xmm2, xmm0
ucomiss xmm2, xmm1
ja 0x1008b896
xor eax, eax
cmp word [esi + 0x5e], 0x1f
sete al
mov ecx, dword [esi + 0x4c]
movss xmm0, dword [ecx + 0x190]
movss xmm1, dword [ecx + 0x194]
movss xmm2, dword [ecx + 0x198]
mov ecx, dword [0x10258d58]
mov edx, dword [ecx + 0x1dc]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov edi, dword [ecx]
mov ecx, dword [0x10258d94]
mov ebx, dword [ecx]
mov dword [esi + 0x188], 0xffffffff
mov ecx, dword [0x10258d74]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edx
mov dword [esp + 8], edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x20], edi
movss dword [esp + 0x1c], xmm2
movss dword [esp + 0x18], xmm1
movss dword [esp + 0x14], xmm0
mov dword [esp + 4], ebx
lea ebx, [esi + 0xc0]
mov dword [esp], ebx
call fcn.100bf2b0
sub esp, 0x24
movsd xmm0, qword [esi + 0xd0]
movsd qword [edi + 0x1c], xmm0
movups xmm0, xmmword [esi + 0xc0]
movups xmmword [edi + 0xc], xmm0
cmp dword [edi + 0x30], 0
jne 0x1008b591
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x18], 1
jne 0x1008b896
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x10], 0
jle 0x1008b896
mov eax, dword [0x10258d54]
cmp byte [eax + 0xb0], 0
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x1c]
jne 0x1008b5bb
cmp ecx, 4
jl 0x1008b896
cmp byte [ebp + 0x10], 0
jne 0x1008b658
xor edx, edx
cmp ecx, 4
setne dl
mov edi, dword [eax + edx*8 + 0xac]
mov ecx, dword [eax + 0xb8]
mov eax, dword [eax + 0xbc]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.10087190
test al, al
je 0x1008b5fb
mov eax, dword [0x10258d54]
mov edi, dword [eax + 0xc0]
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [0x10258ee8]
test al, 1
je 0x1008bebc
mov ebx, dword [0x10258ee4]
mov eax, dword [ebx + 4]
mov ecx, dword [eax + ecx]
add ecx, 5
cmp ecx, edi
cmovge ecx, edi
cmp word [esi + 0x5e], 0x1f
lea ebx, [esi + 0xc0]
jne 0x1008b64c
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx]
mov edx, dword [ecx]
mov ecx, dword [0x10258ee8]
test cl, 1
je 0x1008bff5
mov ecx, dword [eax + edx]
add ecx, 5
mov eax, dword [ebp + 0xc]
cmp dword [eax + 0x10], ecx
jl 0x1008b896
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [0x10258ee0]
test al, 1
je 0x1008bd99
mov ebx, dword [0x10258edc]
mov eax, dword [ebx + 4]
test byte [eax + ecx + 1], 2
jne 0x1008b87a
mov eax, dword [esi + 0x12c]
lea eax, [eax + eax*2]
mov edx, dword [esi + 0x58]
lea edi, [edx + eax*4]
mov ecx, dword [ebp + 0xc]
mov ecx, dword [ecx + 0x30]
add edi, dword [edx + eax*4 + 8]
mov eax, ecx
shl eax, 6
lea eax, [eax + ecx*4]
mov dword [esi + 0x58], eax
mov edx, dword [edi + eax]
mov ecx, edx
shl ecx, 4
lea eax, [ecx + ecx*2]
mov ebx, dword [ebp + 8]
mov ebx, dword [ebx + 4]
movss xmm4, dword [ebx + eax + 0x3d4]
movss xmm0, dword [ebx + eax + 0x36b4]
ucomiss xmm4, xmm0
jne 0x1008b6d2
jnp 0x1008b843
lea ecx, [ebx + 0x6988]
lea edx, [edx + edx*2]
shl edx, 4
mov dword [esi + 0x40], ecx
movss xmm1, dword [ecx + edx + 0xc]
ucomiss xmm4, xmm1
jne 0x1008b6f2
jnp 0x1008b843
lea ecx, [ebx + 0x9c68]
mov dword [esi + 0x44], ecx
movss xmm2, dword [ecx + edx + 0xc]
ucomiss xmm4, xmm2
jne 0x1008b70c
jnp 0x1008b843
lea ecx, [ebx + 0xcf48]
movss xmm3, dword [ecx + edx + 0xc]
ucomiss xmm4, xmm3
jne 0x1008b723
jnp 0x1008b843
ucomiss xmm0, xmm2
jne 0x1008b72e
jnp 0x1008b843
ucomiss xmm0, xmm3
jne 0x1008b739
jnp 0x1008b843
ucomiss xmm0, xmm1
jne 0x1008b744
jnp 0x1008b843
ucomiss xmm1, xmm2
jne 0x1008b74f
jnp 0x1008b843
ucomiss xmm1, xmm3
jne 0x1008b75a
jnp 0x1008b843
ucomiss xmm2, xmm3
jne 0x1008b765
jnp 0x1008b843
mov dword [esi + 0x48], ecx
mov ecx, dword [esi + 0x4c]
add ecx, 0x190
add edi, dword [esi + 0x58]
add eax, ebx
add eax, 0x3c8
add ebx, 0x36a8
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esi + 0x4c], ecx
mov edx, dword [ebp + 0xc]
call fcn.1008aa30
test al, al
je 0x1008b7ac
mov eax, dword [ebp + 0xc]
movq xmm0, qword [eax + 0x28]
pcmpeqd xmm1, xmm1
psubd xmm0, xmm1
movq qword [eax + 0x28], xmm0
mov eax, dword [edi]
lea eax, [eax + eax*2]
shl eax, 4
add ebx, eax
mov dword [esp], edi
mov dword [esp + 4], ebx
mov ecx, dword [esi + 0x4c]
mov ebx, dword [ebp + 0xc]
mov edx, ebx
call fcn.1008aa30
test al, al
je 0x1008b7d1
inc dword [ebx + 0x28]
mov eax, dword [edi]
lea eax, [eax + eax*2]
shl eax, 4
mov ecx, dword [esi + 0x40]
add ecx, eax
mov dword [esp], edi
mov dword [esp + 4], ecx
mov ecx, dword [esi + 0x4c]
mov edx, ebx
call fcn.1008aa30
test al, al
je 0x1008b7f6
inc dword [ebx + 0x28]
mov eax, dword [edi]
lea eax, [eax + eax*2]
shl eax, 4
mov ecx, dword [esi + 0x44]
add ecx, eax
mov dword [esp], edi
mov dword [esp + 4], ecx
mov ecx, dword [esi + 0x4c]
mov edx, ebx
call fcn.1008aa30
test al, al
je 0x1008b81b
inc dword [ebx + 0x2c]
mov eax, dword [edi]
lea eax, [eax + eax*2]
shl eax, 4
mov ecx, dword [esi + 0x48]
add ecx, eax
mov dword [esp], edi
mov dword [esp + 4], ecx
mov ecx, dword [esi + 0x4c]
mov edx, ebx
call fcn.1008aa30
test al, al
je 0x1008b843
mov eax, dword [ebp + 0xc]
inc dword [eax + 0x2c]
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 0x28]
mov edx, dword [ecx + 0x38]
cmp eax, edx
setge byte [ecx + 0x25]
mov ecx, dword [ebp + 8]
mov ecx, dword [ecx + 4]
cmp byte [ecx + 9], 0
je 0x1008b896
cmp eax, edx
jl 0x1008b896
mov ecx, dword [ecx + 0x18]
test ecx, ecx
je 0x1008b88a
cmp ecx, 2
jg 0x1008b88a
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x2c], 0
setne al
jmp 0x1008b893
mov eax, dword [ebp + 0xc]
mov dword [eax + 0x28], 3
mov byte [eax + 0x25], 1
jmp 0x1008b896
cmp eax, 2
setge al
mov ecx, dword [ebp + 0xc]
mov byte [ecx + 0x25], al
mov eax, dword [esi + 0x180]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
movsd qword [esi + 0x140], xmm0
movsd qword [esp], xmm0
movsd qword [esi + 0x120], xmm4
call sub.api_ms_win_crt_math_l1_1_0.dll_sin
fstp st(0)
movsd xmm0, qword [esi + 0x140]
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_cos
fstp st(0)
movsd xmm4, qword [esi + 0x120]
jmp 0x1008b40e
mov dword [esi + 0x50], ecx
or eax, 1
mov dword [0x1025e63c], eax
mov eax, dword [0x10258d5c]
mov dword [esi + 0x48], eax
mov eax, 0x2a37a706
mov ecx, 0x51f6688c
mov dword [esi + 0x64], ecx
mov dword [esi + 0x60], eax
mov eax, 0x8055146b
mov ecx, 0x4d1da0be
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x68], eax
mov eax, 0x8c997f2a
mov ecx, 0x19da39e6
mov dword [esi + 0x74], ecx
mov dword [esi + 0x70], eax
mov ecx, 0xea3c6f50
mov eax, 0x8f05a52e
mov edx, 0x8f05a52e
mov dword [esi + 0x7c], edx
mov dword [esi + 0x78], ecx
mov ecx, 0x5956e545
mov edx, 0x389829e9
mov dword [esi + 0xc4], edx
mov dword [esi + 0xc0], ecx
mov ecx, 0xe9217506
mov edx, 0x7330c7d0
mov dword [esi + 0xcc], edx
mov dword [esi + 0xc8], ecx
mov ecx, 0xc4f72047
mov edx, 0x76b84d8f
mov dword [esi + 0xd4], edx
mov dword [esi + 0xd0], ecx
mov ecx, 0x9e593c28
mov dword [esi + 0xdc], eax
mov dword [esi + 0xd8], ecx
lea eax, [esi + 0xc0]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x60]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x60], xmm0
movaps xmm0, xmmword [esi + 0x70]
xorps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi + 0x70], xmm0
mov dword [esi + 0x188], 0
lea eax, [esi + 0x60]
mov dword [esp], eax
lea ecx, [esi + 0xa8]
mov dword [esi + 0x40], ecx
call fcn.10015240
sub esp, 4
mov eax, dword [esi + 0xb8]
mov dword [esi + 0x4c], eax
cmp dword [esi + 0xbc], 0x10
jb 0x1008b9f6
mov eax, dword [esi + 0xa8]
mov dword [esi + 0x40], eax
cmp dword [esi + 0x4c], 0
je 0x1008bbc5
mov eax, dword [esi + 0x4c]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x44], ecx
cmp eax, 4
jae 0x1008bbd6
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1008bc20
mov dword [esi + 0xa0], edx
or eax, 1
mov dword [0x10258ed0], eax
mov eax, dword [0x10258d5c]
mov dword [esi + 0x50], eax
mov eax, 0x2a37a706
mov ecx, 0x4cec688c
mov dword [esi + 0xc4], ecx
mov dword [esi + 0xc0], eax
mov eax, 0x9c431c74
mov ecx, 0x1f52a6a4
mov dword [esi + 0xcc], ecx
mov dword [esi + 0xc8], eax
mov eax, 0xa1836922
mov ecx, 0x1b8660e2
mov dword [esi + 0xd4], ecx
mov dword [esi + 0xd0], eax
mov eax, 0xea105577
mov ecx, 0xea41c84b
mov dword [esi + 0xdc], ecx
mov dword [esi + 0xd8], eax
mov eax, 0x4bc7442f
mov ecx, 0xa0159591
mov dword [esi + 0xe4], ecx
mov dword [esi + 0xe0], eax
mov eax, 0xb8915bf3
mov ecx, 0x1f96ae4
mov dword [esi + 0xec], ecx
mov dword [esi + 0xe8], eax
mov eax, 0x5956e545
mov ecx, 0x389829e9
mov dword [esi + 0x64], ecx
mov dword [esi + 0x60], eax
mov eax, 0xe9217506
mov ecx, 0x7330c7d0
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x68], eax
mov eax, 0xc4f72047
mov ecx, 0x76b84d8f
mov dword [esi + 0x74], ecx
mov dword [esi + 0x70], eax
mov eax, 0x9e593c28
mov ecx, 0x8f05a52e
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x78], eax
mov eax, 0x22a92d49
mov ecx, 0xce7afce5
mov dword [esi + 0x84], ecx
mov dword [esi + 0x80], eax
mov eax, 0xddf535ba
mov ecx, 0x1f96a9c
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x88], eax
lea eax, [esi + 0x60]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0xc0]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0xc0], xmm0
movaps xmm0, xmmword [esi + 0xd0]
xorps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi + 0xd0], xmm0
movaps xmm0, xmmword [esi + 0xe0]
xorps xmm0, xmmword [eax + 0x20]
movaps xmmword [esi + 0xe0], xmm0
mov dword [esi + 0x188], 2
lea eax, [esi + 0xc0]
mov dword [esp], eax
lea ecx, [esi + 0xa8]
mov dword [esi + 0x44], ecx
call fcn.10015240
sub esp, 4
mov eax, dword [esi + 0xb8]
mov dword [esi + 0x40], eax
cmp dword [esi + 0xbc], 0x10
jb 0x1008bb9f
mov eax, dword [esi + 0xa8]
mov dword [esi + 0x44], eax
cmp dword [esi + 0x40], 0
je 0x1008bbcc
mov eax, dword [esi + 0x40]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x48], ecx
cmp eax, 4
jae 0x1008bcbb
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1008bd05
mov ecx, 0x811c9dc5
jmp 0x1008bc3d
mov ecx, 0x811c9dc5
jmp 0x1008bd22
mov edi, dword [esi + 0x4c]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x40]
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 0x1008bbe6
cmp dword [esi + 0x44], 0
je 0x1008bc3d
add edx, dword [esi + 0x40]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x44], edi
jne 0x1008bc2b
mov edx, dword [esi + 0x48]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x1008c3d2
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0x4c]
cmp eax, dword [ebx + 0x18]
jne 0x1008bc88
cmp dword [ebx + 0x1c], 0x10
jb 0x1008bc6b
mov eax, dword [ebx + 8]
jmp 0x1008bc6e
lea eax, [ebx + 8]
mov ecx, dword [esi + 0x4c]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x40]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1008bc95
cmp ebx, edi
je 0x1008c3d2
mov ebx, dword [ebx + 4]
jmp 0x1008bc58
add ebx, 0x20
lea ecx, [esi + 0xa8]
call fcn.10014f60
mov dword [0x1025e638], ebx
mov dword [esi + 0x188], 0xffffffff
mov ecx, dword [esi + 0x50]
jmp 0x1008b22f
mov edi, dword [esi + 0x40]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x44]
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 0x1008bccb
cmp dword [esi + 0x48], 0
je 0x1008bd22
add edx, dword [esi + 0x44]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x48], edi
jne 0x1008bd10
mov edx, dword [esi + 0x50]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x1008c3e8
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0x40]
cmp eax, dword [ebx + 0x18]
jne 0x1008bd6d
cmp dword [ebx + 0x1c], 0x10
jb 0x1008bd50
mov eax, dword [ebx + 8]
jmp 0x1008bd53
lea eax, [ebx + 8]
mov ecx, dword [esi + 0x40]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x44]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1008bd7a
cmp ebx, edi
je 0x1008c3e8
mov ebx, dword [ebx + 4]
jmp 0x1008bd3d
add ebx, 0x20
lea ecx, [esi + 0xa8]
call fcn.10014f60
mov dword [0x10258ecc], ebx
mov edx, dword [esi + 0xa0]
jmp 0x1008b293
mov dword [esi + 0xa0], ecx
or eax, 1
mov dword [0x10258ee0], eax
mov eax, 0x2a37a706
mov ecx, 0x59f4798c
mov dword [esi + 0x64], ecx
mov dword [esi + 0x60], eax
mov eax, 0xc453107f
mov ecx, 0x156faaee
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x68], eax
mov eax, 0xa3964c01
mov ecx, 0x76b84dfc
mov dword [esi + 0x74], ecx
mov dword [esi + 0x70], eax
mov eax, 0x9e593c28
mov ecx, 0x8f05a52e
mov edx, 0x5956e545
mov edi, 0x389829e9
mov dword [esi + 0xc4], edi
mov dword [esi + 0xc0], edx
mov edx, 0xe9217506
mov edi, 0x7330c7d0
mov dword [esi + 0xcc], edi
mov dword [esi + 0xc8], edx
mov edx, 0xc4f72047
mov edi, 0x76b84d8f
mov dword [esi + 0xd4], edi
mov dword [esi + 0xd0], edx
mov dword [esi + 0x7c], ecx
mov dword [esi + 0xdc], ecx
mov dword [esi + 0x78], eax
mov dword [esi + 0xd8], eax
xor eax, eax
movaps xmm0, xmmword [esi + 0x60]
xorps xmm0, xmmword [ebx]
movaps xmmword [esi + 0x60], xmm0
movaps xmm0, xmmword [esi + 0x70]
xorps xmm0, xmmword [ebx + 0x10]
mov eax, dword [0x10258d5c]
mov dword [esi + 0x50], eax
movaps xmmword [esi + 0x70], xmm0
mov dword [esi + 0x188], 8
lea eax, [esi + 0x60]
mov dword [esp], eax
lea ecx, [esi + 0xa8]
mov dword [esi + 0x44], ecx
call fcn.10015240
sub esp, 4
mov eax, dword [esi + 0xb8]
mov dword [esi + 0x40], eax
cmp dword [esi + 0xbc], 0x10
jb 0x1008be92
mov eax, dword [esi + 0xa8]
mov dword [esi + 0x44], eax
cmp dword [esi + 0x40], 0
je 0x1008bfeb
mov eax, dword [esi + 0x40]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x48], ecx
cmp eax, 4
jae 0x1008c11b
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1008c165
mov dword [esi + 0x118], ecx
mov dword [esi + 0xa0], edi
or eax, 1
mov dword [0x10258ee8], eax
mov eax, 0x2a37a706
mov ecx, 0x59f4798c
mov dword [esi + 0x64], ecx
mov dword [esi + 0x60], eax
mov eax, 0xc453107f
mov ecx, 0x1a6faaee
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x68], eax
mov eax, 0xa896450f
mov ecx, 0x76b825fb
mov dword [esi + 0x74], ecx
mov dword [esi + 0x70], eax
mov eax, 0x9e593c28
mov ecx, 0x8f05a52e
mov edx, 0x5956e545
mov edi, 0x389829e9
mov dword [esi + 0xc4], edi
mov dword [esi + 0xc0], edx
mov edx, 0xe9217506
mov edi, 0x7330c7d0
mov dword [esi + 0xcc], edi
mov dword [esi + 0xc8], edx
mov edx, 0xc4f72047
mov edi, 0x76b84d8f
mov dword [esi + 0xd4], edi
mov dword [esi + 0xd0], edx
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x78], eax
mov dword [esi + 0xdc], ecx
mov dword [esi + 0xd8], eax
xor eax, eax
lea ecx, [esi + 0xc0]
movaps xmm0, xmmword [esi + 0x60]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x60], xmm0
movaps xmm0, xmmword [esi + 0x70]
xorps xmm0, xmmword [ecx + 0x10]
mov eax, dword [0x10258d5c]
mov dword [esi + 0x50], eax
movaps xmmword [esi + 0x70], xmm0
mov dword [esi + 0x188], 4
lea eax, [esi + 0x60]
mov dword [esp], eax
lea ecx, [esi + 0xa8]
mov dword [esi + 0x44], ecx
call fcn.10015240
sub esp, 4
mov eax, dword [esi + 0xb8]
mov dword [esi + 0x40], eax
cmp dword [esi + 0xbc], 0x10
jb 0x1008bfc1
mov eax, dword [esi + 0xa8]
mov dword [esi + 0x44], eax
cmp dword [esi + 0x40], 0
je 0x1008c1f9
mov eax, dword [esi + 0x40]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x48], ecx
cmp eax, 4
jae 0x1008c200
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1008c24a
mov ecx, 0x811c9dc5
jmp 0x1008c182
mov dword [esi + 0xa0], edx
or ecx, 1
mov dword [0x10258ee8], ecx
mov eax, 0x2a37a706
mov ecx, 0x59f4798c
mov dword [esi + 0x64], ecx
mov dword [esi + 0x60], eax
mov eax, 0xc453107f
mov ecx, 0x1a6faaee
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x68], eax
mov eax, 0xa896450f
mov ecx, 0x76b825fb
mov dword [esi + 0x74], ecx
mov dword [esi + 0x70], eax
mov eax, 0x9e593c28
mov ecx, 0x8f05a52e
mov edx, 0x5956e545
mov edi, 0x389829e9
mov dword [esi + 0xc4], edi
mov dword [esi + 0xc0], edx
mov edx, 0xe9217506
mov edi, 0x7330c7d0
mov dword [esi + 0xcc], edi
mov dword [esi + 0xc8], edx
mov edx, 0xc4f72047
mov edi, 0x76b84d8f
mov dword [esi + 0xd4], edi
mov dword [esi + 0xd0], edx
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x78], eax
mov dword [esi + 0xdc], ecx
mov dword [esi + 0xd8], eax
xor eax, eax
mov ecx, ebx
movaps xmm0, xmmword [esi + 0x60]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x60], xmm0
movaps xmm0, xmmword [esi + 0x70]
xorps xmm0, xmmword [ecx + 0x10]
mov eax, dword [0x10258d5c]
mov dword [esi + 0x50], eax
movaps xmmword [esi + 0x70], xmm0
mov dword [esi + 0x188], 6
lea eax, [esi + 0x60]
mov dword [esp], eax
lea ecx, [esi + 0xa8]
mov dword [esi + 0x44], ecx
call fcn.10015240
sub esp, 4
mov eax, dword [esi + 0xb8]
mov dword [esi + 0x40], eax
cmp dword [esi + 0xbc], 0x10
jb 0x1008c0f1
mov eax, dword [esi + 0xa8]
mov dword [esi + 0x44], eax
cmp dword [esi + 0x40], 0
je 0x1008c2e4
mov eax, dword [esi + 0x40]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x48], ecx
cmp eax, 4
jae 0x1008c2eb
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1008c335
mov edi, dword [esi + 0x40]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x44]
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 0x1008c12b
cmp dword [esi + 0x48], 0
je 0x1008c182
add edx, dword [esi + 0x44]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x48], edi
jne 0x1008c170
mov edx, dword [esi + 0x50]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x1008c3fe
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0x40]
cmp eax, dword [ebx + 0x18]
jne 0x1008c1cd
cmp dword [ebx + 0x1c], 0x10
jb 0x1008c1b0
mov eax, dword [ebx + 8]
jmp 0x1008c1b3
lea eax, [ebx + 8]
mov ecx, dword [esi + 0x40]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x44]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1008c1da
cmp ebx, edi
je 0x1008c3fe
mov ebx, dword [ebx + 4]
jmp 0x1008c19d
add ebx, 0x20
lea ecx, [esi + 0xa8]
call fcn.10014f60
mov dword [0x10258edc], ebx
mov ecx, dword [esi + 0xa0]
jmp 0x1008b672
mov ecx, 0x811c9dc5
jmp 0x1008c267
mov edi, dword [esi + 0x40]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x44]
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 0x1008c210
cmp dword [esi + 0x48], 0
je 0x1008c267
add edx, dword [esi + 0x44]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x48], edi
jne 0x1008c255
mov edx, dword [esi + 0x50]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x1008c414
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0x40]
cmp eax, dword [ebx + 0x18]
jne 0x1008c2b2
cmp dword [ebx + 0x1c], 0x10
jb 0x1008c295
mov eax, dword [ebx + 8]
jmp 0x1008c298
lea eax, [ebx + 8]
mov ecx, dword [esi + 0x40]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x44]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1008c2bf
cmp ebx, edi
je 0x1008c414
mov ebx, dword [ebx + 4]
jmp 0x1008c282
add ebx, 0x20
lea ecx, [esi + 0xa8]
call fcn.10014f60
mov dword [0x10258ee4], ebx
mov edi, dword [esi + 0xa0]
mov ecx, dword [esi + 0x118]
jmp 0x1008b615
mov ecx, 0x811c9dc5
jmp 0x1008c352
mov edi, dword [esi + 0x40]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x44]
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 0x1008c2fb
cmp dword [esi + 0x48], 0
je 0x1008c352
add edx, dword [esi + 0x44]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x48], edi
jne 0x1008c340
mov edx, dword [esi + 0x50]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x1008c42a
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0x40]
cmp eax, dword [ebx + 0x18]
jne 0x1008c39d
cmp dword [ebx + 0x1c], 0x10
jb 0x1008c380
mov eax, dword [ebx + 8]
jmp 0x1008c383
lea eax, [ebx + 8]
mov ecx, dword [esi + 0x40]
mov dword [esp + 8], ecx
mov dword [esp + 4], eax
mov eax, dword [esi + 0x44]
mov dword [esp], eax
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x1008c3aa
cmp ebx, edi
je 0x1008c42a
mov ebx, dword [ebx + 4]
jmp 0x1008c36d
lea edi, [ebx + 0x20]
lea ecx, [esi + 0xa8]
call fcn.10014f60
mov dword [0x10258ee4], edi
mov eax, dword [ebx + 0x24]
lea ebx, [esi + 0xc0]
mov edx, dword [esi + 0xa0]
jmp 0x1008b646
mov dword [esi + 0x188], 1
mov dword [esp], str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
mov dword [esi + 0x188], 3
mov dword [esp], str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
mov dword [esi + 0x188], 9
mov dword [esp], str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
mov dword [esi + 0x188], 5
mov dword [esp], str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
mov dword [esi + 0x188], 7
mov dword [esp], str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
push ebp
sub esp, 0x24
lea esi, [ebp - 0x18c]
mov ebp, dword [esi + 0x178]
lea ecx, [esi + 0xa8]
call fcn.10014f60
add esp, 0x24
pop ebp
ret