Function at 0x10015aa0
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, 0x100
mov esi, esp
mov dword [esi + 0xd8], ebp
movzx eax, byte [ebp + 0x18]
mov dword [esi + 0xdc], esp
mov dword [esi + 0xe8], 0xffffffff
lea edx, [esi + 0xe0]
mov dword [esi + 0xe4], 0x1001cbb0
mov edi, dword fs:[0]
mov dword [esi + 0xe0], edi
mov dword fs:[0], edx
test al, al
jne 0x10015b22
mov eax, dword [0x10258d6c]
cmp byte [eax + 0x3000], 0
je 0x10015b22
mov eax, dword [eax + 0x3004]
mov edx, dword [0x10258da8]
mov edx, dword [edx + 0x4d24]
cmp eax, edx
jle 0x10015b22
add edx, 0x64
cmp eax, edx
jl 0x10015ba5
mov edi, dword [ebp + 8]
xor eax, eax
test edi, edi
je 0x10015ba7
cmp byte [ecx + 0x1bd], 0
jne 0x10015ba7
mov eax, dword [0x10258d94]
mov edx, dword [eax]
xor eax, eax
test edx, edx
je 0x10015ba7
mov ecx, dword [ebp + 0xc]
cmp dword [ecx + 0x38], 0
jne 0x10015ba7
mov eax, dword [0x10258ee0]
test al, 1
je 0x10015d61
mov ebx, dword [0x10258edc]
mov eax, dword [ebx + 4]
test byte [eax + edx], 0x40
jne 0x10015ba5
mov eax, dword [0x10258d94]
mov ecx, dword [eax]
mov eax, dword [0x10258ee8]
test al, 1
je 0x10015e76
mov ebx, dword [0x10258ee4]
mov eax, dword [ebx + 4]
cmp dword [eax + ecx], 0
jle 0x10015ba5
mov eax, dword [0x10258ef0]
test al, 1
je 0x10015f95
mov ebx, dword [0x10258eec]
mov eax, dword [ebx + 4]
cmp byte [eax + ecx], 0
je 0x10015bbe
xor eax, eax
mov ecx, dword [esi + 0xe0]
mov dword fs:[0], ecx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x14
mov eax, dword [edi]
mov eax, dword [eax + 0x730]
mov dword [esi + 0xe8], 0xffffffff
mov ecx, edi
call eax
test eax, eax
je 0x10015ba5
mov ecx, dword [0x10258ed0]
test cl, 1
je 0x10016334
mov ebx, dword [0x10258ecc]
mov ecx, dword [ebx + 4]
movzx ecx, word [ecx + edi]
mov eax, dword [eax + 0xcc]
add eax, 0xfffffffe
cmp eax, 6
setb al
cmp cx, 0x1f
sete dl
or dl, al
mov eax, dword [0x10258d94]
mov eax, dword [eax]
mov dword [esi + 8], eax
mov eax, dword [0x10258ef8]
cmp dl, 1
jne 0x10015c3c
test al, 1
je 0x1001658d
mov ebx, dword [0x10258ef4]
mov eax, dword [ebx + 4]
mov ebx, dword [esi + 8]
mov eax, dword [eax + ebx]
sub eax, dword [ebp + 0x14]
jmp 0x10015c53
test al, 1
je 0x100166a5
mov ebx, dword [0x10258ef4]
mov eax, dword [ebx + 4]
mov ebx, dword [esi + 8]
mov eax, dword [eax + ebx]
cvtsi2ss xmm2, eax
mov eax, dword [0x10258d9c]
mulss xmm2, dword [eax + 0x20]
mov eax, dword [0x10258d94]
mov eax, dword [eax]
mov dword [esi + 8], eax
mov eax, dword [0x10258f00]
test al, 1
je 0x100164be
mov ebx, dword [0x10258efc]
mov eax, dword [ebx + 4]
mov ebx, dword [esi + 8]
movss xmm0, dword [eax + ebx]
ucomiss xmm0, xmm2
ja 0x10015ba5
mov al, 1
cmp cx, 0x31
je 0x10015ba7
lea eax, [ecx - 0x2b]
cmp ax, 5
ja 0x10015cea
mov eax, dword [0x10258f08]
test al, 1
je 0x10016b46
mov ebx, dword [0x10258f04]
mov eax, dword [ebx + 4]
movss xmm0, dword [eax + edi]
xorps xmm1, xmm1
ucomiss xmm0, xmm1
jbe 0x10015ba5
mov ecx, dword [0x10258f08]
test cl, 1
je 0x10016deb
add eax, edi
ucomiss xmm2, dword [eax]
seta al
jmp 0x10015ba7
test dl, dl
je 0x10015d2e
mov eax, dword [0x10258f10]
test al, 1
je 0x10016f0d
mov ebx, dword [0x10258f0c]
mov eax, dword [ebx + 4]
cmp dword [eax + edi], 0
jle 0x10015ba5
mov eax, dword [0x10258f18]
test al, 1
je 0x1001703b
mov ebx, dword [0x10258f14]
mov eax, dword [ebx + 4]
cmp byte [eax + edi], 0
jne 0x10015ba5
mov eax, dword [0x10258f20]
test al, 1
je 0x10016c67
mov ebx, dword [0x10258f1c]
mov eax, dword [ebx + 4]
movss xmm0, dword [eax + edi]
ucomiss xmm0, xmm2
ja 0x10015ba5
cmp cx, 0x40
setne al
or al, byte [ebp + 0x10]
jmp 0x10015ba7
mov dword [esi + 0x18], edx
or eax, 1
mov dword [0x10258ee0], eax
mov eax, 0x1d922d02
mov ecx, 0x7dcb583a
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xe992d2bf
mov ecx, 0x3160cb78
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0xb2126645
mov ecx, 0x92a96f6a
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov eax, 0xf9be6808
mov ecx, 0xaaf6c6b8
mov edx, 0x6ef36f41
mov edi, 0x1ca7085f
mov dword [esi + 0x84], edi
mov dword [esi + 0x80], edx
mov edx, 0xc4e0b7c6
mov edi, 0x573fa646
mov dword [esi + 0x8c], edi
mov dword [esi + 0x88], edx
mov edx, 0xd5730a03
mov edi, 0x92a96f19
mov dword [esi + 0x94], edi
mov dword [esi + 0x90], edx
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
mov dword [esi + 0x9c], ecx
mov dword [esi + 0x98], eax
lea eax, [esi + 0x80]
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]
mov eax, dword [0x10258d5c]
mov dword [esi + 0x10], eax
movaps xmmword [esi + 0x50], xmm0
mov dword [esi + 0xe8], 0
lea eax, [esi + 0x40]
lea ecx, [esi + 0x20]
mov dword [esi + 4], ecx
push eax
call fcn.10015240
mov eax, dword [esi + 0x30]
mov dword [esi + 8], eax
cmp dword [esi + 0x34], 0x10
jb 0x10015e4c
mov eax, dword [esi + 0x20]
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
je 0x10015f8b
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xc], ecx
cmp eax, 4
jae 0x100160aa
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100160f4
mov dword [esi + 0x10], ecx
or eax, 1
mov dword [0x10258ee8], eax
mov eax, 0x1d922d02
mov ecx, 0x7dcb583a
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xe992d2bf
mov ecx, 0x3e60cb78
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0xb9126f4b
mov ecx, 0x92a9076d
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov eax, 0xf9be6808
mov ecx, 0xaaf6c6b8
mov edx, 0x6ef36f41
mov edi, 0x1ca7085f
mov dword [esi + 0x84], edi
mov dword [esi + 0x80], edx
mov edx, 0xc4e0b7c6
mov edi, 0x573fa646
mov dword [esi + 0x8c], edi
mov dword [esi + 0x88], edx
mov edx, 0xd5730a03
mov edi, 0x92a96f19
mov dword [esi + 0x94], edi
mov dword [esi + 0x90], edx
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
mov dword [esi + 0x9c], ecx
mov dword [esi + 0x98], eax
lea eax, [esi + 0x80]
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]
mov eax, dword [0x10258d5c]
mov dword [esi + 0x18], eax
movaps xmmword [esi + 0x50], xmm0
mov dword [esi + 0xe8], 2
lea eax, [esi + 0x40]
lea ecx, [esi + 0x20]
mov dword [esi + 4], ecx
push eax
call fcn.10015240
mov eax, dword [esi + 0x30]
mov dword [esi + 8], eax
cmp dword [esi + 0x34], 0x10
jb 0x10015f61
mov eax, dword [esi + 0x20]
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
je 0x1001617e
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xc], ecx
cmp eax, 4
jae 0x10016185
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100161cf
mov ecx, 0x811c9dc5
jmp 0x10016111
mov dword [esi + 0x10], ecx
or eax, 1
mov dword [0x10258ef0], eax
mov eax, 0x1d922d02
mov ecx, 0x7dcb583a
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xe992d2bf
mov ecx, 0x3b60cb78
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0x86166c6a
mov ecx, 0xf7dd0e6d
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov eax, 0xf9be6808
mov ecx, 0xaaf6c6b8
mov edx, 0x6ef36f41
mov edi, 0x1ca7085f
mov dword [esi + 0x84], edi
mov dword [esi + 0x80], edx
mov edx, 0xc4e0b7c6
mov edi, 0x573fa646
mov dword [esi + 0x8c], edi
mov dword [esi + 0x88], edx
mov edx, 0xd5730a03
mov edi, 0x92a96f19
mov dword [esi + 0x94], edi
mov dword [esi + 0x90], edx
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
mov dword [esi + 0x9c], ecx
mov dword [esi + 0x98], eax
lea eax, [esi + 0x80]
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]
mov eax, dword [0x10258d5c]
mov dword [esi + 0x18], eax
movaps xmmword [esi + 0x50], xmm0
mov dword [esi + 0xe8], 4
lea eax, [esi + 0x40]
lea ecx, [esi + 0x20]
mov dword [esi + 4], ecx
push eax
call fcn.10015240
mov eax, dword [esi + 0x30]
mov dword [esi + 8], eax
cmp dword [esi + 0x34], 0x10
jb 0x10016080
mov eax, dword [esi + 0x20]
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
je 0x10016259
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xc], ecx
cmp eax, 4
jae 0x10016260
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100162aa
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 0x100160ba
cmp dword [esi + 0xc], 0
je 0x10016111
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 + 0xc], edi
jne 0x100160ff
mov edx, dword [esi + 0x10]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x10017560
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x10016155
cmp dword [ebx + 0x1c], 0x10
jb 0x1001613f
mov eax, dword [ebx + 8]
jmp 0x10016142
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 0x10016162
cmp ebx, edi
je 0x10017560
mov ebx, dword [ebx + 4]
jmp 0x1001612c
add ebx, 0x20
lea ecx, [esi + 0x20]
call fcn.10014f60
mov dword [0x10258edc], ebx
mov edi, dword [ebp + 8]
mov edx, dword [esi + 0x18]
jmp 0x10015b5d
mov ecx, 0x811c9dc5
jmp 0x100161ec
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 0x10016195
cmp dword [esi + 0xc], 0
je 0x100161ec
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 + 0xc], edi
jne 0x100161da
mov edx, dword [esi + 0x18]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x10017577
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x10016230
cmp dword [ebx + 0x1c], 0x10
jb 0x1001621a
mov eax, dword [ebx + 8]
jmp 0x1001621d
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 0x1001623d
cmp ebx, edi
je 0x10017577
mov ebx, dword [ebx + 4]
jmp 0x10016207
add ebx, 0x20
lea ecx, [esi + 0x20]
call fcn.10014f60
mov dword [0x10258ee4], ebx
mov edi, dword [ebp + 8]
mov ecx, dword [esi + 0x10]
jmp 0x10015b80
mov ecx, 0x811c9dc5
jmp 0x100162c7
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 0x10016270
cmp dword [esi + 0xc], 0
je 0x100162c7
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 + 0xc], edi
jne 0x100162b5
mov edx, dword [esi + 0x18]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x1001758e
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x1001630b
cmp dword [ebx + 0x1c], 0x10
jb 0x100162f5
mov eax, dword [ebx + 8]
jmp 0x100162f8
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 0x10016318
cmp ebx, edi
je 0x1001758e
mov ebx, dword [ebx + 4]
jmp 0x100162e2
add ebx, 0x20
lea ecx, [esi + 0x20]
call fcn.10014f60
mov dword [0x10258eec], ebx
mov edi, dword [ebp + 8]
mov ecx, dword [esi + 0x10]
jmp 0x10015b9c
mov dword [esi + 0x18], eax
or ecx, 1
mov dword [0x10258ed0], ecx
mov eax, dword [0x10258d5c]
mov dword [esi + 0x10], eax
mov eax, 0x1d922d02
mov ecx, 0x68d3493a
mov dword [esi + 0x84], ecx
mov dword [esi + 0x80], eax
mov eax, 0xb182deb4
mov ecx, 0x3b5dc732
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x88], eax
mov eax, 0xb0074366
mov ecx, 0xff974274
mov dword [esi + 0x94], ecx
mov dword [esi + 0x90], eax
mov eax, 0x8df70157
mov ecx, 0xcfb2abdd
mov dword [esi + 0x9c], ecx
mov dword [esi + 0x98], eax
mov eax, 0x3fbcbf03
mov ecx, 0xec196167
mov dword [esi + 0xa4], ecx
mov dword [esi + 0xa0], eax
mov eax, 0xe5b21383
mov ecx, 0xb5f475b2
mov dword [esi + 0xac], ecx
mov dword [esi + 0xa8], eax
mov eax, 0x6ef36f41
mov ecx, 0x1ca7085f
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xc4e0b7c6
mov ecx, 0x573fa646
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0xd5730a03
mov ecx, 0x92a96f19
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov eax, 0xf9be6808
mov ecx, 0xaaf6c6b8
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
mov eax, 0x56d2d665
mov ecx, 0x82760813
mov dword [esi + 0x64], ecx
mov dword [esi + 0x60], eax
mov eax, 0x80d67dca
mov ecx, 0xb5f475ca
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x68], eax
lea eax, [esi + 0x40]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x80]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x80], xmm0
movaps xmm0, xmmword [esi + 0x90]
xorps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi + 0x90], xmm0
movaps xmm0, xmmword [esi + 0xa0]
xorps xmm0, xmmword [eax + 0x20]
movaps xmmword [esi + 0xa0], xmm0
mov dword [esi + 0xe8], 6
lea eax, [esi + 0x80]
lea ecx, [esi + 0x20]
mov dword [esi + 4], ecx
push eax
call fcn.10015240
mov eax, dword [esi + 0x30]
mov dword [esi + 8], eax
cmp dword [esi + 0x34], 0x10
jb 0x10016494
mov eax, dword [esi + 0x20]
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
je 0x100167bd
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xc], ecx
cmp eax, 4
jae 0x100167ce
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10016818
mov byte [esi + 0x17], dl
movss dword [esi + 0x1c], xmm2
mov dword [esi + 0x18], ecx
or eax, 1
mov dword [0x10258f00], eax
mov eax, dword [0x10258d5c]
mov dword [esi + 0xd4], eax
mov eax, 0x295302c
mov ecx, 0x68df6d11
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xa594c387
mov ecx, 0x573fcd25
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0x6ef36f41
mov ecx, 0x1ca7085f
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xc4e0b7c6
mov ecx, 0x573fa646
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
lea eax, [esi + 0x40]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x20], xmm0
mov dword [esi + 0xe8], 0xc
lea eax, [esi + 0x20]
lea ecx, [esi + 0x80]
mov dword [esi + 0xc], ecx
push eax
call fcn.10015240
mov eax, dword [esi + 0x90]
mov dword [esi + 4], eax
cmp dword [esi + 0x94], 0x10
jb 0x10016563
mov eax, dword [esi + 0x80]
mov dword [esi + 0xc], eax
cmp dword [esi + 4], 0
je 0x100167c4
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x100168a2
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100168ec
mov byte [esi + 0x17], dl
mov dword [esi + 0x18], ecx
or eax, 1
mov dword [0x10258ef8], eax
mov eax, 0x1d922d02
mov ecx, 0x7dcb583a
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xe992d2bf
mov ecx, 0x3960cb78
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0xbe106357
mov ecx, 0xf7da0e5b
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov eax, 0xf9be6808
mov ecx, 0xaaf6c6b8
mov edx, 0x6ef36f41
mov edi, 0x1ca7085f
mov dword [esi + 0x84], edi
mov dword [esi + 0x80], edx
mov edx, 0xc4e0b7c6
mov edi, 0x573fa646
mov dword [esi + 0x8c], edi
mov dword [esi + 0x88], edx
mov edx, 0xd5730a03
mov edi, 0x92a96f19
mov dword [esi + 0x94], edi
mov dword [esi + 0x90], edx
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
mov dword [esi + 0x9c], ecx
mov dword [esi + 0x98], eax
lea eax, [esi + 0x80]
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]
mov eax, dword [0x10258d5c]
mov dword [esi + 0x1c], eax
movaps xmmword [esi + 0x50], xmm0
mov dword [esi + 0xe8], 8
lea eax, [esi + 0x40]
lea ecx, [esi + 0x20]
mov dword [esi + 0xc], ecx
push eax
call fcn.10015240
mov eax, dword [esi + 0x30]
mov dword [esi + 4], eax
cmp dword [esi + 0x34], 0x10
jb 0x1001667b
mov eax, dword [esi + 0x20]
mov dword [esi + 0xc], eax
cmp dword [esi + 4], 0
je 0x10016985
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x10016996
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100169e0
mov byte [esi + 0x17], dl
mov dword [esi + 0x18], ecx
or eax, 1
mov dword [0x10258ef8], eax
mov eax, 0x1d922d02
mov ecx, 0x7dcb583a
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xe992d2bf
mov ecx, 0x3960cb78
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0xbe106357
mov ecx, 0xf7da0e5b
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov eax, 0xf9be6808
mov ecx, 0xaaf6c6b8
mov edx, 0x6ef36f41
mov edi, 0x1ca7085f
mov dword [esi + 0x84], edi
mov dword [esi + 0x80], edx
mov edx, 0xc4e0b7c6
mov edi, 0x573fa646
mov dword [esi + 0x8c], edi
mov dword [esi + 0x88], edx
mov edx, 0xd5730a03
mov edi, 0x92a96f19
mov dword [esi + 0x94], edi
mov dword [esi + 0x90], edx
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
mov dword [esi + 0x9c], ecx
mov dword [esi + 0x98], eax
lea eax, [esi + 0x80]
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]
mov eax, dword [0x10258d5c]
mov dword [esi + 0x1c], eax
movaps xmmword [esi + 0x50], xmm0
mov dword [esi + 0xe8], 0xa
lea eax, [esi + 0x40]
lea ecx, [esi + 0x20]
mov dword [esi + 0xc], ecx
push eax
call fcn.10015240
mov eax, dword [esi + 0x30]
mov dword [esi + 4], eax
cmp dword [esi + 0x34], 0x10
jb 0x10016793
mov eax, dword [esi + 0x20]
mov dword [esi + 0xc], eax
cmp dword [esi + 4], 0
je 0x1001698c
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x10016a6e
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10016ab8
mov ecx, 0x811c9dc5
jmp 0x10016835
mov ecx, 0x811c9dc5
jmp 0x10016909
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 0x100167de
cmp dword [esi + 0xc], 0
je 0x10016835
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 + 0xc], edi
jne 0x10016823
mov edx, dword [esi + 0x10]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100175a5
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x10016879
cmp dword [ebx + 0x1c], 0x10
jb 0x10016863
mov eax, dword [ebx + 8]
jmp 0x10016866
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 0x10016886
cmp ebx, edi
je 0x100175a5
mov ebx, dword [ebx + 4]
jmp 0x10016850
add ebx, 0x20
lea ecx, [esi + 0x20]
call fcn.10014f60
mov dword [0x10258ecc], ebx
mov edi, dword [ebp + 8]
mov eax, dword [esi + 0x18]
jmp 0x10015bed
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 0x100168b2
cmp dword [esi + 0x10], 0
je 0x10016909
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 0x100168f7
mov edx, dword [esi + 0xd4]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100175bc
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x18]
jne 0x10016950
cmp dword [ebx + 0x1c], 0x10
jb 0x1001693a
mov eax, dword [ebx + 8]
jmp 0x1001693d
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 0x1001695d
cmp ebx, edi
je 0x100175bc
mov ebx, dword [ebx + 4]
jmp 0x10016927
add ebx, 0x20
lea ecx, [esi + 0x80]
call fcn.10014f60
mov dword [0x10258efc], ebx
mov edi, dword [ebp + 8]
mov ecx, dword [esi + 0x18]
movss xmm2, dword [esi + 0x1c]
movzx edx, byte [esi + 0x17]
jmp 0x10015c7e
mov ecx, 0x811c9dc5
jmp 0x100169fd
mov ecx, 0x811c9dc5
jmp 0x10016ad5
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 0x100169a6
cmp dword [esi + 0x10], 0
je 0x100169fd
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 0x100169eb
mov edx, dword [esi + 0x1c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100175d3
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x18]
jne 0x10016a41
cmp dword [ebx + 0x1c], 0x10
jb 0x10016a2b
mov eax, dword [ebx + 8]
jmp 0x10016a2e
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 0x10016a4e
cmp ebx, edi
je 0x100175d3
mov ebx, dword [ebx + 4]
jmp 0x10016a18
add ebx, 0x20
lea ecx, [esi + 0x20]
call fcn.10014f60
mov dword [0x10258ef4], ebx
mov edi, dword [ebp + 8]
mov ecx, dword [esi + 0x18]
movzx edx, byte [esi + 0x17]
jmp 0x10015c2e
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 0x10016a7e
cmp dword [esi + 0x10], 0
je 0x10016ad5
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 0x10016ac3
mov edx, dword [esi + 0x1c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100175ea
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x18]
jne 0x10016b19
cmp dword [ebx + 0x1c], 0x10
jb 0x10016b03
mov eax, dword [ebx + 8]
jmp 0x10016b06
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 0x10016b26
cmp ebx, edi
je 0x100175ea
mov ebx, dword [ebx + 4]
jmp 0x10016af0
add ebx, 0x20
lea ecx, [esi + 0x20]
call fcn.10014f60
mov dword [0x10258ef4], ebx
mov edi, dword [ebp + 8]
mov ecx, dword [esi + 0x18]
movzx edx, byte [esi + 0x17]
jmp 0x10015c4a
movss dword [esi + 0x1c], xmm2
or eax, 1
mov dword [0x10258f08], eax
mov eax, dword [0x10258d5c]
mov dword [esi + 0x10], eax
mov eax, 0x1d922d02
mov ecx, 0x5bf44b3a
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xa58ed2b4
mov ecx, 0x6912c322
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0x8115556e
mov ecx, 0xe5c61d71
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov ecx, 0x9cd3015c
mov eax, 0xaaf6c6b8
mov edx, 0xaaf6c6b8
mov dword [esi + 0x5c], edx
mov dword [esi + 0x58], ecx
mov ecx, 0x6ef36f41
mov edx, 0x1ca7085f
mov dword [esi + 0x84], edx
mov dword [esi + 0x80], ecx
mov ecx, 0xc4e0b7c6
mov edx, 0x573fa646
mov dword [esi + 0x8c], edx
mov dword [esi + 0x88], ecx
mov ecx, 0xd5730a03
mov edx, 0x92a96f19
mov dword [esi + 0x94], edx
mov dword [esi + 0x90], ecx
mov ecx, 0xf9be6808
mov dword [esi + 0x9c], eax
mov dword [esi + 0x98], ecx
lea eax, [esi + 0x80]
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 + 0xe8], 0xe
lea eax, [esi + 0x40]
lea ecx, [esi + 0x20]
mov dword [esi + 4], ecx
push eax
call fcn.10015240
mov eax, dword [esi + 0x30]
mov dword [esi + 8], eax
cmp dword [esi + 0x34], 0x10
jb 0x10016c3d
mov eax, dword [esi + 0x20]
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
je 0x10017031
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xc], ecx
cmp eax, 4
jae 0x10017104
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1001714e
movss dword [esi + 0x1c], xmm2
mov dword [esi + 0x18], ecx
or eax, 1
mov dword [0x10258f20], eax
mov eax, 0x1d922d02
mov ecx, 0x71c84b3a
mov dword [esi + 0x84], ecx
mov dword [esi + 0x80], eax
mov eax, 0x9394d6a4
mov ecx, 0x384fc723
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x88], eax
mov eax, 0xb84d276d
mov ecx, 0xdcc50946
mov dword [esi + 0x94], ecx
mov dword [esi + 0x90], eax
mov eax, 0xa9ca106d
mov ecx, 0xcb9bafca
mov dword [esi + 0x9c], ecx
mov dword [esi + 0x98], eax
mov eax, 0x2293af17
mov ecx, 0xe9156967
mov dword [esi + 0xa4], ecx
mov dword [esi + 0xa0], eax
mov eax, 0x80d67dca
mov ecx, 0xb5f475ca
mov edx, 0x6ef36f41
mov edi, 0x1ca7085f
mov dword [esi + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0xc4e0b7c6
mov edi, 0x573fa646
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edx
mov edx, 0xd5730a03
mov edi, 0x92a96f19
mov dword [esi + 0x54], edi
mov dword [esi + 0x50], edx
mov edx, 0xf9be6808
mov edi, 0xaaf6c6b8
mov dword [esi + 0x5c], edi
mov dword [esi + 0x58], edx
mov edx, 0x56d2d665
mov edi, 0x82760813
mov dword [esi + 0x64], edi
mov dword [esi + 0x60], edx
mov dword [esi + 0xac], ecx
mov dword [esi + 0xa8], eax
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x68], eax
lea eax, [esi + 0x40]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x80]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x80], xmm0
movaps xmm0, xmmword [esi + 0x90]
xorps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi + 0x90], xmm0
movaps xmm0, xmmword [esi + 0xa0]
xorps xmm0, xmmword [eax + 0x20]
mov eax, dword [0x10258d5c]
mov dword [esi + 0x10], eax
movaps xmmword [esi + 0xa0], xmm0
mov dword [esi + 0xe8], 0x16
lea eax, [esi + 0x80]
lea ecx, [esi + 0x20]
mov dword [esi + 4], ecx
push eax
call fcn.10015240
mov eax, dword [esi + 0x30]
mov dword [esi + 8], eax
cmp dword [esi + 0x34], 0x10
jb 0x10016dc1
mov eax, dword [esi + 0x20]
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
je 0x100171da
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xc], ecx
cmp eax, 4
jae 0x100171e1
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1001722b
movss dword [esi + 0x1c], xmm2
or ecx, 1
mov dword [0x10258f08], ecx
mov eax, dword [0x10258d5c]
mov dword [esi + 0x10], eax
mov eax, 0x1d922d02
mov ecx, 0x5bf44b3a
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xa58ed2b4
mov ecx, 0x6912c322
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0x8115556e
mov ecx, 0xe5c61d71
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov ecx, 0x9cd3015c
mov eax, 0xaaf6c6b8
mov edx, 0xaaf6c6b8
mov dword [esi + 0x5c], edx
mov dword [esi + 0x58], ecx
mov ecx, 0x6ef36f41
mov edx, 0x1ca7085f
mov dword [esi + 0x84], edx
mov dword [esi + 0x80], ecx
mov ecx, 0xc4e0b7c6
mov edx, 0x573fa646
mov dword [esi + 0x8c], edx
mov dword [esi + 0x88], ecx
mov ecx, 0xd5730a03
mov edx, 0x92a96f19
mov dword [esi + 0x94], edx
mov dword [esi + 0x90], ecx
mov ecx, 0xf9be6808
mov dword [esi + 0x9c], eax
mov dword [esi + 0x98], ecx
lea eax, [esi + 0x80]
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 + 0xe8], 0x10
lea eax, [esi + 0x40]
lea ecx, [esi + 0x20]
mov dword [esi + 4], ecx
push eax
call fcn.10015240
mov eax, dword [esi + 0x30]
mov dword [esi + 8], eax
cmp dword [esi + 0x34], 0x10
jb 0x10016ee3
mov eax, dword [esi + 0x20]
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
je 0x100172ba
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xc], ecx
cmp eax, 4
jae 0x100172cb
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10017315
movss dword [esi + 0x1c], xmm2
mov dword [esi + 0x18], ecx
or eax, 1
mov dword [0x10258f10], eax
mov eax, dword [0x10258d5c]
mov dword [esi + 0x10], eax
mov eax, 0x1d922d02
mov ecx, 0x71c84b3a
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0x9394d6a4
mov ecx, 0x384fc723
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0xb84d276d
mov ecx, 0xfeea0646
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov ecx, 0xf98f1861
mov eax, 0xaaf6c6b8
mov edx, 0xaaf6c6b8
mov dword [esi + 0x5c], edx
mov dword [esi + 0x58], ecx
mov ecx, 0x6ef36f41
mov edx, 0x1ca7085f
mov dword [esi + 0x84], edx
mov dword [esi + 0x80], ecx
mov ecx, 0xc4e0b7c6
mov edx, 0x573fa646
mov dword [esi + 0x8c], edx
mov dword [esi + 0x88], ecx
mov ecx, 0xd5730a03
mov edx, 0x92a96f19
mov dword [esi + 0x94], edx
mov dword [esi + 0x90], ecx
mov ecx, 0xf9be6808
mov dword [esi + 0x9c], eax
mov dword [esi + 0x98], ecx
lea eax, [esi + 0x80]
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 + 0xe8], 0x12
lea eax, [esi + 0x40]
lea ecx, [esi + 0x20]
mov dword [esi + 4], ecx
push eax
call fcn.10015240
mov eax, dword [esi + 0x30]
mov dword [esi + 8], eax
cmp dword [esi + 0x34], 0x10
jb 0x10017007
mov eax, dword [esi + 0x20]
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
je 0x100172c1
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xc], ecx
cmp eax, 4
jae 0x100173a4
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100173ee
mov ecx, 0x811c9dc5
jmp 0x1001716b
movss dword [esi + 0x1c], xmm2
mov dword [esi + 0x18], ecx
or eax, 1
mov dword [0x10258f18], eax
mov eax, dword [0x10258d5c]
mov dword [esi + 0x10], eax
mov eax, 0x2791302c
mov ecx, 0x70c25a31
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov ecx, 0xc484d6a9
mov eax, 0x573fa646
mov edx, 0x573fa646
mov dword [esi + 0x2c], edx
mov dword [esi + 0x28], ecx
mov ecx, 0x6ef36f41
mov edx, 0x1ca7085f
mov dword [esi + 0x44], edx
mov dword [esi + 0x40], ecx
mov ecx, 0xc4e0b7c6
mov dword [esi + 0x4c], eax
mov dword [esi + 0x48], ecx
lea eax, [esi + 0x40]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x20], xmm0
mov dword [esi + 0xe8], 0x14
lea eax, [esi + 0x20]
lea ecx, [esi + 0x80]
mov dword [esi + 4], ecx
push eax
call fcn.10015240
mov eax, dword [esi + 0x90]
mov dword [esi + 8], eax
cmp dword [esi + 0x94], 0x10
jb 0x100170da
mov eax, dword [esi + 0x80]
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
je 0x1001747d
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xc], ecx
cmp eax, 4
jae 0x10017484
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100174ce
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 0x10017114
cmp dword [esi + 0xc], 0
je 0x1001716b
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 + 0xc], edi
jne 0x10017159
mov edx, dword [esi + 0x10]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x10017601
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x100171af
cmp dword [ebx + 0x1c], 0x10
jb 0x10017199
mov eax, dword [ebx + 8]
jmp 0x1001719c
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 0x100171bc
cmp ebx, edi
je 0x10017601
mov ebx, dword [ebx + 4]
jmp 0x10017186
add ebx, 0x20
lea ecx, [esi + 0x20]
call fcn.10014f60
mov dword [0x10258f04], ebx
mov edi, dword [ebp + 8]
movss xmm2, dword [esi + 0x1c]
jmp 0x10015cba
mov ecx, 0x811c9dc5
jmp 0x10017248
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 0x100171f1
cmp dword [esi + 0xc], 0
je 0x10017248
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 + 0xc], edi
jne 0x10017236
mov edx, dword [esi + 0x10]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x10017618
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x1001728c
cmp dword [ebx + 0x1c], 0x10
jb 0x10017276
mov eax, dword [ebx + 8]
jmp 0x10017279
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 0x10017299
cmp ebx, edi
je 0x10017618
mov ebx, dword [ebx + 4]
jmp 0x10017263
add ebx, 0x20
lea ecx, [esi + 0x20]
call fcn.10014f60
mov dword [0x10258f1c], ebx
mov edi, dword [ebp + 8]
mov ecx, dword [esi + 0x18]
movss xmm2, dword [esi + 0x1c]
jmp 0x10015d41
mov ecx, 0x811c9dc5
jmp 0x10017332
mov ecx, 0x811c9dc5
jmp 0x1001740b
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 0x100172db
cmp dword [esi + 0xc], 0
je 0x10017332
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 + 0xc], edi
jne 0x10017320
mov edx, dword [esi + 0x10]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x1001762f
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x10017376
cmp dword [ebx + 0x1c], 0x10
jb 0x10017360
mov eax, dword [ebx + 8]
jmp 0x10017363
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 0x10017383
cmp ebx, edi
je 0x1001762f
mov ebx, dword [ebx + 4]
jmp 0x1001734d
lea edi, [ebx + 0x20]
lea ecx, [esi + 0x20]
call fcn.10014f60
mov dword [0x10258f04], edi
mov eax, dword [ebp + 8]
add eax, dword [ebx + 0x24]
movss xmm2, dword [esi + 0x1c]
jmp 0x10015cdf
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 0x100173b4
cmp dword [esi + 0xc], 0
je 0x1001740b
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 + 0xc], edi
jne 0x100173f9
mov edx, dword [esi + 0x10]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x10017646
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x1001744f
cmp dword [ebx + 0x1c], 0x10
jb 0x10017439
mov eax, dword [ebx + 8]
jmp 0x1001743c
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 0x1001745c
cmp ebx, edi
je 0x10017646
mov ebx, dword [ebx + 4]
jmp 0x10017426
add ebx, 0x20
lea ecx, [esi + 0x20]
call fcn.10014f60
mov dword [0x10258f0c], ebx
mov edi, dword [ebp + 8]
mov ecx, dword [esi + 0x18]
movss xmm2, dword [esi + 0x1c]
jmp 0x10015d01
mov ecx, 0x811c9dc5
jmp 0x100174eb
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 0x10017494
cmp dword [esi + 0xc], 0
je 0x100174eb
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 + 0xc], edi
jne 0x100174d9
mov edx, dword [esi + 0x10]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x1001765d
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x1001752f
cmp dword [ebx + 0x1c], 0x10
jb 0x10017519
mov eax, dword [ebx + 8]
jmp 0x1001751c
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 0x1001753c
cmp ebx, edi
je 0x1001765d
mov ebx, dword [ebx + 4]
jmp 0x10017506
add ebx, 0x20
lea ecx, [esi + 0x80]
call fcn.10014f60
mov dword [0x10258f14], ebx
mov edi, dword [ebp + 8]
mov ecx, dword [esi + 0x18]
movss xmm2, dword [esi + 0x1c]
jmp 0x10015d21
mov dword [esi + 0xe8], 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 + 0xe8], 3
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 + 0xe8], 5
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 + 0xe8], 7
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 + 0xe8], 0xd
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 + 0xe8], 9
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 + 0xe8], 0xb
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 + 0xe8], 0xf
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 + 0xe8], 0x17
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 + 0xe8], 0x11
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 + 0xe8], 0x13
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 + 0xe8], 0x15
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, 0xc
lea esi, [ebp - 0xec]
mov ebp, dword [esi + 0xd8]
lea ecx, [esi + 0x80]
call fcn.10014f60
add esp, 0xc
pop ebp
ret