Function at 0x10096220
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
mov eax, 0x3120
call fcn.10155d20
mov esi, esp
mov dword [esi + 0x30f8], ebp
mov dword [esi + 0xa0], ecx
mov dword [esi + 0x30fc], esp
mov dword [esi + 0x3108], 0xffffffff
lea eax, [esi + 0x3100]
mov dword [esi + 0x3104], 0x100a0770
mov ecx, dword fs:[0]
mov dword [esi + 0x3100], ecx
mov dword fs:[0], eax
xor ebx, ebx
xor ecx, ecx
xor edi, edi
nop word [eax + eax]
mov dword [esi + 0x14], ecx
mov ecx, dword [0x10259d54]
add ecx, 0x58
mov dword [esi + 0x60], edi
lea eax, [esi + 0x60]
push eax
lea eax, [esi + 0xb4]
push eax
call fcn.10036b60
mov eax, dword [esi + 0xb4]
mov ecx, ebx
bts ecx, edi
btr ebx, edi
cmp byte [eax + 0xc], 0
cmovne ebx, ecx
mov ecx, dword [0x10259d54]
add ecx, 0x78
mov dword [esi + 0x60], edi
lea eax, [esi + 0x60]
push eax
lea eax, [esi + 0xb4]
push eax
call fcn.10036b60
mov eax, dword [esi + 0xb4]
mov ecx, dword [esi + 0x14]
bts ecx, edi
mov edx, dword [esi + 0x14]
btr edx, edi
mov dword [esi + 0x14], edx
cmp byte [eax + 0xc], 0
mov eax, dword [esi + 0x14]
cmovne eax, ecx
mov dword [esi + 0x14], eax
mov ecx, dword [esi + 0x14]
inc edi
cmp edi, 6
jne 0x10096280
mov eax, dword [esi + 0xa0]
mov edx, dword [eax + 0x9c]
mov edi, dword [eax + 0xa0]
cmp edx, edi
je 0x10096357
mov dword [esi + 0x5c], ebx
nop word cs:[eax + eax]
mov ecx, dword [esi + 0xa0]
push 0
push dword [esi + 0x14]
push dword [esi + 0x5c]
push edx
mov ebx, edi
mov edi, edx
call fcn.1008e890
mov edx, edi
mov edi, ebx
mov eax, dword [esi + 0xa0]
add edx, 0x20
cmp edx, ebx
jne 0x10096320
mov edi, dword [eax + 0x9c]
mov edx, dword [eax + 0xa0]
jmp 0x10096359
mov edi, edx
add eax, 0x9c
mov dword [esi + 0xac], eax
lea ecx, [esi + 0xb4]
lea ebx, [esi + 0x60]
mov dword [esi + 0xb0], edx
jmp 0x100963fe
movss xmm0, dword [esi + 0xb4]
mov dword [esi + 0x60], 0
movss dword [esi + 0x64], xmm0
mov dword [esi + 0x68], 0
mov eax, dword [0x10259d58]
mov ecx, edi
push ebx
call dword [eax + 0x14]
mov eax, dword [esi + 0x30ec]
mov dword [edi + 0x26ac], eax
mov eax, dword [esi + 0x30f0]
mov dword [edi + 0x26b0], eax
mov eax, dword [esi + 0x30e8]
shl eax, 4
lea eax, [eax + eax*2]
push eax
lea eax, [esi + 0xe8]
push eax
push dword [edi + 0x2910]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x30f4]
mov dword [edi + 0x2690], eax
mov edi, dword [esi + 0x5c]
add edi, 0x20
lea ecx, [esi + 0xb4]
mov edx, dword [esi + 0xb0]
cmp edi, edx
je 0x10097462
mov dword [esi + 0x5c], edi
mov eax, dword [edi]
mov eax, dword [eax]
mov dword [esi + 0x14], eax
push 0x3044
push 0
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [0x1025f694]
test al, 1
je 0x10096718
mov edi, dword [0x1025f690]
mov eax, dword [edi + 4]
mov ecx, dword [esi + 0x14]
mov eax, dword [ecx + eax - 0x14]
test eax, eax
je 0x10096451
movss xmm0, dword [eax + 0x80]
movss dword [esi + 0xb4], xmm0
mov eax, dword [0x1025f644]
test al, 1
je 0x1009681e
mov edi, dword [0x1025f640]
mov eax, dword [edi + 4]
mov edi, dword [esi + 0x14]
mov ecx, dword [eax + edi + 8]
lea edx, [esi + 0xb8]
mov dword [edx + 8], ecx
movsd xmm0, qword [eax + edi]
movsd qword [edx], xmm0
mov eax, dword [0x1025f64c]
test al, 1
je 0x10096924
mov edi, dword [0x1025f648]
mov eax, dword [edi + 4]
mov edi, dword [esi + 0x14]
mov ecx, dword [eax + edi + 8]
lea edx, [esi + 0xc4]
mov dword [edx + 8], ecx
movsd xmm0, qword [eax + edi]
movsd qword [edx], xmm0
mov eax, dword [0x1025f654]
test al, 1
je 0x100969ee
mov edi, dword [0x1025f650]
mov eax, dword [edi + 4]
mov edi, dword [esi + 0x14]
mov ecx, dword [eax + edi + 8]
lea edx, [esi + 0xd0]
mov dword [edx + 8], ecx
movsd xmm0, qword [eax + edi]
movsd qword [edx], xmm0
mov eax, dword [0x1025f65c]
test al, 1
je 0x10096af4
mov edi, dword [0x1025f658]
mov eax, dword [edi + 4]
mov edi, dword [esi + 0x14]
mov ecx, dword [eax + edi + 8]
lea edx, [esi + 0xdc]
mov dword [edx + 8], ecx
movsd xmm0, qword [eax + edi]
movsd qword [edx], xmm0
mov eax, dword [edi + 0x26ac]
mov dword [esi + 0x30ec], eax
mov eax, dword [edi + 0x26b0]
mov dword [esi + 0x30f0], eax
mov eax, dword [edi + 0x291c]
shl eax, 4
lea eax, [eax + eax*2]
push eax
push dword [edi + 0x2910]
lea eax, [esi + 0xe8]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 0x291c]
mov dword [esi + 0x30e8], eax
mov eax, dword [edi + 0x2690]
mov dword [esi + 0x30f4], eax
mov ecx, dword [esi + 0x5c]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
mov edx, dword [ecx + 0x18]
mov dword [esi + 0xc], edx
mov eax, dword [eax]
mov dword [esi + 0x14], eax
mov eax, dword [0x1025f644]
test al, 1
mov dword [esi + 0x10], ecx
je 0x10096bfa
mov edi, dword [0x1025f640]
mov dword [esi + 0x3108], 0xffffffff
lea eax, [ecx + 0x6c]
mov ecx, dword [edi + 4]
mov edx, dword [eax + 8]
mov edi, dword [esi + 0x14]
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 0x100965de
mov ecx, dword [esi + 0x10]
lea edx, [ecx + 0x78]
lea edi, [ecx + 0x84]
mov ebx, dword [0x10259d58]
mov ecx, eax
push edi
push edx
call dword [ebx + 0x28]
lea ebx, [esi + 0x60]
mov ecx, dword [esi + 0x10]
mov eax, dword [esi + 0xc]
cmp eax, 2
jg 0x10096600
add ecx, 0x3c8
cmp eax, 3
jb 0x10096612
jmp 0x100975e4
add ecx, 0x9c68
add eax, 0xfffffffd
cmp eax, 2
jae 0x100975e9
mov edx, ebx
imul eax, eax, 0x32e0
add ecx, eax
movss xmm0, dword [ecx + 0x3004]
mov dword [esi + 0x60], 0
movss dword [esi + 0x64], xmm0
mov dword [esi + 0x68], 0
mov eax, dword [0x10259d58]
mov edi, dword [esi + 0x14]
mov ebx, ecx
mov ecx, edi
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 ebx, dword [esi + 0x5c]
mov edi, dword [ebx + 0xc]
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x14], eax
cmp edi, eax
je 0x100966a1
nop word cs:[eax + eax]
push 0
push edi
push ebx
call fcn.1008b1c0
add edi, 0x3c
cmp edi, dword [esi + 0x14]
jne 0x10096690
mov eax, dword [ebx]
mov eax, dword [eax]
mov dword [esi + 0x14], eax
mov eax, dword [0x1025f644]
test al, 1
je 0x10096d06
mov edi, dword [0x1025f640]
lea ebx, [esi + 0x60]
mov eax, dword [edi + 4]
lea edx, [esi + 0xb8]
mov ecx, dword [edx + 8]
mov edi, dword [esi + 0x14]
mov dword [eax + edi + 8], ecx
movsd xmm0, qword [edx]
movsd qword [eax + edi], xmm0
mov eax, dword [0x10259d58]
mov ecx, edi
lea edx, [esi + 0xc4]
push edx
call dword [eax + 0x18]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
test eax, eax
je 0x10096380
mov edx, dword [0x10259d58]
mov ecx, eax
lea eax, [esi + 0xdc]
push eax
lea eax, [esi + 0xd0]
push eax
call dword [edx + 0x28]
jmp 0x10096380
or eax, 1
mov dword [0x1025f694], eax
mov eax, 0xa52eb1c6
mov ecx, 0xbd5fe799
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xa05b0094
mov ecx, 0xc67fd0d7
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xcc4bfc54
mov ecx, 0xa5df6d66
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0xa04a0028
mov ecx, 0x33137ba6
mov edx, 0xf57df285
mov edi, 0xd82686f5
mov dword [esi + 0x64], edi
mov dword [esi + 0x60], edx
mov edx, 0xcd652de6
mov edi, 0xb536b288
mov dword [esi + 0x6c], edi
mov dword [esi + 0x68], edx
mov edx, 0xbc249f07
mov edi, 0xa5df0903
mov dword [esi + 0x74], edi
mov dword [esi + 0x70], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x78], eax
mov eax, ebx
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [eax + 0x10]
mov eax, dword [0x10259d5c]
mov dword [esi + 0x1c], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3108], 0
lea ecx, [esi + 0x80]
lea eax, [esi + 0x20]
push eax
call fcn.10015240
cmp dword [esi + 0x94], 0x10
lea eax, [esi + 0x80]
mov dword [esi + 0xc], eax
jb 0x100967ed
mov eax, dword [esi + 0x80]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x90]
mov dword [esi + 0x10], eax
test eax, eax
je 0x10096e09
mov eax, dword [esi + 0x10]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x18], ecx
cmp eax, 4
jae 0x10096e4f
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10096e99
or eax, 1
mov dword [0x1025f644], eax
mov eax, 0x861cb0c6
mov ecx, 0xac48c390
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xe01c598f
mov ecx, 0xc369dfb6
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xce6bfc62
mov ecx, 0xcbb66e6a
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0xa04a0028
mov ecx, 0x33137ba6
mov edx, 0xf57df285
mov edi, 0xd82686f5
mov dword [esi + 0x64], edi
mov dword [esi + 0x60], edx
mov edx, 0xcd652de6
mov edi, 0xb536b288
mov dword [esi + 0x6c], edi
mov dword [esi + 0x68], edx
mov edx, 0xbc249f07
mov edi, 0xa5df0903
mov dword [esi + 0x74], edi
mov dword [esi + 0x70], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x78], eax
mov eax, ebx
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [eax + 0x10]
mov eax, dword [0x10259d5c]
mov dword [esi + 0x1c], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3108], 2
lea ecx, [esi + 0x80]
lea eax, [esi + 0x20]
push eax
call fcn.10015240
cmp dword [esi + 0x94], 0x10
lea eax, [esi + 0x80]
mov dword [esi + 0xc], eax
jb 0x100968f3
mov eax, dword [esi + 0x80]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x90]
mov dword [esi + 0x10], eax
test eax, eax
je 0x10096e13
mov eax, dword [esi + 0x10]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x18], ecx
cmp eax, 4
jae 0x10096f2a
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10096f74
or eax, 1
mov dword [0x1025f64c], eax
mov eax, dword [0x10259d5c]
mov dword [esi + 0x1c], eax
mov eax, 0x900bade8
mov ecx, 0xab44c796
mov dword [esi + 0x84], ecx
mov dword [esi + 0x80], eax
mov eax, 0xaa0c5fa9
mov ecx, 0xb536dce1
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x88], eax
mov eax, 0xf57df285
mov ecx, 0xd82686f5
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xcd652de6
mov ecx, 0xb536b288
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
lea eax, [esi + 0x20]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x80]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x80], xmm0
mov dword [esi + 0x3108], 4
mov ecx, ebx
lea eax, [esi + 0x80]
push eax
call fcn.10015240
cmp dword [esi + 0x74], 0x10
lea eax, [esi + 0x60]
mov dword [esi + 0xc], eax
jb 0x100969c0
mov eax, dword [esi + 0x60]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x70]
mov dword [esi + 0x10], eax
test eax, eax
je 0x10096e1d
mov eax, dword [esi + 0x10]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x18], ecx
cmp eax, 4
jae 0x10097005
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1009704f
or eax, 1
mov dword [0x1025f654], eax
mov eax, 0x861cb0c6
mov ecx, 0xac48c390
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xe01c598f
mov ecx, 0xc369dfb6
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xd569fc62
mov ecx, 0xa5df7a6d
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0xa04a0028
mov ecx, 0x33137ba6
mov edx, 0xf57df285
mov edi, 0xd82686f5
mov dword [esi + 0x64], edi
mov dword [esi + 0x60], edx
mov edx, 0xcd652de6
mov edi, 0xb536b288
mov dword [esi + 0x6c], edi
mov dword [esi + 0x68], edx
mov edx, 0xbc249f07
mov edi, 0xa5df0903
mov dword [esi + 0x74], edi
mov dword [esi + 0x70], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x78], eax
mov eax, ebx
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [eax + 0x10]
mov eax, dword [0x10259d5c]
mov dword [esi + 0x1c], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3108], 6
lea ecx, [esi + 0x80]
lea eax, [esi + 0x20]
push eax
call fcn.10015240
cmp dword [esi + 0x94], 0x10
lea eax, [esi + 0x80]
mov dword [esi + 0xc], eax
jb 0x10096ac3
mov eax, dword [esi + 0x80]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x90]
mov dword [esi + 0x10], eax
test eax, eax
je 0x10096e27
mov eax, dword [esi + 0x10]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x18], ecx
cmp eax, 4
jae 0x100970dc
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10097126
or eax, 1
mov dword [0x1025f65c], eax
mov eax, 0x861cb0c6
mov ecx, 0xac48c390
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xe01c598f
mov ecx, 0xc369dfb6
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xdd69fc62
mov ecx, 0xa5df7a7b
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0xa04a0028
mov ecx, 0x33137ba6
mov edx, 0xf57df285
mov edi, 0xd82686f5
mov dword [esi + 0x64], edi
mov dword [esi + 0x60], edx
mov edx, 0xcd652de6
mov edi, 0xb536b288
mov dword [esi + 0x6c], edi
mov dword [esi + 0x68], edx
mov edx, 0xbc249f07
mov edi, 0xa5df0903
mov dword [esi + 0x74], edi
mov dword [esi + 0x70], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x78], eax
mov eax, ebx
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [eax + 0x10]
mov eax, dword [0x10259d5c]
mov dword [esi + 0x1c], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3108], 8
lea ecx, [esi + 0x80]
lea eax, [esi + 0x20]
push eax
call fcn.10015240
cmp dword [esi + 0x94], 0x10
lea eax, [esi + 0x80]
mov dword [esi + 0xc], eax
jb 0x10096bc9
mov eax, dword [esi + 0x80]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x90]
mov dword [esi + 0x10], eax
test eax, eax
je 0x10096e31
mov eax, dword [esi + 0x10]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x18], ecx
cmp eax, 4
jae 0x100971b7
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10097201
or eax, 1
mov dword [0x1025f644], eax
mov eax, 0x861cb0c6
mov ecx, 0xac48c390
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xe01c598f
mov ecx, 0xc369dfb6
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xce6bfc62
mov ecx, 0xcbb66e6a
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0xa04a0028
mov ecx, 0x33137ba6
mov edx, 0xf57df285
mov edi, 0xd82686f5
mov dword [esi + 0x64], edi
mov dword [esi + 0x60], edx
mov edx, 0xcd652de6
mov edi, 0xb536b288
mov dword [esi + 0x6c], edi
mov dword [esi + 0x68], edx
mov edx, 0xbc249f07
mov edi, 0xa5df0903
mov dword [esi + 0x74], edi
mov dword [esi + 0x70], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x78], eax
mov eax, ebx
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [eax + 0x10]
mov eax, dword [0x10259d5c]
mov dword [esi + 0xa8], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3108], 0xa
lea ecx, [esi + 0x80]
lea eax, [esi + 0x20]
push eax
call fcn.10015240
cmp dword [esi + 0x94], 0x10
lea eax, [esi + 0x80]
mov dword [esi + 0x18], eax
jb 0x10096cd2
mov eax, dword [esi + 0x80]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x90]
mov dword [esi + 0x1c], eax
test eax, eax
je 0x10096e3b
mov eax, dword [esi + 0x1c]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xa4], ecx
cmp eax, 4
jae 0x10097292
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100972dc
or eax, 1
mov dword [0x1025f644], eax
mov eax, 0x861cb0c6
mov ecx, 0xac48c390
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xe01c598f
mov ecx, 0xc369dfb6
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xce6bfc62
mov ecx, 0xcbb66e6a
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0xa04a0028
mov ecx, 0x33137ba6
mov edx, 0xf57df285
mov edi, 0xd82686f5
mov dword [esi + 0x64], edi
mov dword [esi + 0x60], edx
mov edx, 0xcd652de6
mov edi, 0xb536b288
mov dword [esi + 0x6c], edi
mov dword [esi + 0x68], edx
mov edx, 0xbc249f07
mov edi, 0xa5df0903
mov dword [esi + 0x74], edi
mov dword [esi + 0x70], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x78], eax
lea eax, [esi + 0x60]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [eax + 0x10]
mov eax, dword [0x10259d5c]
mov dword [esi + 0x1c], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3108], 0xc
lea ecx, [esi + 0x80]
lea eax, [esi + 0x20]
push eax
call fcn.10015240
cmp dword [esi + 0x94], 0x10
lea eax, [esi + 0x80]
mov dword [esi + 0xc], eax
jb 0x10096ddc
mov eax, dword [esi + 0x80]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x90]
mov dword [esi + 0x10], eax
test eax, eax
je 0x10096e45
mov eax, dword [esi + 0x10]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x18], ecx
cmp eax, 4
jae 0x10097380
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100973ca
mov ecx, 0x811c9dc5
jmp 0x10096eb6
mov ecx, 0x811c9dc5
jmp 0x10096f91
mov ecx, 0x811c9dc5
jmp 0x1009706c
mov ecx, 0x811c9dc5
jmp 0x10097143
mov ecx, 0x811c9dc5
jmp 0x1009721e
mov ecx, 0x811c9dc5
jmp 0x100972fc
mov ecx, 0x811c9dc5
jmp 0x100973e7
mov edi, dword [esi + 0x10]
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 0x10096e5f
mov eax, dword [esi + 0x18]
test eax, eax
je 0x10096eb6
add edx, dword [esi + 0xc]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp eax, edi
jne 0x10096ea5
mov edx, dword [esi + 0x1c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
mov edx, dword [esi + 0x10]
je 0x10097639
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp edx, dword [edi + 0x18]
jne 0x10096efc
cmp dword [edi + 0x1c], 0x10
jb 0x10096ee4
mov eax, dword [edi + 8]
jmp 0x10096ee7
lea eax, [edi + 8]
mov ecx, dword [esi + 0xc]
push edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memcmp
mov edx, dword [esi + 0x10]
add esp, 0xc
test eax, eax
je 0x10096f0e
cmp edi, ebx
je 0x10097639
mov edi, dword [edi + 4]
cmp edx, dword [edi + 0x18]
je 0x10096ed9
jmp 0x10096efc
add edi, 0x20
lea ecx, [esi + 0x80]
call fcn.10014f60
mov dword [0x1025f690], edi
lea ebx, [esi + 0x60]
jmp 0x10096433
mov edi, dword [esi + 0x10]
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 0x10096f3a
mov eax, dword [esi + 0x18]
test eax, eax
je 0x10096f91
add edx, dword [esi + 0xc]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp eax, edi
jne 0x10096f80
mov edx, dword [esi + 0x1c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
mov edx, dword [esi + 0x10]
je 0x10097650
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp edx, dword [edi + 0x18]
jne 0x10096fd7
cmp dword [edi + 0x1c], 0x10
jb 0x10096fbf
mov eax, dword [edi + 8]
jmp 0x10096fc2
lea eax, [edi + 8]
mov ecx, dword [esi + 0xc]
push edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memcmp
mov edx, dword [esi + 0x10]
add esp, 0xc
test eax, eax
je 0x10096fe9
cmp edi, ebx
je 0x10097650
mov edi, dword [edi + 4]
cmp edx, dword [edi + 0x18]
je 0x10096fb4
jmp 0x10096fd7
add edi, 0x20
lea ecx, [esi + 0x80]
call fcn.10014f60
mov dword [0x1025f640], edi
lea ebx, [esi + 0x60]
jmp 0x10096464
mov edi, dword [esi + 0x10]
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 0x10097015
mov eax, dword [esi + 0x18]
test eax, eax
je 0x1009706c
add edx, dword [esi + 0xc]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp eax, edi
jne 0x1009705b
mov edx, dword [esi + 0x1c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
mov edx, dword [esi + 0x10]
je 0x10097667
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp edx, dword [edi + 0x18]
jne 0x100970b2
cmp dword [edi + 0x1c], 0x10
jb 0x1009709a
mov eax, dword [edi + 8]
jmp 0x1009709d
lea eax, [edi + 8]
mov ecx, dword [esi + 0xc]
push edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memcmp
mov edx, dword [esi + 0x10]
add esp, 0xc
test eax, eax
je 0x100970c4
cmp edi, ebx
je 0x10097667
mov edi, dword [edi + 4]
cmp edx, dword [edi + 0x18]
je 0x1009708f
jmp 0x100970b2
add edi, 0x20
lea ebx, [esi + 0x60]
mov ecx, ebx
call fcn.10014f60
mov dword [0x1025f648], edi
jmp 0x10096493
mov edi, dword [esi + 0x10]
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 0x100970ec
mov eax, dword [esi + 0x18]
test eax, eax
je 0x10097143
add edx, dword [esi + 0xc]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp eax, edi
jne 0x10097132
mov edx, dword [esi + 0x1c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
mov edx, dword [esi + 0x10]
je 0x1009767e
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp edx, dword [edi + 0x18]
jne 0x10097189
cmp dword [edi + 0x1c], 0x10
jb 0x10097171
mov eax, dword [edi + 8]
jmp 0x10097174
lea eax, [edi + 8]
mov ecx, dword [esi + 0xc]
push edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memcmp
mov edx, dword [esi + 0x10]
add esp, 0xc
test eax, eax
je 0x1009719b
cmp edi, ebx
je 0x1009767e
mov edi, dword [edi + 4]
cmp edx, dword [edi + 0x18]
je 0x10097166
jmp 0x10097189
add edi, 0x20
lea ecx, [esi + 0x80]
call fcn.10014f60
mov dword [0x1025f650], edi
lea ebx, [esi + 0x60]
jmp 0x100964c2
mov edi, dword [esi + 0x10]
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 0x100971c7
mov eax, dword [esi + 0x18]
test eax, eax
je 0x1009721e
add edx, dword [esi + 0xc]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp eax, edi
jne 0x1009720d
mov edx, dword [esi + 0x1c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
mov edx, dword [esi + 0x10]
je 0x1009760b
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp edx, dword [edi + 0x18]
jne 0x10097264
cmp dword [edi + 0x1c], 0x10
jb 0x1009724c
mov eax, dword [edi + 8]
jmp 0x1009724f
lea eax, [edi + 8]
mov ecx, dword [esi + 0xc]
push edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memcmp
mov edx, dword [esi + 0x10]
add esp, 0xc
test eax, eax
je 0x10097276
cmp edi, ebx
je 0x1009760b
mov edi, dword [edi + 4]
cmp edx, dword [edi + 0x18]
je 0x10097241
jmp 0x10097264
add edi, 0x20
lea ecx, [esi + 0x80]
call fcn.10014f60
mov dword [0x1025f658], edi
lea ebx, [esi + 0x60]
jmp 0x100964f1
mov edi, dword [esi + 0x1c]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x18]
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 0x100972a2
mov eax, dword [esi + 0xa4]
test eax, eax
je 0x100972fc
add edx, dword [esi + 0x18]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp eax, edi
jne 0x100972eb
mov edx, dword [esi + 0xa8]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
mov edx, dword [esi + 0x1c]
je 0x10097622
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp edx, dword [edi + 0x18]
jne 0x10097345
cmp dword [edi + 0x1c], 0x10
jb 0x1009732d
mov eax, dword [edi + 8]
jmp 0x10097330
lea eax, [edi + 8]
mov ecx, dword [esi + 0x18]
push edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memcmp
mov edx, dword [esi + 0x1c]
add esp, 0xc
test eax, eax
je 0x10097357
cmp edi, ebx
je 0x10097622
mov edi, dword [edi + 4]
cmp edx, dword [edi + 0x18]
je 0x10097322
jmp 0x10097345
add edi, 0x20
lea ecx, [esi + 0x80]
call fcn.10014f60
mov dword [0x1025f640], edi
mov dword [esi + 0x3108], 0xffffffff
lea ebx, [esi + 0x60]
mov ecx, dword [esi + 0x10]
jmp 0x10096592
mov edi, dword [esi + 0x10]
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 0x10097390
mov eax, dword [esi + 0x18]
test eax, eax
je 0x100973e7
add edx, dword [esi + 0xc]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp eax, edi
jne 0x100973d6
mov edx, dword [esi + 0x1c]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
mov edx, dword [esi + 0x10]
je 0x100975f4
add ecx, ecx
mov ebx, dword [eax + ecx*4]
cmp edx, dword [edi + 0x18]
jne 0x1009742d
cmp dword [edi + 0x1c], 0x10
jb 0x10097415
mov eax, dword [edi + 8]
jmp 0x10097418
lea eax, [edi + 8]
mov ecx, dword [esi + 0xc]
push edx
push eax
push ecx
call sub.VCRUNTIME140.dll_memcmp
mov edx, dword [esi + 0x10]
add esp, 0xc
test eax, eax
je 0x1009743f
cmp edi, ebx
je 0x100975f4
mov edi, dword [edi + 4]
cmp edx, dword [edi + 0x18]
je 0x1009740a
jmp 0x1009742d
add edi, 0x20
lea ecx, [esi + 0x80]
call fcn.10014f60
mov dword [0x1025f640], edi
mov dword [esi + 0x3108], 0xffffffff
jmp 0x100966bb
mov eax, dword [esi + 0xa0]
mov edi, dword [eax + 0x9c]
mov eax, dword [eax + 0xa0]
mov edx, eax
mov dword [esi + 0x5c], eax
cmp edi, eax
je 0x100975ba
mov ebx, dword [esi + 0x5c]
nop word cs:[eax + eax]
push edi
call fcn.10090b10
test al, al
je 0x100974a8
add edi, 0x20
cmp edi, ebx
jne 0x10097490
mov edx, ebx
jmp 0x100975ba
cmp edi, ebx
je 0x100975b8
mov eax, ebx
lea ebx, [edi + 0x20]
mov edx, edi
cmp ebx, eax
jne 0x100974cf
jmp 0x100975ba
mov edx, dword [esi + 0x14]
add ebx, 0x20
cmp ebx, dword [esi + 0x5c]
je 0x100975ba
mov dword [esi + 0x14], edx
push ebx
call fcn.10090b10
test al, al
je 0x100974c0
mov eax, dword [ebx]
mov edx, dword [esi + 0x14]
mov dword [edx], eax
movsd xmm0, qword [ebx + 4]
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
mov edi, dword [edx + 8]
movsd qword [edx + 4], xmm0
test edi, edi
je 0x10097530
lock dec dword [edi + 4]
jne 0x10097530
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov edx, dword [esi + 0x14]
lock dec dword [edi + 8]
jne 0x10097530
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov edx, dword [esi + 0x14]
nop word cs:[eax + eax]
cmp ebx, edx
je 0x100975a6
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x1009757f
mov eax, dword [edx + 0x14]
sub eax, ecx
cmp eax, 0x1000
jb 0x1009755d
mov edx, dword [ecx - 4]
add ecx, 0xfffffffc
sub ecx, edx
cmp ecx, 0x20
jae 0x100975ee
add eax, 0x23
mov ecx, edx
push eax
push ecx
call fcn.10155bc0
add esp, 8
mov edx, dword [esi + 0x14]
mov dword [edx + 0xc], 0
mov dword [edx + 0x10], 0
mov dword [edx + 0x14], 0
mov eax, dword [ebx + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [ebx + 0x10]
mov dword [edx + 0x10], eax
mov eax, dword [ebx + 0x14]
mov dword [edx + 0x14], eax
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
mov dword [ebx + 0x14], 0
movsd xmm0, qword [ebx + 0x18]
movsd qword [edx + 0x18], xmm0
add edx, 0x20
jmp 0x100974c3
mov edx, edi
mov ecx, dword [esi + 0xac]
push dword [esi + 0x5c]
push edx
lea eax, [esi + 0xb4]
push eax
call fcn.10097860
mov eax, dword [esi + 0x3100]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.1009f400
call fcn.1009f400
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov dword [esi + 0x3108], 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 + 0x3108], 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 + 0x3108], 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 + 0x3108], 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 + 0x3108], 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 + 0x3108], 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 + 0x3108], 7
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, 0x10
lea esi, [ebp - 0x310c]
mov ebp, dword [esi + 0x30f8]
lea ecx, [esi + 0x80]
call fcn.10014f60
add esp, 0x10
pop ebp
ret