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.10155c00
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 [0x10258d54]
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 [0x10258d54]
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 [0x10258d58]
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 [0x1025e694]
test al, 1
je 0x10096718
mov edi, dword [0x1025e690]
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 [0x1025e644]
test al, 1
je 0x1009681e
mov edi, dword [0x1025e640]
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 [0x1025e64c]
test al, 1
je 0x10096924
mov edi, dword [0x1025e648]
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 [0x1025e654]
test al, 1
je 0x100969ee
mov edi, dword [0x1025e650]
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 [0x1025e65c]
test al, 1
je 0x10096af4
mov edi, dword [0x1025e658]
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 [0x1025e644]
test al, 1
mov dword [esi + 0x10], ecx
je 0x10096bfa
mov edi, dword [0x1025e640]
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 [0x10258d58]
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 [0x10258d58]
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 [0x10258d58]
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 [0x10258d58]
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 [0x1025e644]
test al, 1
je 0x10096d06
mov edi, dword [0x1025e640]
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 [0x10258d58]
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 [0x10258d58]
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 [0x1025e694], eax
mov eax, 0x905a606
mov ecx, 0x5de14885
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0x841f5874
mov ecx, 0x79a58f
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xb4984314
mov ecx, 0x76b829ea
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x9e593c28
mov ecx, 0x8f05a52e
mov edx, 0x5956e545
mov edi, 0x389829e9
mov dword [esi + 0x64], edi
mov dword [esi + 0x60], edx
mov edx, 0xe9217506
mov edi, 0x7330c7d0
mov dword [esi + 0x6c], edi
mov dword [esi + 0x68], edx
mov edx, 0xc4f72047
mov edi, 0x76b84d8f
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 [0x10258d5c]
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 [0x1025e644], eax
mov eax, 0x2a37a706
mov ecx, 0x4cf66c8c
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xc458016f
mov ecx, 0x56faaee
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xb6b84322
mov ecx, 0x18d12ae6
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x9e593c28
mov ecx, 0x8f05a52e
mov edx, 0x5956e545
mov edi, 0x389829e9
mov dword [esi + 0x64], edi
mov dword [esi + 0x60], edx
mov edx, 0xe9217506
mov edi, 0x7330c7d0
mov dword [esi + 0x6c], edi
mov dword [esi + 0x68], edx
mov edx, 0xc4f72047
mov edi, 0x76b84d8f
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 [0x10258d5c]
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 [0x1025e64c], eax
mov eax, dword [0x10258d5c]
mov dword [esi + 0x1c], eax
mov eax, 0x3c20ba28
mov ecx, 0x4bfa688a
mov dword [esi + 0x84], ecx
mov dword [esi + 0x80], eax
mov eax, 0x8e480749
mov ecx, 0x7330a9b9
mov dword [esi + 0x8c], ecx
mov dword [esi + 0x88], eax
mov eax, 0x5956e545
mov ecx, 0x389829e9
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xe9217506
mov ecx, 0x7330c7d0
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 [0x1025e654], eax
mov eax, 0x2a37a706
mov ecx, 0x4cf66c8c
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xc458016f
mov ecx, 0x56faaee
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xadba4322
mov ecx, 0x76b83ee1
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x9e593c28
mov ecx, 0x8f05a52e
mov edx, 0x5956e545
mov edi, 0x389829e9
mov dword [esi + 0x64], edi
mov dword [esi + 0x60], edx
mov edx, 0xe9217506
mov edi, 0x7330c7d0
mov dword [esi + 0x6c], edi
mov dword [esi + 0x68], edx
mov edx, 0xc4f72047
mov edi, 0x76b84d8f
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 [0x10258d5c]
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 [0x1025e65c], eax
mov eax, 0x2a37a706
mov ecx, 0x4cf66c8c
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xc458016f
mov ecx, 0x56faaee
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xa5ba4322
mov ecx, 0x76b83ef7
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x9e593c28
mov ecx, 0x8f05a52e
mov edx, 0x5956e545
mov edi, 0x389829e9
mov dword [esi + 0x64], edi
mov dword [esi + 0x60], edx
mov edx, 0xe9217506
mov edi, 0x7330c7d0
mov dword [esi + 0x6c], edi
mov dword [esi + 0x68], edx
mov edx, 0xc4f72047
mov edi, 0x76b84d8f
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 [0x10258d5c]
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 [0x1025e644], eax
mov eax, 0x2a37a706
mov ecx, 0x4cf66c8c
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xc458016f
mov ecx, 0x56faaee
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xb6b84322
mov ecx, 0x18d12ae6
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x9e593c28
mov ecx, 0x8f05a52e
mov edx, 0x5956e545
mov edi, 0x389829e9
mov dword [esi + 0x64], edi
mov dword [esi + 0x60], edx
mov edx, 0xe9217506
mov edi, 0x7330c7d0
mov dword [esi + 0x6c], edi
mov dword [esi + 0x68], edx
mov edx, 0xc4f72047
mov edi, 0x76b84d8f
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 [0x10258d5c]
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 [0x1025e644], eax
mov eax, 0x2a37a706
mov ecx, 0x4cf66c8c
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xc458016f
mov ecx, 0x56faaee
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xb6b84322
mov ecx, 0x18d12ae6
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x9e593c28
mov ecx, 0x8f05a52e
mov edx, 0x5956e545
mov edi, 0x389829e9
mov dword [esi + 0x64], edi
mov dword [esi + 0x60], edx
mov edx, 0xe9217506
mov edi, 0x7330c7d0
mov dword [esi + 0x6c], edi
mov dword [esi + 0x68], edx
mov edx, 0xc4f72047
mov edi, 0x76b84d8f
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 [0x10258d5c]
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 [0x1025e690], 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 [0x1025e640], 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 [0x1025e648], 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 [0x1025e650], 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 [0x1025e658], 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 [0x1025e640], 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 [0x1025e640], 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.10155aa0
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