Function at 0x1008e900
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, 0x3140
call fcn.10157ab0
mov esi, esp
mov dword [esi + 0x3118], ebp
mov dword [esi + 0x94], ecx
mov edx, dword [ebp + 8]
mov dword [esi + 0x311c], esp
mov dword [esi + 0x3128], 0xffffffff
lea eax, [esi + 0x3120]
mov dword [esi + 0x3124], 0x100a0770
mov ecx, dword fs:[0]
mov dword [esi + 0x3120], ecx
mov dword fs:[0], eax
mov eax, dword [edx + 4]
mov ecx, dword [eax + 0x18]
cmp ecx, 2
jg 0x1008e977
ja 0x1008f9b5
imul ecx, ecx, 0x32e0
add eax, ecx
add eax, 0x3c8
jmp 0x1008e990
add ecx, 0xfffffffd
cmp ecx, 2
jae 0x1008f9ba
imul ecx, ecx, 0x32e0
add eax, ecx
add eax, 0x9c68
mov dword [esi + 0x10], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov ecx, dword [eax]
mov eax, dword [ecx + 0x294c]
mov edi, dword [eax]
mov eax, dword [0x102606ac]
test al, 1
je 0x1008f704
mov ebx, dword [0x102606a8]
mov eax, dword [ebx + 4]
mov ebx, dword [eax + ecx]
add edi, dword [edi + 0xb0]
mov ecx, dword [esi + 0x94]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
call fcn.10089550
mov dword [esi + 0xc0], eax
mov edx, dword [ebp + 8]
mov ecx, dword [edx + 0x14]
sub ecx, dword [edx + 0xc]
add edx, 0xc
mov dword [esi + 0xa0], edx
sar ecx, 2
imul ecx, ecx, 0xeeeeeeef
cmp ecx, eax
jae 0x1008ea14
cmp eax, 0x4444445
jae 0x1008f9bf
lea eax, [esi + 0xc0]
mov ecx, dword [esi + 0xa0]
push eax
call fcn.1009f470
mov dword [esi + 4], ebx
mov eax, dword [0x1025adc4]
push dword [eax + 0x138]
push dword [eax + 0x134]
call fcn.10087260
add esp, 8
mov byte [esi + 0x14], al
mov eax, dword [0x1025adc8]
mov ecx, dword [eax + 0x1d8]
mov eax, dword [0x1025af40]
test al, 1
mov dword [esi + 0xc], edi
je 0x1008f826
mov ebx, dword [0x1025af3c]
mov eax, dword [esi + 4]
lea edi, [eax + eax*2]
mov eax, dword [ebx + 4]
movzx eax, word [eax + ecx]
mov word [esi + 4], ax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
movss xmm0, dword [eax + 0x60]
movss xmm1, dword [eax + 0x64]
mulss xmm1, xmm1
mulss xmm0, xmm0
addss xmm0, xmm1
movss xmm1, dword [eax + 0x68]
mulss xmm1, xmm1
addss xmm1, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm1
xorps xmm1, xmm1
ucomisd xmm0, xmm1
jb 0x1008eaa4
sqrtsd xmm0, xmm0
jmp 0x1008eac2
sub esp, 8
movsd qword [esp], xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrt
add esp, 8
fstp qword [esi + 0xb8]
movsd xmm0, qword [esi + 0xb8]
cvtsd2ss xmm0, xmm0
movss dword [esi + 0x98], xmm0
mov eax, dword [esi + 0xc]
lea eax, [eax + edi*4]
mov dword [esi + 0xc], eax
xor ecx, ecx
mov edi, 0xe8
jmp 0x1008eaf2
mov ecx, dword [esi + 0x18]
inc ecx
cmp ecx, 6
mov edi, 0xe8
je 0x1008f165
mov dword [esi + 0x18], ecx
mov ebx, 1
shl ebx, cl
mov eax, dword [ebp + 0xc]
mov ecx, dword [esi + 0x18]
bt eax, ecx
mov eax, dword [esi + 0x18]
jb 0x1008ec29
cmp eax, 2
jne 0x1008eae0
mov dword [esi + 8], ebx
mov ecx, dword [0x1025adc4]
add ecx, edi
mov dword [esi + 0x40], 0
mov dword [esi + 0x3128], 0xffffffff
lea eax, [esi + 0x40]
push eax
lea ebx, [esi + 0xc0]
push ebx
call fcn.10036c40
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
jne 0x1008ec26
mov ecx, dword [0x1025adc4]
add ecx, edi
mov dword [esi + 0x20], 1
lea eax, [esi + 0x20]
push eax
push ebx
call fcn.10036c40
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
jne 0x1008ec26
mov ecx, dword [0x1025adc4]
add ecx, edi
mov dword [esi + 0x70], 2
lea eax, [esi + 0x70]
push eax
push ebx
call fcn.10036c40
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
jne 0x1008ec26
mov ecx, dword [0x1025adc4]
add ecx, edi
mov dword [esi + 0x88], 3
lea eax, [esi + 0x88]
push eax
push ebx
call fcn.10036c40
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
jne 0x1008ec26
mov ecx, dword [0x1025adc4]
add ecx, edi
mov dword [esi + 0x9c], 4
lea eax, [esi + 0x9c]
push eax
push ebx
call fcn.10036c40
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
jne 0x1008ec26
mov ecx, dword [0x1025adc4]
add ecx, edi
mov dword [esi + 0xb4], 5
lea eax, [esi + 0xb4]
push eax
push ebx
call fcn.10036c40
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
je 0x1008f089
mov ebx, dword [esi + 8]
mov edx, dword [esi + 0x18]
lea eax, [edx + edx*2]
test dword [ebp + 0x10], ebx
je 0x1008ecf0
xor ecx, ecx
test edx, edx
setne cl
mov edx, dword [0x1025adc4]
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [edx + ecx*4 + 0x9c]
divss xmm0, dword [0x101a99a8]
mulss xmm0, dword [str.333_]
addss xmm0, dword [0x101a9840]
movss dword [esi + 0x1c], xmm0
mov ecx, dword [esi + 0x94]
mov edi, dword [ecx + eax*4]
mov eax, dword [ecx + eax*4 + 4]
mov dword [esi + 8], eax
cmp edi, eax
jne 0x1008ec98
jmp 0x1008ed10
add edi, 4
cmp edi, dword [esi + 8]
je 0x1008ed10
mov eax, dword [esi + 0xc]
mov edx, dword [eax + 8]
add edx, eax
je 0x1008ec90
mov eax, dword [edi]
mov ecx, eax
shl ecx, 6
lea ebx, [ecx + eax*4]
lea ecx, [edx + ebx]
mov edx, dword [edx + ebx]
lea edx, [edx + edx*2]
shl edx, 4
add edx, dword [esi + 0x10]
mov dword [esi + 0x3128], 0xffffffff
sub esp, 0x14
movss xmm0, dword [esi + 0x1c]
movss dword [esp + 0x10], xmm0
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.1008d8a0
jmp 0x1008ec90
mov ecx, dword [esi + 0x94]
mov edi, dword [ecx + eax*4]
mov eax, dword [ecx + eax*4 + 4]
mov dword [esi + 8], eax
cmp edi, eax
jne 0x1008ef42
nop dword [eax + eax]
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
cmp edi, ebx
jne 0x1008ed42
jmp 0x1008eae0
mov dword [edi + 0x38], 3
add edi, 0x3c
cmp edi, ebx
je 0x1008eae0
cmp word [esi + 4], 0x1f
je 0x1008ed30
cmp byte [esi + 0x14], 0
jne 0x1008eeb0
mov ecx, dword [0x1025adc4]
mov eax, 0x114
add ecx, eax
mov dword [esi + 0x40], 3
mov dword [esi + 0x3128], 0xffffffff
lea eax, [esi + 0x40]
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.10036c40
movss xmm0, dword [0x101a9844]
ucomiss xmm0, dword [esi + 0x98]
jb 0x1008eda2
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
jne 0x1008eeb0
mov ecx, dword [0x1025adc4]
mov eax, 0x114
add ecx, eax
mov dword [esi + 0x20], 4
lea eax, [esi + 0x20]
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.10036c40
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
je 0x1008eddc
cmp dword [edi + 0x30], 6
jg 0x1008eeb0
mov ecx, dword [0x1025adc4]
mov eax, 0x114
add ecx, eax
mov dword [esi + 0x70], 5
lea eax, [esi + 0x70]
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.10036c40
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
je 0x1008ee2a
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov eax, dword [eax + 0x3030]
mov ecx, dword [0x1025adc4]
cmp eax, dword [ecx + 0x140]
jl 0x1008ee30
jmp 0x1008eeb0
mov ecx, dword [0x1025adc4]
add ecx, 0x114
mov dword [esi + 0x88], 6
lea eax, [esi + 0x88]
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.10036c40
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
je 0x1008ee6b
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp byte [eax + 8], 0
jne 0x1008eeb0
mov ecx, dword [0x1025adc4]
mov eax, 0x114
add ecx, eax
mov dword [esi + 0x9c], 7
lea eax, [esi + 0x9c]
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.10036c40
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
je 0x1008eec1
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp byte [eax + 7], 0
je 0x1008eec1
nop dword [eax]
mov eax, dword [0x1025adc4]
mov eax, dword [eax + 0x13c]
add eax, 2
mov dword [edi + 0x38], eax
add edi, 0x3c
cmp edi, ebx
jne 0x1008ed42
jmp 0x1008eae0
mov edx, dword [edx]
mov dword [esi + 0x1c], edx
mov edx, dword [edi]
mov ebx, dword [esi + 0xc8]
mov dword [eax + 8], ebx
movsd xmm0, qword [esi + 0xc0]
movsd qword [eax], xmm0
movups xmmword [eax + 0xc], xmm6
mov dword [eax + 0x19], 0
mov dword [eax + 0x1d], 0
mov word [eax + 0x24], 1
mov dword [eax + 0x28], 0
mov dword [eax + 0x2c], 0
mov dword [eax + 0x30], edx
mov edx, dword [esi + 0x1c]
mov dword [eax + 0x34], edx
mov dword [eax + 0x38], 0
add dword [ecx + 0x10], 0x3c
add edi, 4
cmp edi, dword [esi + 8]
je 0x1008ed10
mov ecx, dword [esi + 0xc]
mov eax, dword [ecx + 8]
add eax, ecx
je 0x1008ef36
mov ecx, dword [edi]
mov edx, ecx
shl edx, 6
lea ecx, [edx + ecx*4]
mov dword [esi + 0xc8], 0
xorps xmm6, xmm6
movlps qword [esi + 0xc0], xmm6
mov edx, dword [eax + ecx]
lea edx, [edx + edx*2]
shl edx, 4
movss xmm0, dword [eax + ecx + 0x10]
addss xmm0, dword [eax + ecx + 0x1c]
movss xmm3, dword [eax + ecx + 0xc]
addss xmm3, dword [eax + ecx + 0x18]
movss xmm1, dword [eax + ecx + 8]
addss xmm1, dword [eax + ecx + 0x14]
movss xmm2, dword [0x101a82c0]
mulss xmm0, xmm2
mulss xmm3, xmm2
mulss xmm1, xmm2
mov ebx, dword [esi + 0x10]
movss xmm2, dword [ebx + edx + 0x24]
mulss xmm2, xmm3
movss xmm4, dword [ebx + edx + 0x20]
mulss xmm4, xmm1
addss xmm4, xmm2
movss xmm2, dword [ebx + edx + 0x28]
mulss xmm2, xmm0
addss xmm2, xmm4
unpcklps xmm3, xmm3
movss xmm4, dword [ebx + edx + 0x14]
movss xmm5, dword [ebx + edx + 4]
unpcklps xmm5, xmm4
movss xmm4, dword [ebx + edx]
mulps xmm5, xmm3
movss xmm3, dword [ebx + edx + 0x10]
unpcklps xmm4, xmm3
unpcklps xmm1, xmm1
mulps xmm1, xmm4
addps xmm1, xmm5
movss xmm3, dword [ebx + edx + 0x18]
movss xmm4, dword [ebx + edx + 8]
unpcklps xmm4, xmm3
unpcklps xmm0, xmm0
mulps xmm0, xmm4
addps xmm0, xmm1
movss xmm1, dword [ebx + edx + 0x1c]
movss xmm3, dword [ebx + edx + 0xc]
unpcklps xmm3, xmm1
addps xmm3, xmm0
addss xmm2, dword [ebx + edx + 0x2c]
movlps qword [esi + 0xc0], xmm3
movss dword [esi + 0xc8], xmm2
mov dword [esi + 0x40], 0
lea edx, [eax + ecx + 4]
mov byte [esi + 0x20], 1
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0x10]
cmp eax, dword [ecx + 0x14]
jne 0x1008eee0
mov dword [esi + 0x3128], 0xffffffff
mov ecx, dword [esi + 0xa0]
lea ebx, [esi + 0x40]
push ebx
push edx
push edi
lea edx, [esi + 0x20]
push edx
lea edx, [esi + 0xc0]
push edx
push eax
call fcn.1009f540
jmp 0x1008ef36
mov ecx, dword [0x1025adc4]
add ecx, edi
mov dword [esi + 0xb0], 6
lea eax, [esi + 0xb0]
push eax
push ebx
call fcn.10036c40
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
je 0x1008f0d9
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov eax, dword [eax + 0x3030]
mov ecx, dword [0x1025adc4]
cmp eax, dword [ecx + 0x110]
lea ebx, [esi + 0xc0]
jge 0x1008ec26
jmp 0x1008f0e5
mov ecx, dword [0x1025adc4]
lea ebx, [esi + 0xc0]
add ecx, 0xe8
mov dword [esi + 0xac], 7
lea eax, [esi + 0xac]
push eax
push ebx
call fcn.10036c40
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
je 0x1008f11e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp byte [eax + 8], 0
jne 0x1008ec26
mov ecx, dword [0x1025adc4]
add ecx, edi
mov dword [esi + 0xa8], 8
lea eax, [esi + 0xa8]
push eax
push ebx
call fcn.10036c40
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
je 0x1008eae0
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp byte [eax + 7], 0
mov ebx, dword [esi + 8]
jne 0x1008ec29
jmp 0x1008eae0
cmp byte [ebp + 0x14], 0
je 0x1008f6ee
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov edi, dword [eax]
push 0x3044
push 0
lea eax, [esi + 0xc0]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [0x10260704]
test al, 1
je 0x1008f9c4
mov ebx, dword [0x10260700]
mov eax, dword [ebx + 4]
mov eax, dword [edi + eax - 0x14]
test eax, eax
je 0x1008f1ba
movss xmm0, dword [eax + 0x80]
movss dword [esi + 0xc0], xmm0
mov eax, dword [0x102606b4]
test al, 1
je 0x1008fac4
mov ebx, dword [0x102606b0]
lea edx, [esi + 0xc4]
mov eax, dword [ebx + 4]
mov ecx, dword [eax + edi + 8]
mov dword [edx + 8], ecx
movsd xmm0, qword [eax + edi]
movsd qword [edx], xmm0
mov eax, dword [0x102606bc]
test al, 1
je 0x1008fbc4
mov ebx, dword [0x102606b8]
lea edx, [esi + 0xd0]
mov eax, dword [ebx + 4]
mov ecx, dword [eax + edi + 8]
mov dword [edx + 8], ecx
movsd xmm0, qword [eax + edi]
movsd qword [edx], xmm0
mov eax, dword [0x102606c4]
test al, 1
je 0x1008fc7c
mov ebx, dword [0x102606c0]
lea edx, [esi + 0xdc]
mov eax, dword [ebx + 4]
mov ecx, dword [eax + edi + 8]
mov dword [edx + 8], ecx
movsd xmm0, qword [eax + edi]
movsd qword [edx], xmm0
mov eax, dword [0x102606cc]
test al, 1
je 0x1008fd7c
mov ebx, dword [0x102606c8]
lea edx, [esi + 0xf4]
mov eax, dword [ebx + 4]
mov ecx, dword [eax + edi + 8]
mov dword [esi + 0xf0], ecx
movsd xmm0, qword [eax + edi]
movsd qword [esi + 0xe8], xmm0
mov eax, dword [edi + 0x26ac]
mov dword [esi + 0x30f8], eax
mov eax, dword [edi + 0x26b0]
mov dword [esi + 0x30fc], eax
mov eax, dword [edi + 0x291c]
shl eax, 4
lea eax, [eax + eax*2]
push eax
push dword [edi + 0x2910]
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 0x291c]
mov dword [esi + 0x30f4], eax
mov eax, dword [edi + 0x2690]
mov dword [esi + 0x3100], eax
mov ecx, dword [ebp + 8]
mov eax, dword [ecx]
mov ebx, dword [ecx + 4]
mov ecx, dword [ebx + 0x18]
mov dword [esi + 0xc], ecx
mov eax, dword [eax]
mov dword [esi + 4], eax
mov eax, dword [0x102606b4]
test al, 1
je 0x1008fe7c
mov edi, dword [0x102606b0]
mov dword [esi + 0x3128], 0xffffffff
lea eax, [ebx + 0x6c]
mov ecx, dword [edi + 4]
mov edx, dword [eax + 8]
mov edi, dword [esi + 4]
mov dword [ecx + edi + 8], edx
movsd xmm0, qword [eax]
movsd qword [ecx + edi], xmm0
mov edx, dword [0x1025adc8]
mov ecx, edi
push eax
call dword [edx + 0x18]
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0xc]
test eax, eax
je 0x1008f338
lea ecx, [ebx + 0x78]
mov dword [esi + 8], ecx
lea edi, [ebx + 0x84]
mov edx, dword [0x1025adc8]
mov ecx, eax
push edi
push dword [esi + 8]
call dword [edx + 0x28]
mov eax, dword [esi + 0xc]
cmp eax, 2
jg 0x1008f357
ja 0x1008f9b5
imul eax, eax, 0x32e0
lea edi, [ebx + eax]
add edi, 0x3c8
jmp 0x1008f372
add eax, 0xfffffffd
cmp eax, 2
jae 0x1008f9ba
imul eax, eax, 0x32e0
lea edi, [ebx + eax]
add edi, 0x9c68
movss xmm0, dword [edi + 0x3004]
mov dword [esi + 0x40], 0
movss dword [esi + 0x44], xmm0
mov dword [esi + 0x48], 0
mov eax, dword [0x1025adc8]
mov ebx, dword [esi + 4]
mov ecx, ebx
lea edx, [esi + 0x40]
push edx
call dword [eax + 0x14]
mov eax, dword [edi + 0x3000]
shl eax, 4
lea eax, [eax + eax*2]
push eax
push edi
push dword [ebx + 0x2910]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [0x1025adc8]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0xa]
mov eax, dword [eax]
mov dword [ebx + 0x2690], eax
mov dword [esi + 0x88], 0
mov dword [esi + 0x8c], 0
mov dword [esi + 0x90], 0
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esi + 0x1c], eax
cmp ebx, dword [esi + 0x1c]
je 0x1008f5ef
mov eax, dword [esi + 0x8c]
cmp eax, dword [esi + 0x90]
mov dword [esi + 4], ebx
je 0x1008f440
xorps xmm0, xmm0
movups xmmword [eax + 0x50], xmm0
movups xmmword [eax + 0x40], xmm0
movups xmmword [eax + 0x30], xmm0
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x10], xmm0
movups xmmword [eax], xmm0
lea ecx, [eax + 0x60]
mov dword [esi + 0x8c], ecx
jmp 0x1008f459
mov dword [esi + 0x3128], 0x10
lea ecx, [esi + 0x88]
push eax
call fcn.1009f6e0
mov ebx, dword [esi + 4]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 8]
test edx, edx
je 0x1008f470
lock inc dword [edx + 4]
mov edx, dword [ecx + 8]
jmp 0x1008f472
xor edx, edx
mov ecx, dword [ecx + 4]
mov dword [eax + 4], ecx
mov edi, dword [eax + 8]
mov dword [eax + 8], edx
test edi, edi
mov dword [esi + 0xc], eax
je 0x1008f4b0
lock dec dword [edi + 4]
jne 0x1008f4b0
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, dword [esi + 0xc]
lock dec dword [edi + 8]
jne 0x1008f4b0
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov eax, dword [esi + 0xc]
nop word cs:[eax + eax]
mov ecx, dword [ebp + 8]
cmp eax, ecx
je 0x1008f595
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
mov dword [esi + 8], edx
sub ecx, edx
mov dword [esi + 0x10], ecx
sar ecx, 2
imul edi, ecx, 0xeeeeeeef
mov edx, dword [eax + 0xc]
mov ecx, dword [eax + 0x14]
sub ecx, edx
sar ecx, 2
imul ecx, ecx, 0xeeeeeeef
cmp ecx, edi
mov dword [esi + 0x14], edi
jae 0x1008f520
lea ecx, [eax + 0xc]
mov dword [esi + 0x3128], 0x10
mov dword [esi + 0x18], ecx
push edi
call fcn.1009fd30
mov eax, dword [esi + 0x18]
mov ebx, dword [eax]
push dword [esi + 0x10]
push dword [esi + 8]
push ebx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
imul edi, dword [esi + 0x14], 0x3c
add edi, ebx
jmp 0x1008f57f
mov ebx, dword [eax + 0x10]
sub ebx, edx
mov ecx, ebx
sar ecx, 2
imul ecx, ecx, 0xeeeeeeef
mov dword [esi + 0x18], ecx
sub edi, ecx
jbe 0x1008f56a
push ebx
push dword [esi + 8]
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
imul eax, dword [esi + 0x18], 0x3c
add eax, dword [esi + 8]
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esi + 0x10]
sub ecx, ebx
push ecx
push eax
mov ebx, edx
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
imul edi, edi, 0x3c
add edi, ebx
jmp 0x1008f57f
imul edi, dword [esi + 0x14], 0x3c
add edi, edx
push dword [esi + 0x10]
push dword [esi + 8]
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esi + 0xc]
mov dword [eax + 0x10], edi
mov dword [esi + 0x3128], 0x10
mov ecx, dword [ebp + 8]
mov ebx, dword [esi + 4]
mov edx, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
mov dword [eax + 0x1c], ecx
mov dword [eax + 0x18], edx
movups xmm0, xmmword [ebx]
movups xmm1, xmmword [ebx + 0x10]
movups xmmword [eax + 0x20], xmm0
movups xmmword [eax + 0x30], xmm1
movups xmm0, xmmword [ebx + 0x20]
movups xmmword [eax + 0x40], xmm0
movups xmm0, xmmword [ebx + 0x2c]
movups xmmword [eax + 0x4c], xmm0
mov byte [eax + 0x5c], 0
mov dword [esi + 0x3128], 0x10
push 0
push 1
push eax
push 0x10089710
call fcn.10088920
add esp, 0x10
mov ebx, dword [esi + 4]
add ebx, 0x3c
cmp ebx, dword [esi + 0x1c]
jne 0x1008f400
mov dword [esi + 0x3128], 0x10
push 0
call fcn.10088c40
add esp, 4
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [esi + 4], eax
mov eax, dword [0x102606b4]
test al, 1
je 0x1008ff7c
mov ebx, dword [0x102606b0]
mov eax, dword [ebx + 4]
lea edx, [esi + 0xc4]
mov edi, dword [edx + 8]
mov ecx, dword [esi + 4]
mov dword [eax + ecx + 8], edi
movsd xmm0, qword [edx]
movsd qword [eax + ecx], xmm0
mov eax, dword [0x1025adc8]
lea edx, [esi + 0xd0]
push edx
call dword [eax + 0x18]
mov ecx, dword [esi + 4]
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x1008f670
mov edx, dword [0x1025adc8]
mov ecx, eax
lea eax, [esi + 0xe8]
push eax
lea eax, [esi + 0xdc]
push eax
call dword [edx + 0x28]
movss xmm0, dword [esi + 0xc0]
mov dword [esi + 0x40], 0
movss dword [esi + 0x44], xmm0
mov dword [esi + 0x48], 0
mov eax, dword [0x1025adc8]
mov ecx, dword [esi + 4]
lea edx, [esi + 0x40]
push edx
call dword [eax + 0x14]
mov eax, dword [esi + 0x30f8]
mov edi, dword [esi + 4]
mov dword [edi + 0x26ac], eax
mov eax, dword [esi + 0x30fc]
mov dword [edi + 0x26b0], eax
mov eax, dword [esi + 0x30f4]
shl eax, 4
lea eax, [eax + eax*2]
push eax
lea eax, [esi + 0xf4]
push eax
push dword [edi + 0x2910]
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [esi + 0x3100]
mov dword [edi + 0x2690], eax
lea ecx, [esi + 0x88]
call fcn.1009fae0
mov eax, dword [esi + 0x3120]
mov dword fs:[0], eax
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x10
mov dword [esi + 0x18], ecx
mov dword [esi + 0xc], edi
or eax, 1
mov dword [0x102606ac], eax
mov eax, dword [0x1025adcc]
mov dword [esi + 0x1c], eax
mov eax, 0xbb6d7426
mov ecx, 0x7cd31ce4
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xecba795f
mov ecx, 0xd2c52caa
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0x35f75a9a
mov ecx, 0xe755eaf2
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov ecx, 0x2fa6794
mov eax, 0x4c76479e
mov edx, 0x4c76479e
mov dword [esi + 0x5c], edx
mov dword [esi + 0x58], ecx
mov ecx, 0xc80c3665
mov edx, 0x15bd5d81
mov dword [esi + 0xc4], edx
mov dword [esi + 0xc0], ecx
mov ecx, 0x85ce1832
mov edx, 0xece84bc4
mov dword [esi + 0xcc], edx
mov dword [esi + 0xc8], ecx
mov ecx, 0x7d9905f7
mov edx, 0x88379e9b
mov dword [esi + 0xd4], edx
mov dword [esi + 0xd0], ecx
mov ecx, 0x769f34ec
mov dword [esi + 0xdc], eax
mov dword [esi + 0xd8], ecx
lea eax, [esi + 0xc0]
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 + 0x3128], 0
lea eax, [esi + 0x40]
lea ecx, [esi + 0x20]
mov dword [esi + 8], ecx
push eax
call fcn.10015170
mov eax, dword [esi + 0x30]
mov dword [esi + 4], eax
cmp dword [esi + 0x34], 0x10
jb 0x1008f7fc
mov eax, dword [esi + 0x20]
mov dword [esi + 8], eax
cmp dword [esi + 4], 0
je 0x10090079
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x14], ecx
cmp eax, 4
jae 0x1009008a
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100900d4
mov dword [esi + 0xa4], ecx
or eax, 1
mov dword [0x1025af40], eax
mov eax, dword [0x1025adcc]
mov dword [esi + 0x98], eax
mov eax, 0xbb6d7426
mov ecx, 0x61c91ce4
mov dword [esi + 0xc4], ecx
mov dword [esi + 0xc0], eax
mov eax, 0xf0ac7140
mov ecx, 0x808a2ab0
mov dword [esi + 0xcc], ecx
mov dword [esi + 0xc8], eax
mov eax, 0x18ed4c92
mov ecx, 0xe509b3f6
mov dword [esi + 0xd4], ecx
mov dword [esi + 0xd0], eax
mov eax, 0x2d65db3
mov ecx, 0x29322afb
mov dword [esi + 0xdc], ecx
mov dword [esi + 0xd8], eax
mov eax, 0x88b4cf4f
mov ecx, 0xc0e8e229
mov dword [esi + 0xe4], ecx
mov dword [esi + 0xe0], eax
mov eax, 0x1d1b372f
mov ecx, 0xda6d6138
mov dword [esi + 0xec], ecx
mov dword [esi + 0xe8], eax
mov eax, 0xc80c3665
mov ecx, 0x15bd5d81
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0x85ce1832
mov ecx, 0xece84bc4
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0x7d9905f7
mov ecx, 0x88379e9b
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov eax, 0x769f34ec
mov ecx, 0x4c76479e
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
mov eax, 0xe1daa629
mov ecx, 0xae878b5d
mov dword [esi + 0x64], ecx
mov dword [esi + 0x60], eax
mov eax, 0x787f5966
mov ecx, 0xda6d6140
mov dword [esi + 0x6c], ecx
mov dword [esi + 0x68], eax
lea eax, [esi + 0x40]
xor ecx, ecx
movaps xmm0, xmmword [esi + 0xc0]
xorps xmm0, xmmword [eax]
movaps xmmword [esi + 0xc0], xmm0
movaps xmm0, xmmword [esi + 0xd0]
xorps xmm0, xmmword [eax + 0x10]
movaps xmmword [esi + 0xd0], xmm0
movaps xmm0, xmmword [esi + 0xe0]
xorps xmm0, xmmword [eax + 0x20]
movaps xmmword [esi + 0xe0], xmm0
mov dword [esi + 0x3128], 2
lea eax, [esi + 0xc0]
lea ecx, [esi + 0x20]
mov dword [esi + 0x1c], ecx
push eax
call fcn.10015170
mov eax, dword [esi + 0x30]
mov dword [esi + 8], eax
cmp dword [esi + 0x34], 0x10
jb 0x1008f98b
mov eax, dword [esi + 0x20]
mov dword [esi + 0x1c], eax
cmp dword [esi + 8], 0
je 0x10090080
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x18], ecx
cmp eax, 4
jae 0x10090168
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100901b2
call fcn.1009f460
call fcn.1009f460
call fcn.100366b0
mov dword [esi + 0x10], edi
or eax, 1
mov dword [0x10260704], eax
mov eax, 0x985f7526
mov ecx, 0x70c43ced
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xe8f03540
mov ecx, 0x9fa1299b
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xdf666a4
mov ecx, 0x8837fafe
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x769f34ec
mov ecx, 0x4c76479e
mov edx, 0xc80c3665
mov edi, 0x15bd5d81
mov dword [esi + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0x85ce1832
mov edi, 0xece84bc4
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edx
mov edx, 0x7d9905f7
mov edi, 0x88379e9b
mov dword [esi + 0x54], edi
mov dword [esi + 0x50], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
xor eax, eax
lea ecx, [esi + 0x40]
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [ecx + 0x10]
mov eax, dword [0x1025adcc]
mov dword [esi + 0x14], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3128], 4
lea ecx, [esi + 0x70]
mov dword [esi + 0xc], ecx
lea eax, [esi + 0x20]
push eax
call fcn.10015170
mov eax, dword [esi + 0x80]
mov dword [esi + 4], eax
cmp dword [esi + 0x84], 0x10
jb 0x1008fa9a
mov eax, dword [esi + 0x70]
mov dword [esi + 0xc], eax
cmp dword [esi + 4], 0
je 0x1009023f
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 3
mov dword [esi + 8], ecx
cmp eax, 4
jae 0x10090285
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100902cf
mov dword [esi + 0x10], edi
or eax, 1
mov dword [0x102606b4], eax
mov eax, 0xbb6d7426
mov ecx, 0x61d318e4
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xa8b76c5b
mov ecx, 0x9ab726fa
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xfd66692
mov ecx, 0xe65ef9f2
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x769f34ec
mov ecx, 0x4c76479e
mov edx, 0xc80c3665
mov edi, 0x15bd5d81
mov dword [esi + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0x85ce1832
mov edi, 0xece84bc4
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edx
mov edx, 0x7d9905f7
mov edi, 0x88379e9b
mov dword [esi + 0x54], edi
mov dword [esi + 0x50], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
xor eax, eax
lea ecx, [esi + 0x40]
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [ecx + 0x10]
mov eax, dword [0x1025adcc]
mov dword [esi + 0x14], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3128], 6
lea ecx, [esi + 0x70]
mov dword [esi + 0xc], ecx
lea eax, [esi + 0x20]
push eax
call fcn.10015170
mov eax, dword [esi + 0x80]
mov dword [esi + 4], eax
cmp dword [esi + 0x84], 0x10
jb 0x1008fb9a
mov eax, dword [esi + 0x70]
mov dword [esi + 0xc], eax
cmp dword [esi + 4], 0
je 0x10090249
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 3
mov dword [esi + 8], ecx
cmp eax, 4
jae 0x10090356
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100903a0
mov dword [esi + 0x10], edi
or eax, 1
mov dword [0x102606bc], eax
mov eax, dword [0x1025adcc]
mov dword [esi + 0x14], eax
mov eax, 0xad7a6908
mov ecx, 0x66df1ce2
mov dword [esi + 0x74], ecx
mov dword [esi + 0x70], eax
mov eax, 0xe2a76a7d
mov ecx, 0xece825ad
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x78], eax
mov eax, 0xc80c3665
mov ecx, 0x15bd5d81
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0x85ce1832
mov ecx, 0xece84bc4
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
xor eax, eax
lea ecx, [esi + 0x20]
movaps xmm0, xmmword [esi + 0x70]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x70], xmm0
mov dword [esi + 0x3128], 8
lea ecx, [esi + 0x40]
mov dword [esi + 0xc], ecx
lea eax, [esi + 0x70]
push eax
call fcn.10015170
mov eax, dword [esi + 0x50]
mov dword [esi + 4], eax
cmp dword [esi + 0x54], 0x10
jb 0x1008fc52
mov eax, dword [esi + 0x40]
mov dword [esi + 0xc], eax
cmp dword [esi + 4], 0
je 0x10090253
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 3
mov dword [esi + 8], ecx
cmp eax, 4
jae 0x10090427
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10090471
mov dword [esi + 0x10], edi
or eax, 1
mov dword [0x102606c4], eax
mov eax, 0xbb6d7426
mov ecx, 0x61d318e4
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xa8b76c5b
mov ecx, 0x9ab726fa
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0x14d46692
mov ecx, 0x8837edf5
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x769f34ec
mov ecx, 0x4c76479e
mov edx, 0xc80c3665
mov edi, 0x15bd5d81
mov dword [esi + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0x85ce1832
mov edi, 0xece84bc4
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edx
mov edx, 0x7d9905f7
mov edi, 0x88379e9b
mov dword [esi + 0x54], edi
mov dword [esi + 0x50], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
xor eax, eax
lea ecx, [esi + 0x40]
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [ecx + 0x10]
mov eax, dword [0x1025adcc]
mov dword [esi + 0x14], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3128], 0xa
lea ecx, [esi + 0x70]
mov dword [esi + 0xc], ecx
lea eax, [esi + 0x20]
push eax
call fcn.10015170
mov eax, dword [esi + 0x80]
mov dword [esi + 4], eax
cmp dword [esi + 0x84], 0x10
jb 0x1008fd52
mov eax, dword [esi + 0x70]
mov dword [esi + 0xc], eax
cmp dword [esi + 4], 0
je 0x1009025d
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 3
mov dword [esi + 8], ecx
cmp eax, 4
jae 0x100904f8
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10090542
mov dword [esi + 0x10], edi
or eax, 1
mov dword [0x102606cc], eax
mov eax, 0xbb6d7426
mov ecx, 0x61d318e4
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xa8b76c5b
mov ecx, 0x9ab726fa
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0x1cd46692
mov ecx, 0x8837ede3
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x769f34ec
mov ecx, 0x4c76479e
mov edx, 0xc80c3665
mov edi, 0x15bd5d81
mov dword [esi + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0x85ce1832
mov edi, 0xece84bc4
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edx
mov edx, 0x7d9905f7
mov edi, 0x88379e9b
mov dword [esi + 0x54], edi
mov dword [esi + 0x50], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
xor eax, eax
lea ecx, [esi + 0x40]
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [ecx + 0x10]
mov eax, dword [0x1025adcc]
mov dword [esi + 0x14], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3128], 0xc
lea ecx, [esi + 0x70]
mov dword [esi + 0xc], ecx
lea eax, [esi + 0x20]
push eax
call fcn.10015170
mov eax, dword [esi + 0x80]
mov dword [esi + 4], eax
cmp dword [esi + 0x84], 0x10
jb 0x1008fe52
mov eax, dword [esi + 0x70]
mov dword [esi + 0xc], eax
cmp dword [esi + 4], 0
je 0x10090267
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 3
mov dword [esi + 8], ecx
cmp eax, 4
jae 0x100905c9
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10090613
mov dword [esi + 0x18], ebx
or eax, 1
mov dword [0x102606b4], eax
mov eax, 0xbb6d7426
mov ecx, 0x61d318e4
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xa8b76c5b
mov ecx, 0x9ab726fa
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xfd66692
mov ecx, 0xe65ef9f2
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x769f34ec
mov ecx, 0x4c76479e
mov edx, 0xc80c3665
mov edi, 0x15bd5d81
mov dword [esi + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0x85ce1832
mov edi, 0xece84bc4
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edx
mov edx, 0x7d9905f7
mov edi, 0x88379e9b
mov dword [esi + 0x54], edi
mov dword [esi + 0x50], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
xor eax, eax
lea ecx, [esi + 0x40]
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [ecx + 0x10]
mov eax, dword [0x1025adcc]
mov dword [esi + 0x1c], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3128], 0xe
lea ecx, [esi + 0x70]
mov dword [esi + 0x10], ecx
lea eax, [esi + 0x20]
push eax
call fcn.10015170
mov eax, dword [esi + 0x80]
mov dword [esi + 8], eax
cmp dword [esi + 0x84], 0x10
jb 0x1008ff52
mov eax, dword [esi + 0x70]
mov dword [esi + 0x10], eax
cmp dword [esi + 8], 0
je 0x10090271
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x14], ecx
cmp eax, 4
jae 0x1009069a
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100906e4
or eax, 1
mov dword [0x102606b4], eax
mov eax, 0xbb6d7426
mov ecx, 0x61d318e4
mov dword [esi + 0x24], ecx
mov dword [esi + 0x20], eax
mov eax, 0xa8b76c5b
mov ecx, 0x9ab726fa
mov dword [esi + 0x2c], ecx
mov dword [esi + 0x28], eax
mov eax, 0xfd66692
mov ecx, 0xe65ef9f2
mov dword [esi + 0x34], ecx
mov dword [esi + 0x30], eax
mov eax, 0x769f34ec
mov ecx, 0x4c76479e
mov edx, 0xc80c3665
mov edi, 0x15bd5d81
mov dword [esi + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0x85ce1832
mov edi, 0xece84bc4
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edx
mov edx, 0x7d9905f7
mov edi, 0x88379e9b
mov dword [esi + 0x54], edi
mov dword [esi + 0x50], edx
mov dword [esi + 0x3c], ecx
mov dword [esi + 0x38], eax
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
xor eax, eax
lea ecx, [esi + 0x40]
movaps xmm0, xmmword [esi + 0x20]
xorps xmm0, xmmword [ecx]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [esi + 0x30]
xorps xmm0, xmmword [ecx + 0x10]
mov eax, dword [0x1025adcc]
mov dword [esi + 0x14], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3128], 0x11
lea ecx, [esi + 0x70]
mov dword [esi + 8], ecx
lea eax, [esi + 0x20]
push eax
call fcn.10015170
mov eax, dword [esi + 0x80]
mov dword [esi + 0xc], eax
cmp dword [esi + 0x84], 0x10
jb 0x1009004f
mov eax, dword [esi + 0x70]
mov dword [esi + 8], eax
cmp dword [esi + 0xc], 0
je 0x1009027b
mov eax, dword [esi + 0xc]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x10090775
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100907bf
mov ecx, 0x811c9dc5
jmp 0x100900f1
mov ecx, 0x811c9dc5
jmp 0x100901cf
mov edi, dword [esi + 4]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 8]
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 0x1009009a
cmp dword [esi + 0x14], 0
je 0x100900f1
add edx, dword [esi + 8]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x14], edi
jne 0x100900df
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 0x1009084d
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x18]
jne 0x10090135
cmp dword [ebx + 0x1c], 0x10
jb 0x1009011f
mov eax, dword [ebx + 8]
jmp 0x10090122
lea eax, [ebx + 8]
push dword [esi + 4]
push eax
push dword [esi + 8]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x10090142
cmp ebx, edi
je 0x1009084d
mov ebx, dword [ebx + 4]
jmp 0x1009010c
add ebx, 0x20
lea ecx, [esi + 0x20]
call fcn.10015110
mov dword [0x102606a8], ebx
mov dword [esi + 0x3128], 0xffffffff
mov edi, dword [esi + 0xc]
mov ecx, dword [esi + 0x18]
jmp 0x1008e9b5
mov edi, dword [esi + 8]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x1c]
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 0x10090178
cmp dword [esi + 0x18], 0
je 0x100901cf
add edx, dword [esi + 0x1c]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x18], edi
jne 0x100901bd
mov edx, dword [esi + 0x98]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x10090864
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x10090216
cmp dword [ebx + 0x1c], 0x10
jb 0x10090200
mov eax, dword [ebx + 8]
jmp 0x10090203
lea eax, [ebx + 8]
push dword [esi + 8]
push eax
push dword [esi + 0x1c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x10090223
cmp ebx, edi
je 0x10090864
mov ebx, dword [ebx + 4]
jmp 0x100901ed
add ebx, 0x20
lea ecx, [esi + 0x20]
call fcn.10015110
mov dword [0x1025af3c], ebx
mov ecx, dword [esi + 0xa4]
jmp 0x1008ea54
mov ecx, 0x811c9dc5
jmp 0x100902ec
mov ecx, 0x811c9dc5
jmp 0x100903bd
mov ecx, 0x811c9dc5
jmp 0x1009048e
mov ecx, 0x811c9dc5
jmp 0x1009055f
mov ecx, 0x811c9dc5
jmp 0x10090630
mov ecx, 0x811c9dc5
jmp 0x10090701
mov ecx, 0x811c9dc5
jmp 0x100907dc
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 0x10090295
cmp dword [esi + 8], 0
je 0x100902ec
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 + 8], edi
jne 0x100902da
mov edx, dword [esi + 0x14]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x1009087b
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x18]
jne 0x10090330
cmp dword [ebx + 0x1c], 0x10
jb 0x1009031a
mov eax, dword [ebx + 8]
jmp 0x1009031d
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 0x1009033d
cmp ebx, edi
je 0x1009087b
mov ebx, dword [ebx + 4]
jmp 0x10090307
add ebx, 0x20
lea ecx, [esi + 0x70]
call fcn.10015110
mov dword [0x10260700], ebx
mov edi, dword [esi + 0x10]
jmp 0x1008f19f
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 0x10090366
cmp dword [esi + 8], 0
je 0x100903bd
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 + 8], edi
jne 0x100903ab
mov edx, dword [esi + 0x14]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x10090892
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x18]
jne 0x10090401
cmp dword [ebx + 0x1c], 0x10
jb 0x100903eb
mov eax, dword [ebx + 8]
jmp 0x100903ee
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 0x1009040e
cmp ebx, edi
je 0x10090892
mov ebx, dword [ebx + 4]
jmp 0x100903d8
add ebx, 0x20
lea ecx, [esi + 0x70]
call fcn.10015110
mov dword [0x102606b0], ebx
mov edi, dword [esi + 0x10]
jmp 0x1008f1cd
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 0x10090437
cmp dword [esi + 8], 0
je 0x1009048e
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 + 8], edi
jne 0x1009047c
mov edx, dword [esi + 0x14]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100908a9
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x18]
jne 0x100904d2
cmp dword [ebx + 0x1c], 0x10
jb 0x100904bc
mov eax, dword [ebx + 8]
jmp 0x100904bf
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 0x100904df
cmp ebx, edi
je 0x100908a9
mov ebx, dword [ebx + 4]
jmp 0x100904a9
add ebx, 0x20
lea ecx, [esi + 0x40]
call fcn.10015110
mov dword [0x102606b8], ebx
mov edi, dword [esi + 0x10]
jmp 0x1008f1f9
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 0x10090508
cmp dword [esi + 8], 0
je 0x1009055f
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 + 8], edi
jne 0x1009054d
mov edx, dword [esi + 0x14]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100908c0
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x18]
jne 0x100905a3
cmp dword [ebx + 0x1c], 0x10
jb 0x1009058d
mov eax, dword [ebx + 8]
jmp 0x10090590
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 0x100905b0
cmp ebx, edi
je 0x100908c0
mov ebx, dword [ebx + 4]
jmp 0x1009057a
add ebx, 0x20
lea ecx, [esi + 0x70]
call fcn.10015110
mov dword [0x102606c0], ebx
mov edi, dword [esi + 0x10]
jmp 0x1008f225
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 0x100905d9
cmp dword [esi + 8], 0
je 0x10090630
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 + 8], edi
jne 0x1009061e
mov edx, dword [esi + 0x14]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x100908d7
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x18]
jne 0x10090674
cmp dword [ebx + 0x1c], 0x10
jb 0x1009065e
mov eax, dword [ebx + 8]
jmp 0x10090661
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 0x10090681
cmp ebx, edi
je 0x100908d7
mov ebx, dword [ebx + 4]
jmp 0x1009064b
add ebx, 0x20
lea ecx, [esi + 0x70]
call fcn.10015110
mov dword [0x102606c8], ebx
mov edi, dword [esi + 0x10]
jmp 0x1008f251
mov edi, dword [esi + 8]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 0x10]
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 0x100906aa
cmp dword [esi + 0x14], 0
je 0x10090701
add edx, dword [esi + 0x10]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x14], edi
jne 0x100906ef
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]
je 0x100908ee
add ecx, ecx
mov ebx, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [edi + 0x18]
jne 0x10090745
cmp dword [edi + 0x1c], 0x10
jb 0x1009072f
mov eax, dword [edi + 8]
jmp 0x10090732
lea eax, [edi + 8]
push dword [esi + 8]
push eax
push dword [esi + 0x10]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x10090752
cmp edi, ebx
je 0x100908ee
mov edi, dword [edi + 4]
jmp 0x1009071c
add edi, 0x20
lea ecx, [esi + 0x70]
call fcn.10015110
mov dword [0x102606b0], edi
mov dword [esi + 0x3128], 0xffffffff
mov ebx, dword [esi + 0x18]
jmp 0x1008f2ed
mov edi, dword [esi + 0xc]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 8]
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 0x10090785
cmp dword [esi + 0x10], 0
je 0x100907dc
add edx, dword [esi + 8]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x10], edi
jne 0x100907ca
mov edx, dword [esi + 0x14]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov ebx, dword [eax + ecx*8 + 4]
cmp ebx, dword [edx + 4]
je 0x10090905
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0xc]
cmp eax, dword [ebx + 0x18]
jne 0x10090820
cmp dword [ebx + 0x1c], 0x10
jb 0x1009080a
mov eax, dword [ebx + 8]
jmp 0x1009080d
lea eax, [ebx + 8]
push dword [esi + 0xc]
push eax
push dword [esi + 8]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x1009082d
cmp ebx, edi
je 0x10090905
mov ebx, dword [ebx + 4]
jmp 0x100907f7
add ebx, 0x20
lea ecx, [esi + 0x70]
call fcn.10015110
mov dword [0x102606b0], ebx
mov dword [esi + 0x3128], 0x10
jmp 0x1008f620
mov dword [esi + 0x3128], 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 + 0x3128], 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 + 0x3128], 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 + 0x3128], 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 + 0x3128], 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 + 0x3128], 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 + 0x3128], 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 + 0x3128], 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 + 0x3128], 0x12
push str.invalid_unordered_map_K__T__key
call sub.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__
add esp, 4
nop dword [eax]
push ebp
sub esp, 0x18
lea esi, [ebp - 0x312c]
mov ebp, dword [esi + 0x3118]
lea ecx, [esi + 0x20]
call fcn.10015110
add esp, 0x18
pop ebp
ret