Function at 0x1008e890
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.10155d20
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], 0x100a06f0
mov ecx, dword fs:[0]
mov dword [esi + 0x3120], ecx
mov dword fs:[0], eax
mov ecx, dword [edx + 4]
mov eax, dword [ecx + 0x18]
cmp eax, 2
jg 0x1008e902
add ecx, 0x3c8
cmp eax, 3
jb 0x1008e914
call fcn.1009f400
add ecx, 0x9c68
add eax, 0xfffffffd
cmp eax, 2
jae 0x1008f935
imul eax, eax, 0x32e0
add ecx, eax
mov dword [esi + 0x10], ecx
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 [0x1025f63c]
test al, 1
je 0x1008f684
mov ebx, dword [0x1025f638]
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.10089480
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 0x1008e994
cmp eax, 0x4444445
jae 0x1008f93a
mov ecx, dword [esi + 0xa0]
push eax
call fcn.1009f410
mov dword [esi + 8], ebx
mov eax, dword [0x10259d54]
push dword [eax + 0x138]
push dword [eax + 0x134]
call fcn.10087190
add esp, 8
mov byte [esi + 0x14], al
mov eax, dword [0x10259d58]
mov ecx, dword [eax + 0x1d8]
mov eax, dword [0x10259ed0]
test al, 1
mov dword [esi + 4], edi
je 0x1008f7a6
mov ebx, dword [0x10259ecc]
mov eax, dword [esi + 8]
lea edi, [eax + eax*2]
mov eax, dword [ebx + 4]
movzx eax, word [eax + ecx]
mov word [esi + 8], 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 0x1008ea24
sqrtsd xmm0, xmm0
jmp 0x1008ea42
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 + 4]
lea eax, [eax + edi*4]
mov dword [esi + 4], eax
xor ecx, ecx
mov edi, 0xe8
jmp 0x1008ea72
mov ecx, dword [esi + 0x18]
inc ecx
cmp ecx, 6
mov edi, 0xe8
je 0x1008f0e5
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 0x1008eba9
cmp eax, 2
jne 0x1008ea60
mov dword [esi + 0xc], ebx
mov ecx, dword [0x10259d54]
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.10036b60
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
jne 0x1008eba6
mov ecx, dword [0x10259d54]
add ecx, edi
mov dword [esi + 0x20], 1
lea eax, [esi + 0x20]
push eax
push ebx
call fcn.10036b60
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
jne 0x1008eba6
mov ecx, dword [0x10259d54]
add ecx, edi
mov dword [esi + 0x70], 2
lea eax, [esi + 0x70]
push eax
push ebx
call fcn.10036b60
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
jne 0x1008eba6
mov ecx, dword [0x10259d54]
add ecx, edi
mov dword [esi + 0x88], 3
lea eax, [esi + 0x88]
push eax
push ebx
call fcn.10036b60
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
jne 0x1008eba6
mov ecx, dword [0x10259d54]
add ecx, edi
mov dword [esi + 0x9c], 4
lea eax, [esi + 0x9c]
push eax
push ebx
call fcn.10036b60
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
jne 0x1008eba6
mov ecx, dword [0x10259d54]
add ecx, edi
mov dword [esi + 0xb4], 5
lea eax, [esi + 0xb4]
push eax
push ebx
call fcn.10036b60
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
je 0x1008f009
mov ebx, dword [esi + 0xc]
mov edx, dword [esi + 0x18]
lea eax, [edx + edx*2]
test dword [ebp + 0x10], ebx
je 0x1008ec70
xor ecx, ecx
test edx, edx
setne cl
mov edx, dword [0x10259d54]
xorps xmm0, xmm0
cvtsi2ss xmm0, dword [edx + ecx*4 + 0x9c]
divss xmm0, dword [0x101a89a8]
mulss xmm0, dword [str.333_]
addss xmm0, dword [0x101a8840]
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 + 0xc], eax
cmp edi, eax
jne 0x1008ec18
jmp 0x1008ec90
add edi, 4
cmp edi, dword [esi + 0xc]
je 0x1008ec90
mov eax, dword [esi + 4]
mov edx, dword [eax + 8]
add edx, eax
je 0x1008ec10
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.1008d830
jmp 0x1008ec10
mov ecx, dword [esi + 0x94]
mov edi, dword [ecx + eax*4]
mov eax, dword [ecx + eax*4 + 4]
mov dword [esi + 0xc], eax
cmp edi, eax
jne 0x1008eec2
nop dword [eax + eax]
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
cmp edi, ebx
jne 0x1008ecc2
jmp 0x1008ea60
mov dword [edi + 0x38], 3
add edi, 0x3c
cmp edi, ebx
je 0x1008ea60
cmp word [esi + 8], 0x1f
je 0x1008ecb0
cmp byte [esi + 0x14], 0
jne 0x1008ee30
mov ecx, dword [0x10259d54]
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.10036b60
movss xmm0, dword [0x101a8844]
ucomiss xmm0, dword [esi + 0x98]
jb 0x1008ed22
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
jne 0x1008ee30
mov ecx, dword [0x10259d54]
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.10036b60
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
je 0x1008ed5c
cmp dword [edi + 0x30], 6
jg 0x1008ee30
mov ecx, dword [0x10259d54]
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.10036b60
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
je 0x1008edaa
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov eax, dword [eax + 0x3030]
mov ecx, dword [0x10259d54]
cmp eax, dword [ecx + 0x140]
jl 0x1008edb0
jmp 0x1008ee30
mov ecx, dword [0x10259d54]
add ecx, 0x114
mov dword [esi + 0x88], 6
lea eax, [esi + 0x88]
push eax
lea eax, [esi + 0xc0]
push eax
call fcn.10036b60
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
je 0x1008edeb
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp byte [eax + 8], 0
jne 0x1008ee30
mov ecx, dword [0x10259d54]
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.10036b60
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
je 0x1008ee41
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp byte [eax + 7], 0
je 0x1008ee41
nop dword [eax]
mov eax, dword [0x10259d54]
mov eax, dword [eax + 0x13c]
add eax, 2
mov dword [edi + 0x38], eax
add edi, 0x3c
cmp edi, ebx
jne 0x1008ecc2
jmp 0x1008ea60
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 + 0xc]
je 0x1008ec90
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 8]
add eax, ecx
je 0x1008eeb6
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 [0x101a72c0]
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 0x1008ee60
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.1009f4d0
jmp 0x1008eeb6
mov ecx, dword [0x10259d54]
add ecx, edi
mov dword [esi + 0xb0], 6
lea eax, [esi + 0xb0]
push eax
push ebx
call fcn.10036b60
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
je 0x1008f059
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov eax, dword [eax + 0x3030]
mov ecx, dword [0x10259d54]
cmp eax, dword [ecx + 0x110]
lea ebx, [esi + 0xc0]
jge 0x1008eba6
jmp 0x1008f065
mov ecx, dword [0x10259d54]
lea ebx, [esi + 0xc0]
add ecx, 0xe8
mov dword [esi + 0xac], 7
lea eax, [esi + 0xac]
push eax
push ebx
call fcn.10036b60
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
je 0x1008f09e
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp byte [eax + 8], 0
jne 0x1008eba6
mov ecx, dword [0x10259d54]
add ecx, edi
mov dword [esi + 0xa8], 8
lea eax, [esi + 0xa8]
push eax
push ebx
call fcn.10036b60
mov eax, dword [esi + 0xc0]
cmp byte [eax + 0xc], 0
je 0x1008ea60
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
cmp byte [eax + 7], 0
mov ebx, dword [esi + 0xc]
jne 0x1008eba9
jmp 0x1008ea60
cmp byte [ebp + 0x14], 0
je 0x1008f66e
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 [0x1025f694]
test al, 1
je 0x1008f93f
mov ebx, dword [0x1025f690]
mov eax, dword [ebx + 4]
mov eax, dword [edi + eax - 0x14]
test eax, eax
je 0x1008f13a
movss xmm0, dword [eax + 0x80]
movss dword [esi + 0xc0], xmm0
mov eax, dword [0x1025f644]
test al, 1
je 0x1008fa3f
mov ebx, dword [0x1025f640]
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 [0x1025f64c]
test al, 1
je 0x1008fb3f
mov ebx, dword [0x1025f648]
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 [0x1025f654]
test al, 1
je 0x1008fbf7
mov ebx, dword [0x1025f650]
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 [0x1025f65c]
test al, 1
je 0x1008fcf7
mov ebx, dword [0x1025f658]
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 + 8], ecx
mov edi, dword [eax]
mov eax, dword [0x1025f644]
test al, 1
je 0x1008fdf7
mov ecx, dword [0x1025f640]
mov dword [esi + 0x3128], 0xffffffff
lea eax, [ebx + 0x6c]
mov ecx, dword [ecx + 4]
mov edx, dword [eax + 8]
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 0x1008f2bc
lea ecx, [ebx + 0x78]
mov dword [esi + 4], ecx
mov edx, edi
lea edi, [ebx + 0x84]
mov ecx, dword [0x10259d58]
mov dword [esi + 0xc], ecx
mov ecx, eax
push edi
mov edi, edx
push dword [esi + 4]
mov eax, dword [esi + 0xc]
call dword [eax + 0x28]
mov eax, dword [esi + 8]
cmp eax, 2
jg 0x1008f2d6
add ebx, 0x3c8
cmp eax, 3
jb 0x1008f2e8
mov ecx, ebx
call fcn.1009f400
add ebx, 0x9c68
add eax, 0xfffffffd
cmp eax, 2
jae 0x100901bd
imul eax, eax, 0x32e0
add ebx, eax
movss xmm0, dword [ebx + 0x3004]
mov dword [esi + 0x40], 0
movss dword [esi + 0x44], xmm0
mov dword [esi + 0x48], 0
mov eax, dword [0x10259d58]
mov ecx, edi
lea edx, [esi + 0x40]
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 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 0x1008f56f
nop dword [eax + eax]
mov eax, dword [esi + 0x8c]
cmp eax, dword [esi + 0x90]
mov dword [esi + 8], ebx
je 0x1008f3c0
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 0x1008f3d9
mov dword [esi + 0x3128], 0x10
lea ecx, [esi + 0x88]
push eax
call fcn.1009f670
mov ebx, dword [esi + 8]
mov ecx, dword [ebp + 8]
mov edx, dword [ecx]
mov dword [eax], edx
mov edx, dword [ecx + 8]
test edx, edx
je 0x1008f3f0
lock inc dword [edx + 4]
mov edx, dword [ecx + 8]
jmp 0x1008f3f2
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 + 4], eax
je 0x1008f430
lock dec dword [edi + 4]
jne 0x1008f430
mov eax, dword [edi]
mov ecx, edi
call dword [eax]
mov eax, dword [esi + 4]
lock dec dword [edi + 8]
jne 0x1008f430
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov eax, dword [esi + 4]
nop word cs:[eax + eax]
mov ecx, dword [ebp + 8]
cmp eax, ecx
je 0x1008f515
mov edx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
mov dword [esi + 0xc], 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 0x1008f4a0
lea ecx, [eax + 0xc]
mov dword [esi + 0x3128], 0x10
mov dword [esi + 0x18], ecx
push edi
call fcn.1009fcc0
mov eax, dword [esi + 0x18]
mov ebx, dword [eax]
push dword [esi + 0x10]
push dword [esi + 0xc]
push ebx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
imul edi, dword [esi + 0x14], 0x3c
add edi, ebx
jmp 0x1008f4ff
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 0x1008f4ea
push ebx
push dword [esi + 0xc]
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
imul eax, dword [esi + 0x18], 0x3c
add eax, dword [esi + 0xc]
mov ecx, dword [esi + 4]
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 0x1008f4ff
imul edi, dword [esi + 0x14], 0x3c
add edi, edx
push dword [esi + 0x10]
push dword [esi + 0xc]
push edx
call sub.VCRUNTIME140.dll_memmove
add esp, 0xc
mov eax, dword [esi + 4]
mov dword [eax + 0x10], edi
mov dword [esi + 0x3128], 0x10
mov ecx, dword [ebp + 8]
mov ebx, dword [esi + 8]
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 0x10089640
call fcn.10088850
add esp, 0x10
mov ebx, dword [esi + 8]
add ebx, 0x3c
cmp ebx, dword [esi + 0x1c]
jne 0x1008f380
mov dword [esi + 0x3128], 0x10
push 0
call fcn.10088b70
add esp, 4
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [esi + 8], eax
mov eax, dword [0x1025f644]
test al, 1
je 0x1008fefa
mov ebx, dword [0x1025f640]
mov eax, dword [ebx + 4]
lea edx, [esi + 0xc4]
mov edi, dword [edx + 8]
mov ecx, dword [esi + 8]
mov dword [eax + ecx + 8], edi
movsd xmm0, qword [edx]
movsd qword [eax + ecx], xmm0
mov eax, dword [0x10259d58]
lea edx, [esi + 0xd0]
push edx
call dword [eax + 0x18]
mov ecx, dword [esi + 8]
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x1008f5f0
mov edx, dword [0x10259d58]
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 [0x10259d58]
mov ecx, dword [esi + 8]
lea edx, [esi + 0x40]
push edx
call dword [eax + 0x14]
mov eax, dword [esi + 0x30f8]
mov edi, dword [esi + 8]
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.1009fa70
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 + 4], edi
or eax, 1
mov dword [0x1025f63c], eax
mov eax, dword [0x10259d5c]
mov dword [esi + 0x1c], eax
mov eax, 0x861cb0c6
mov ecx, 0xb148c790
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xa4114c8b
mov ecx, 0x8b1bd5e6
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0xf44ac06a
mov ecx, 0xcabd7d6a
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov ecx, 0xd42f5350
mov eax, 0x33137ba6
mov edx, 0x33137ba6
mov dword [esi + 0x5c], edx
mov dword [esi + 0x58], ecx
mov ecx, 0xf57df285
mov edx, 0xd82686f5
mov dword [esi + 0xc4], edx
mov dword [esi + 0xc0], ecx
mov ecx, 0xcd652de6
mov edx, 0xb536b288
mov dword [esi + 0xcc], edx
mov dword [esi + 0xc8], ecx
mov ecx, 0xbc249f07
mov edx, 0xa5df0903
mov dword [esi + 0xd4], edx
mov dword [esi + 0xd0], ecx
mov ecx, 0xa04a0028
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 + 0xc], ecx
push eax
call fcn.10015240
mov eax, dword [esi + 0x30]
mov dword [esi + 8], eax
cmp dword [esi + 0x34], 0x10
jb 0x1008f77c
mov eax, dword [esi + 0x20]
mov dword [esi + 0xc], eax
cmp dword [esi + 8], 0
je 0x1008fff7
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x14], ecx
cmp eax, 4
jae 0x10090008
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10090052
mov dword [esi + 0xa4], ecx
or eax, 1
mov dword [0x10259ed0], eax
mov eax, dword [0x10259d5c]
mov dword [esi + 0x98], eax
mov eax, 0x861cb0c6
mov ecx, 0xac52c790
mov dword [esi + 0xc4], ecx
mov dword [esi + 0xc0], eax
mov eax, 0xb8074494
mov ecx, 0xd954d3fc
mov dword [esi + 0xcc], ecx
mov dword [esi + 0xc8], eax
mov eax, 0xd950d662
mov ecx, 0xc8e1246e
mov dword [esi + 0xd4], ecx
mov dword [esi + 0xd0], eax
mov eax, 0xd4036977
mov ecx, 0x565716c3
mov dword [esi + 0xdc], ecx
mov dword [esi + 0xd8], eax
mov eax, 0xce7715df
mov ecx, 0x791f5ab5
mov dword [esi + 0xe4], ecx
mov dword [esi + 0xe0], eax
mov eax, 0xd3cc39b3
mov ecx, 0xdfbfe6fc
mov dword [esi + 0xec], ecx
mov dword [esi + 0xe8], eax
mov eax, 0xf57df285
mov ecx, 0xd82686f5
mov dword [esi + 0x44], ecx
mov dword [esi + 0x40], eax
mov eax, 0xcd652de6
mov ecx, 0xb536b288
mov dword [esi + 0x4c], ecx
mov dword [esi + 0x48], eax
mov eax, 0xbc249f07
mov ecx, 0xa5df0903
mov dword [esi + 0x54], ecx
mov dword [esi + 0x50], eax
mov eax, 0xa04a0028
mov ecx, 0x33137ba6
mov dword [esi + 0x5c], ecx
mov dword [esi + 0x58], eax
mov eax, 0xa7197cb9
mov ecx, 0x177033c1
mov dword [esi + 0x64], ecx
mov dword [esi + 0x60], eax
mov eax, 0xb6a857fa
mov ecx, 0xdfbfe684
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.10015240
mov eax, dword [esi + 0x30]
mov dword [esi + 0xc], eax
cmp dword [esi + 0x34], 0x10
jb 0x1008f90b
mov eax, dword [esi + 0x20]
mov dword [esi + 0x1c], eax
cmp dword [esi + 0xc], 0
je 0x1008fffe
mov eax, dword [esi + 0xc]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x18], ecx
cmp eax, 4
jae 0x100900e6
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10090130
call fcn.1009f400
call fcn.100365f0
mov dword [esi + 0x10], edi
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 + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0xcd652de6
mov edi, 0xb536b288
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edx
mov edx, 0xbc249f07
mov edi, 0xa5df0903
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 [0x10259d5c]
mov dword [esi + 0x14], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3128], 4
lea ecx, [esi + 0x70]
mov dword [esi + 4], ecx
lea eax, [esi + 0x20]
push eax
call fcn.10015240
mov eax, dword [esi + 0x80]
mov dword [esi + 8], eax
cmp dword [esi + 0x84], 0x10
jb 0x1008fa15
mov eax, dword [esi + 0x70]
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
je 0x100901c4
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xc], ecx
cmp eax, 4
jae 0x1009020a
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10090254
mov dword [esi + 0x10], edi
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 + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0xcd652de6
mov edi, 0xb536b288
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edx
mov edx, 0xbc249f07
mov edi, 0xa5df0903
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 [0x10259d5c]
mov dword [esi + 0x14], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3128], 6
lea ecx, [esi + 0x70]
mov dword [esi + 4], ecx
lea eax, [esi + 0x20]
push eax
call fcn.10015240
mov eax, dword [esi + 0x80]
mov dword [esi + 8], eax
cmp dword [esi + 0x84], 0x10
jb 0x1008fb15
mov eax, dword [esi + 0x70]
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
je 0x100901ce
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xc], ecx
cmp eax, 4
jae 0x100902db
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10090325
mov dword [esi + 0x10], edi
or eax, 1
mov dword [0x1025f64c], eax
mov eax, dword [0x10259d5c]
mov dword [esi + 0x14], eax
mov eax, 0x900bade8
mov ecx, 0xab44c796
mov dword [esi + 0x74], ecx
mov dword [esi + 0x70], eax
mov eax, 0xaa0c5fa9
mov ecx, 0xb536dce1
mov dword [esi + 0x7c], ecx
mov dword [esi + 0x78], 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
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 + 4], ecx
lea eax, [esi + 0x70]
push eax
call fcn.10015240
mov eax, dword [esi + 0x50]
mov dword [esi + 8], eax
cmp dword [esi + 0x54], 0x10
jb 0x1008fbcd
mov eax, dword [esi + 0x40]
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
je 0x100901d8
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xc], ecx
cmp eax, 4
jae 0x100903ac
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100903f6
mov dword [esi + 0x10], edi
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 + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0xcd652de6
mov edi, 0xb536b288
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edx
mov edx, 0xbc249f07
mov edi, 0xa5df0903
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 [0x10259d5c]
mov dword [esi + 0x14], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3128], 0xa
lea ecx, [esi + 0x70]
mov dword [esi + 4], ecx
lea eax, [esi + 0x20]
push eax
call fcn.10015240
mov eax, dword [esi + 0x80]
mov dword [esi + 8], eax
cmp dword [esi + 0x84], 0x10
jb 0x1008fccd
mov eax, dword [esi + 0x70]
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
je 0x100901e2
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xc], ecx
cmp eax, 4
jae 0x1009047d
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x100904c7
mov dword [esi + 0x10], edi
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 + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0xcd652de6
mov edi, 0xb536b288
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edx
mov edx, 0xbc249f07
mov edi, 0xa5df0903
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 [0x10259d5c]
mov dword [esi + 0x14], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3128], 0xc
lea ecx, [esi + 0x70]
mov dword [esi + 4], ecx
lea eax, [esi + 0x20]
push eax
call fcn.10015240
mov eax, dword [esi + 0x80]
mov dword [esi + 8], eax
cmp dword [esi + 0x84], 0x10
jb 0x1008fdcd
mov eax, dword [esi + 0x70]
mov dword [esi + 4], eax
cmp dword [esi + 8], 0
je 0x100901ec
mov eax, dword [esi + 8]
mov ecx, eax
and ecx, 3
mov dword [esi + 0xc], ecx
cmp eax, 4
jae 0x1009054e
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10090598
mov dword [esi + 0x18], ebx
mov dword [esi + 0x1c], edi
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 + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0xcd652de6
mov edi, 0xb536b288
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edx
mov edx, 0xbc249f07
mov edi, 0xa5df0903
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 [0x10259d5c]
mov dword [esi + 0x14], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3128], 0xe
lea ecx, [esi + 0x70]
mov dword [esi + 0xc], ecx
lea eax, [esi + 0x20]
push eax
call fcn.10015240
mov eax, dword [esi + 0x80]
mov dword [esi + 4], eax
cmp dword [esi + 0x84], 0x10
jb 0x1008fed0
mov eax, dword [esi + 0x70]
mov dword [esi + 0xc], eax
cmp dword [esi + 4], 0
je 0x100901f6
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x1009061f
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x10090669
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 + 0x44], edi
mov dword [esi + 0x40], edx
mov edx, 0xcd652de6
mov edi, 0xb536b288
mov dword [esi + 0x4c], edi
mov dword [esi + 0x48], edx
mov edx, 0xbc249f07
mov edi, 0xa5df0903
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 [0x10259d5c]
mov dword [esi + 0x14], eax
movaps xmmword [esi + 0x30], xmm0
mov dword [esi + 0x3128], 0x11
lea ecx, [esi + 0x70]
mov dword [esi + 0xc], ecx
lea eax, [esi + 0x20]
push eax
call fcn.10015240
mov eax, dword [esi + 0x80]
mov dword [esi + 4], eax
cmp dword [esi + 0x84], 0x10
jb 0x1008ffcd
mov eax, dword [esi + 0x70]
mov dword [esi + 0xc], eax
cmp dword [esi + 4], 0
je 0x10090200
mov eax, dword [esi + 4]
mov ecx, eax
and ecx, 3
mov dword [esi + 0x10], ecx
cmp eax, 4
jae 0x10090701
mov ecx, 0x811c9dc5
xor edx, edx
jmp 0x1009074b
mov ecx, 0x811c9dc5
jmp 0x1009006f
mov ecx, 0x811c9dc5
jmp 0x1009014d
mov edi, dword [esi + 8]
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 0x10090018
cmp dword [esi + 0x14], 0
je 0x1009006f
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 + 0x14], edi
jne 0x1009005d
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 0x100907d9
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x100900b3
cmp dword [ebx + 0x1c], 0x10
jb 0x1009009d
mov eax, dword [ebx + 8]
jmp 0x100900a0
lea eax, [ebx + 8]
push dword [esi + 8]
push eax
push dword [esi + 0xc]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100900c0
cmp ebx, edi
je 0x100907d9
mov ebx, dword [ebx + 4]
jmp 0x1009008a
add ebx, 0x20
lea ecx, [esi + 0x20]
call fcn.10014f60
mov dword [0x1025f638], ebx
mov dword [esi + 0x3128], 0xffffffff
mov edi, dword [esi + 4]
mov ecx, dword [esi + 0x18]
jmp 0x1008e941
mov edi, dword [esi + 0xc]
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 0x100900f6
cmp dword [esi + 0x18], 0
je 0x1009014d
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 0x1009013b
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 0x100907f0
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 0xc]
cmp eax, dword [ebx + 0x18]
jne 0x10090194
cmp dword [ebx + 0x1c], 0x10
jb 0x1009017e
mov eax, dword [ebx + 8]
jmp 0x10090181
lea eax, [ebx + 8]
push dword [esi + 0xc]
push eax
push dword [esi + 0x1c]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100901a1
cmp ebx, edi
je 0x100907f0
mov ebx, dword [ebx + 4]
jmp 0x1009016b
add ebx, 0x20
lea ecx, [esi + 0x20]
call fcn.10014f60
mov dword [0x10259ecc], ebx
mov ecx, dword [esi + 0xa4]
jmp 0x1008e9d4
mov ecx, ebx
call fcn.1009f400
mov ecx, 0x811c9dc5
jmp 0x10090271
mov ecx, 0x811c9dc5
jmp 0x10090342
mov ecx, 0x811c9dc5
jmp 0x10090413
mov ecx, 0x811c9dc5
jmp 0x100904e4
mov ecx, 0x811c9dc5
jmp 0x100905b5
mov ecx, 0x811c9dc5
jmp 0x10090686
mov ecx, 0x811c9dc5
jmp 0x10090768
mov edi, dword [esi + 8]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 4]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x1009021a
cmp dword [esi + 0xc], 0
je 0x10090271
add edx, dword [esi + 4]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0xc], edi
jne 0x1009025f
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 0x10090807
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x100902b5
cmp dword [ebx + 0x1c], 0x10
jb 0x1009029f
mov eax, dword [ebx + 8]
jmp 0x100902a2
lea eax, [ebx + 8]
push dword [esi + 8]
push eax
push dword [esi + 4]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x100902c2
cmp ebx, edi
je 0x10090807
mov ebx, dword [ebx + 4]
jmp 0x1009028c
add ebx, 0x20
lea ecx, [esi + 0x70]
call fcn.10014f60
mov dword [0x1025f690], ebx
mov edi, dword [esi + 0x10]
jmp 0x1008f11f
mov edi, dword [esi + 8]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 4]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100902eb
cmp dword [esi + 0xc], 0
je 0x10090342
add edx, dword [esi + 4]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0xc], edi
jne 0x10090330
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 0x1009081e
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x10090386
cmp dword [ebx + 0x1c], 0x10
jb 0x10090370
mov eax, dword [ebx + 8]
jmp 0x10090373
lea eax, [ebx + 8]
push dword [esi + 8]
push eax
push dword [esi + 4]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x10090393
cmp ebx, edi
je 0x1009081e
mov ebx, dword [ebx + 4]
jmp 0x1009035d
add ebx, 0x20
lea ecx, [esi + 0x70]
call fcn.10014f60
mov dword [0x1025f640], ebx
mov edi, dword [esi + 0x10]
jmp 0x1008f14d
mov edi, dword [esi + 8]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 4]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x100903bc
cmp dword [esi + 0xc], 0
je 0x10090413
add edx, dword [esi + 4]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0xc], edi
jne 0x10090401
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 0x10090835
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x10090457
cmp dword [ebx + 0x1c], 0x10
jb 0x10090441
mov eax, dword [ebx + 8]
jmp 0x10090444
lea eax, [ebx + 8]
push dword [esi + 8]
push eax
push dword [esi + 4]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x10090464
cmp ebx, edi
je 0x10090835
mov ebx, dword [ebx + 4]
jmp 0x1009042e
add ebx, 0x20
lea ecx, [esi + 0x40]
call fcn.10014f60
mov dword [0x1025f648], ebx
mov edi, dword [esi + 0x10]
jmp 0x1008f179
mov edi, dword [esi + 8]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 4]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x1009048d
cmp dword [esi + 0xc], 0
je 0x100904e4
add edx, dword [esi + 4]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0xc], edi
jne 0x100904d2
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 0x1009084c
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x10090528
cmp dword [ebx + 0x1c], 0x10
jb 0x10090512
mov eax, dword [ebx + 8]
jmp 0x10090515
lea eax, [ebx + 8]
push dword [esi + 8]
push eax
push dword [esi + 4]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x10090535
cmp ebx, edi
je 0x1009084c
mov ebx, dword [ebx + 4]
jmp 0x100904ff
add ebx, 0x20
lea ecx, [esi + 0x70]
call fcn.10014f60
mov dword [0x1025f650], ebx
mov edi, dword [esi + 0x10]
jmp 0x1008f1a5
mov edi, dword [esi + 8]
and edi, 0xfffffffc
mov ecx, 0x811c9dc5
xor edx, edx
mov eax, dword [esi + 4]
movzx ebx, byte [eax + edx]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 1]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 2]
xor ebx, ecx
imul ecx, ebx, 0x1000193
movzx ebx, byte [eax + edx + 3]
xor ebx, ecx
imul ecx, ebx, 0x1000193
add edx, 4
cmp edi, edx
jne 0x1009055e
cmp dword [esi + 0xc], 0
je 0x100905b5
add edx, dword [esi + 4]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0xc], edi
jne 0x100905a3
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 0x10090863
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
cmp eax, dword [ebx + 0x18]
jne 0x100905f9
cmp dword [ebx + 0x1c], 0x10
jb 0x100905e3
mov eax, dword [ebx + 8]
jmp 0x100905e6
lea eax, [ebx + 8]
push dword [esi + 8]
push eax
push dword [esi + 4]
call sub.VCRUNTIME140.dll_memcmp
add esp, 0xc
test eax, eax
je 0x10090606
cmp ebx, edi
je 0x10090863
mov ebx, dword [ebx + 4]
jmp 0x100905d0
add ebx, 0x20
lea ecx, [esi + 0x70]
call fcn.10014f60
mov dword [0x1025f658], ebx
mov edi, dword [esi + 0x10]
jmp 0x1008f1d1
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 0x1009062f
cmp dword [esi + 0x10], 0
je 0x10090686
add edx, dword [esi + 0xc]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x10], edi
jne 0x10090674
mov edx, dword [esi + 0x14]
and ecx, dword [edx + 0x18]
mov eax, dword [edx + 0xc]
mov edi, dword [eax + ecx*8 + 4]
cmp edi, dword [edx + 4]
je 0x1009087a
mov ebx, edi
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x18]
jne 0x100906cc
cmp dword [ebx + 0x1c], 0x10
jb 0x100906b6
mov eax, dword [ebx + 8]
jmp 0x100906b9
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 0x100906d9
cmp ebx, edi
je 0x1009087a
mov ebx, dword [ebx + 4]
jmp 0x100906a3
add ebx, 0x20
lea ecx, [esi + 0x70]
call fcn.10014f60
mov ecx, ebx
mov dword [0x1025f640], ebx
mov dword [esi + 0x3128], 0xffffffff
mov edi, dword [esi + 0x1c]
mov ebx, dword [esi + 0x18]
jmp 0x1008f26a
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 0x10090711
cmp dword [esi + 0x10], 0
je 0x10090768
add edx, dword [esi + 0xc]
xor edi, edi
movzx ebx, byte [edx + edi]
xor ebx, ecx
imul ecx, ebx, 0x1000193
inc edi
cmp dword [esi + 0x10], edi
jne 0x10090756
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 0x10090891
add ecx, ecx
mov edi, dword [eax + ecx*4]
mov eax, dword [esi + 4]
cmp eax, dword [ebx + 0x18]
jne 0x100907ac
cmp dword [ebx + 0x1c], 0x10
jb 0x10090796
mov eax, dword [ebx + 8]
jmp 0x10090799
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 0x100907b9
cmp ebx, edi
je 0x10090891
mov ebx, dword [ebx + 4]
jmp 0x10090783
add ebx, 0x20
lea ecx, [esi + 0x70]
call fcn.10014f60
mov dword [0x1025f640], ebx
mov dword [esi + 0x3128], 0x10
jmp 0x1008f5a0
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 + eax]
push ebp
sub esp, 0x18
lea esi, [ebp - 0x312c]
mov ebp, dword [esi + 0x3118]
lea ecx, [esi + 0x20]
call fcn.10014f60
add esp, 0x18
pop ebp
ret