Function at 0x101eaa60
Capabilities:
Check for time delay via queryperformancecounter
Inspect section memory permissions
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x8c8
mov eax, dword [0x11ad127c]
xor eax, esp
mov dword [esp + 0x8c4], eax
movups xmm0, xmmword [edx]
mov eax, dword [ebp + 8]
movups xmm1, xmmword [edx + 0x10]
mov dword [esp + 0x20], eax
mov eax, dword [edx + 0x38]
movups xmmword [esp + 0xc8], xmm0
push esi
movups xmm0, xmmword [edx + 0x20]
mov esi, ecx
mov ecx, dword [ebp + 0xc]
movaps xmmword [esp + 0xdc], xmm1
psrldq xmm1, 4
mov dword [esp + 0x11c], eax
mov dword [esp + 0x104], eax
movd eax, xmm1
movups xmmword [esp + 0xec], xmm0
push edi
movq xmm0, qword [edx + 0x30]
mov dword [esp + 0x18], esi
mov dword [esp + 0x154], ecx
mov byte [esp + 0x67], 0
mov byte [esp + 0x15], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x60], 0
movq qword [esp + 0x100], xmm0
mov dword [ecx], 0
mov dword [esp + 0x4c], eax
mov dword [esp + 0xe4], eax
test eax, eax
jne 0x101eab59
call fcn.1027e6c0
push eax
lea eax, [esp + 0x8a4]
mov dword [esp + 0x8b4], 2
xorps xmm0, xmm0
mov ecx, 0x80070057
push eax
movaps xmmword [esp + 0x8a8], xmm0
call fcn.1027e560
mov eax, 0x80070057
pop edi
pop esi
mov ecx, dword [esp + 0x8c4]
xor ecx, esp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 8
mov edx, dword [esp + 0x100]
mov eax, dword [esi + 0xf7c]
mov dword [esp + 0x98], eax
mov dword [esp + 0x24], edx
test edx, 0x800
je 0x101eaba7
test edx, 0x8000
jne 0x101eab8b
test byte [esp + 0x108], 8
je 0x101eaba7
mov eax, edx
and eax, 0x10001
cmp eax, 0x10001
jne 0x101eaba7
cmp dword [esp + 0xd8], 0
jne 0x101eaba7
mov cl, 1
jmp 0x101eaba9
xor cl, cl
mov eax, dword [esi]
mov byte [esp + 0x47], cl
mov eax, dword [eax + 0x162c]
shr eax, 7
test al, 1
je 0x101eac6e
test cl, cl
je 0x101eac6e
mov eax, dword fs:[0x2c]
mov ecx, dword [0x11d0c5b8]
mov ecx, dword [eax + ecx*4]
mov eax, dword [ecx + 0x10]
or dword [eax + 0x162c], 0x200000
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0x2c], ecx
mov eax, dword [ecx + 0xd384]
mov edi, dword [ecx + 0xfd48]
mov dword [esp + 0x58], eax
xor eax, eax
test edi, edi
je 0x101eac5c
add ecx, 0xf968
mov edx, ecx
nop
cmp dword [edx], 1
je 0x101eac1f
inc eax
add edx, 0x20
cmp eax, edi
jb 0x101eac10
jmp 0x101eac5c
cmp eax, 0x1f
jne 0x101eac35
xor eax, eax
cmp dword [ecx], 1
je 0x101eac3f
inc eax
add ecx, 0x20
cmp eax, edi
jb 0x101eac26
jmp 0x101eac5c
cmp eax, 0xffffffff
je 0x101eac5c
cmp eax, 0x1f
jae 0x101eac5c
mov ecx, dword [esp + 0x2c]
shl eax, 5
cmp dword [eax + ecx + 0xf96c], 0
setne al
test al, al
je 0x101eac5c
test byte [esp + 0x58], 0x10
je 0x101eac6a
mov ecx, dword [esp + 0x98]
xor edx, edx
call fcn.100fd2d0
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0xd0]
mov ecx, edx
mov dword [esp + 0xa0], eax
test dl, 2
je 0x101eacb7
add eax, 0xffffffba
cmp eax, 0xf
ja case.0x101eac92.71
movzx eax, byte [eax + 0x101ee870]
jmp dword [eax*4 + 0x101ee868]
xor eax, eax
jmp 0x101eaca2
mov eax, 0x80
and edx, 0xffffff7f
or edx, eax
mov dword [esp + 0x24], edx
mov ecx, edx
mov dword [esp + 0x100], edx
mov eax, dword [esi + 0xf7c]
mov edx, dword [eax + 0x1838]
cmp edx, 0xa11a
jne 0x101eacde
mov edi, ecx
and edi, 0xffffff7f
mov dword [esp + 0x24], edi
mov dword [esp + 0x100], edi
mov eax, ecx
and eax, 0xffffff7f
cmp edx, 0xa11a
cmovne eax, ecx
mov ecx, dword [esi + 0xf84]
cmp ecx, 0x900
jae 0x101ead0f
mov edx, eax
and edx, 0xffffff7f
mov dword [esp + 0x24], edx
mov dword [esp + 0x100], edx
mov edx, eax
and edx, 0xffffff7f
cmp ecx, 0x900
mov ecx, dword fs:[0x2c]
cmovae edx, eax
mov eax, dword [0x11d0c5b8]
mov eax, dword [ecx + eax*4]
mov dword [esp + 0x20], eax
mov eax, dword [eax + 0x10]
mov al, byte [eax + 0xd2a0]
and al, 0x10
mov byte [esp + 0x17], al
jne 0x101ead59
mov eax, edx
and eax, 0xffffff7f
mov dword [esp + 0x24], eax
mov dword [esp + 0x100], eax
xor ecx, ecx
mov eax, edx
and eax, 0xffffff7f
mov dword [esp + 0x1c], ecx
cmp byte [esp + 0x17], 0
mov ecx, dword [esp + 0xd4]
cmovne eax, edx
mov dword [esp + 0x114], ecx
mov edi, eax
and edi, 0x800
je 0x101ead98
cmp ecx, 1
je 0x101ead98
mov edx, dword [esp + 0xfc]
mov dword [esp + 0x40], edx
jmp 0x101eada0
mov dword [esp + 0x40], 0
test al, 1
je 0x101eadae
mov byte [esp + 0x7c], 1
cmp ecx, 1
jne 0x101eadb3
mov byte [esp + 0x7c], 0
test al, 2
je 0x101eadc1
mov byte [esp + 0x16], 1
cmp ecx, 1
jne 0x101eadc6
mov byte [esp + 0x16], 0
mov edx, eax
mov dword [esp + 0x94], 1
and edx, 0x70000
setne cl
cmp dword [esp + 0xd4], 5
mov dword [esp + 0x2c], ecx
jne 0x101eae12
test eax, 0x4f0000
jne 0x101eae12
mov ecx, dword [esp + 0xa0]
call fcn.1002e9e0
mov ecx, dword [esp + 0x2c]
test al, al
movzx ecx, cl
cmove ecx, dword [esp + 0x94]
mov dword [esp + 0x2c], ecx
cmp byte [esp + 0x7c], 0
jne 0x101eae32
cmp byte [esp + 0x16], 0
jne 0x101eae32
test cl, cl
jne 0x101eae32
mov eax, dword [esp + 0x24]
test eax, 0x189f34
sete cl
jmp 0x101eae38
mov eax, dword [esp + 0x24]
xor cl, cl
shr eax, 0xe
and al, 1
mov dword [esp + 0xbc], 0
or cl, al
mov dword [esp + 0x118], 0
mov byte [esp + 0x17], cl
mov ecx, dword [esi + 0x1040]
test ecx, ecx
je 0x101eb3e7
test edi, edi
je 0x101eb3e7
mov edi, dword [ecx + 0x18]
mov dword [esp + 0x58], edi
test edi, edi
je 0x101eaea3
mov eax, dword [ecx + 0x10]
add eax, eax
sar eax, 0x1c
cmp eax, 2
jne 0x101eaebd
test dword [esp + 0x24], 0x80000
je 0x101eaea3
xor eax, eax
mov eax, ecx
test eax, eax
je 0x101eaea3
test byte [eax + 0x54], 8
je 0x101eb3e7
mov ecx, dword [esp + 0xe0]
mov dword [esi + 0x1040], 0
mov dword [esp + 0x30], ecx
jmp 0x101eb3f2
cmp eax, 5
jne 0x101eaef8
test dword [esp + 0x24], 0x100000
je 0x101eaea3
xor eax, eax
mov eax, ecx
test eax, eax
je 0x101eaea3
test byte [eax + 0x1d], 4
je 0x101eb3e7
mov ecx, dword [esp + 0xe0]
mov dword [esi + 0x1040], 0
mov dword [esp + 0x30], ecx
jmp 0x101eb3f2
test eax, eax
jne 0x101eb01e
mov eax, dword [ecx + 0x294]
shr eax, 0xa
not al
test al, 1
je 0x101eaea3
test edx, edx
je 0x101eaea3
xor edx, edx
mov edx, ecx
mov ecx, dword [esp + 0xe0]
mov dword [esp + 0x30], ecx
test edx, edx
je 0x101eb00f
test byte [edx + 0x95], 0x10
jne 0x101eb00f
mov eax, dword [edx + 0x30]
cmp eax, dword [ecx]
jne 0x101eb00f
mov eax, dword [edx + 0x34]
cmp eax, dword [ecx + 4]
jne 0x101eb00f
mov eax, dword [edx + 0x38]
cmp eax, 1
jne 0x101eaf5c
cmp dword [ecx + 8], 0
je 0x101eaf65
cmp eax, dword [ecx + 8]
jne 0x101eb00f
lea esi, [edx + 0x24]
mov ecx, 0x63
lea edi, [esp + 0x178]
rep movsd dword es:[edi], dword [esi]
movsx ecx, byte [esp + 0x1d0]
call fcn.101eeb00
mov ecx, dword [esp + 0x1d4]
mov edx, eax
movzx eax, byte [esp + 0x1e5]
mov edi, dword [esp + 0x24]
and eax, 0xfffffc80
shr ecx, 0xa
and edi, 0xfff8ffee
mov esi, dword [esp + 0x18]
movzx ecx, cl
mov dword [esp + 0xe8], ecx
movzx ecx, byte [esp + 0x300]
and ecx, 0xffffffc0
mov dword [esp + 0xa0], edx
shl ecx, 2
or ecx, eax
mov dword [esp + 0xd0], edx
movzx eax, byte [esp + 0x301]
shl ecx, 5
and eax, 1
or ecx, eax
mov dword [esp + 0xd4], 2
movzx eax, byte [esp + 0x1e6]
shl ecx, 4
and eax, 1
or ecx, eax
or edi, ecx
mov dword [esp + 0x24], edi
mov dword [esp + 0x100], edi
jmp 0x101eb3f6
mov dword [esi + 0x1040], 0
jmp 0x101eb3f2
cmp eax, 1
jne 0x101eaea3
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
mov ecx, dword [esi + 0x1040]
mov dword [esp + 0x48], eax
call fcn.1002c620
mov ecx, dword [esp + 0xe0]
mov edx, eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x30], ecx
test eax, eax
je 0x101eb323
test byte [eax + 0x95], 0x10
jne 0x101eb323
mov esi, dword [esp + 0x30]
mov ecx, dword [eax + 0x294]
cmp ecx, dword [esi]
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
jne 0x101eb323
mov eax, dword [eax + 0x298]
cmp eax, dword [ecx + 4]
jne 0x101eb323
mov eax, dword [esp + 0x48]
mov ch, byte [esp + 0x7c]
test byte [eax + 0x92], 1
je 0x101eb0a1
test ch, ch
jne 0x101eb0cf
test byte [eax + 0x91], 0x20
mov cl, byte [esp + 0x16]
je 0x101eb0b2
test cl, cl
jne 0x101eb0cf
test byte [eax + 0x1ae], 1
je 0x101eb31f
test ch, ch
jne 0x101eb31f
test cl, cl
jne 0x101eb31f
mov edx, dword [edi + 0x18]
mov edi, 0x18
shr edx, 4
mov dword [esp + 0x4c], edx
test edx, edx
je 0x101eb116
xor ecx, ecx
mov eax, edx
mul edi
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10450898
add esp, 4
mov dword [esp + 0xbc], eax
test eax, eax
jne 0x101eb112
mov dword [esi + 0x1040], 0
jmp 0x101edfa7
mov edx, dword [esp + 0x4c]
mov eax, 0x20
xor ecx, ecx
nop dword [eax]
shr eax, 1
inc ecx
cmp eax, 1
ja 0x101eb120
mov eax, 7
cmp ecx, eax
cmova ecx, eax
mov eax, edx
or eax, 0x60000000
mov dword [esp + 0x118], eax
and eax, 0x1fffffff
cmp edx, eax
jbe 0x101eb1c8
mov esi, dword [esp + 0x94]
lea edi, [edx - 1]
and ecx, 7
xor edx, edx
shl esi, cl
xor ecx, ecx
add edi, esi
mov eax, edi
div esi
sub edi, edx
mov edx, 0x18
xor edi, dword [esp + 0x118]
and edi, 0x1fffffff
xor edi, dword [esp + 0x118]
mov eax, edi
mov dword [esp + 0x118], edi
and eax, 0x1fffffff
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.10450898
mov esi, eax
add esp, 4
test esi, esi
je 0x101eb1c0
push dword [esp + 0xbc]
call fcn.10450877
add esp, 4
mov dword [esp + 0xbc], esi
mov dword [esp + 0x118], edi
mov edx, dword [esp + 0x4c]
mov esi, dword [esp + 0x18]
lea eax, [edx + edx*2]
shl eax, 3
push eax
push 0
push dword [esp + 0xc4]
call fcn.10425c00
xor edi, edi
add esp, 0xc
cmp dword [esp + 0x4c], edi
jbe 0x101eb24f
mov eax, dword [esp + 0xbc]
add eax, 8
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x58]
mov eax, dword [ecx + 0x18]
shr eax, 4
cmp edi, eax
jae 0x101eb103
mov eax, dword [ecx + 0x14]
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x101eb103
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
test eax, eax
je 0x101eb103
mov edx, dword [esp + 0x74]
inc edi
mov ecx, dword [eax + 0x294]
mov dword [edx - 8], ecx
mov eax, dword [eax + 0x298]
mov dword [edx - 4], eax
mov dword [edx], 1
add edx, 0x18
mov dword [esp + 0x74], edx
cmp edi, dword [esp + 0x4c]
jb 0x101eb1f6
mov esi, dword [esp + 0x48]
lea edi, [esp + 0x178]
add esi, 0x24
mov ecx, 0x63
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x1cc]
call fcn.101e93c0
mov esi, eax
mov dword [esp + 0xa0], esi
test esi, esi
je 0x101eb286
mov dword [esp + 0xd0], esi
jmp 0x101eb2a1
movsx ecx, byte [esp + 0x1d0]
call fcn.101eeb00
mov dword [esp + 0xa0], eax
mov dword [esp + 0xd0], eax
movzx edx, byte [esp + 0x1eb]
xor ecx, ecx
movzx eax, byte [esp + 0x301]
and edx, 1
mov edi, dword [esp + 0x24]
and eax, 0x10
shl edx, 3
mov esi, 0x800000
or edx, eax
mov dword [esp + 0xd4], 2
mov eax, dword [esp + 0x240]
and eax, 9
shl edx, 0x12
cmp al, 9
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xe4], eax
cmove ecx, esi
mov esi, dword [esp + 0x18]
or edx, ecx
and edi, 0xff1fffff
mov ecx, dword [esp + 0xbc]
or edi, edx
mov dword [esp + 0x24], edi
mov dword [esp + 0x100], edi
mov dword [esp + 0x30], ecx
mov dword [esp + 0xe0], ecx
jmp 0x101eb3f6
mov ecx, dword [esp + 0x30]
test edx, edx
je 0x101eb00f
test byte [edx + 0x95], 0x10
jne 0x101eb00f
mov eax, dword [edx + 0x30]
cmp eax, dword [ecx]
jne 0x101eb00f
mov eax, dword [edx + 0x34]
cmp eax, dword [ecx + 4]
jne 0x101eb00f
test byte [edx + 0x92], 1
mov cl, byte [esp + 0x7c]
je 0x101eb360
test cl, cl
jne 0x101eb38e
test byte [edx + 0x91], 0x20
mov al, byte [esp + 0x16]
je 0x101eb371
test al, al
jne 0x101eb38e
test byte [edx + 0x1ae], 1
je 0x101eb00f
test cl, cl
jne 0x101eb00f
test al, al
jne 0x101eb00f
lea esi, [edx + 0x24]
mov ecx, 0x63
lea edi, [esp + 0x178]
rep movsd dword es:[edi], dword [esi]
movsx ecx, byte [esp + 0x1d0]
call fcn.101eeb00
mov esi, dword [esp + 0x18]
mov dword [esp + 0xa0], eax
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0x278]
mov dword [esp + 0xd8], eax
mov eax, dword [esp + 0x27c]
mov dword [esp + 0xd4], 2
mov dword [esp + 0xdc], eax
jmp 0x101eb3f2
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x30], eax
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
xor cl, cl
mov byte [esp + 0x11c], cl
mov byte [esp + 0x54], cl
mov eax, dword [eax + 0x10]
cmp dword [eax + 0x2d0], 0x1100
jb 0x101eb462
test edi, 0x40000000
je 0x101eb42f
cmp dword [esp + 0x114], 1
je 0x101eb42f
mov cl, 1
jmp 0x101eb431
xor cl, cl
mov byte [esp + 0x11c], cl
test edi, 0x800
je 0x101eb45d
test cl, cl
je 0x101eb45d
test edi, edi
js 0x101eb45d
mov ecx, dword [esi + 0x11c0]
mov byte [esp + 0x54], 1
mov eax, dword [ecx]
call dword [eax + 0xcc]
jmp 0x101eb462
mov byte [esp + 0x54], 0
test edi, 0x78003
je 0x101eb50a
cmp dword [esp + 0x114], 1
je 0x101eb50a
mov eax, dword [esi]
xor edi, edi
mov ecx, dword [eax + 0x1564]
mov eax, dword [eax + 0x1568]
mov dword [esp + 0x6c], ecx
mov dword [esp + 0xc0], eax
cmp dword [esp + 0x4c], edi
jbe 0x101eb50a
mov ecx, dword [esp + 0x30]
add ecx, 8
nop dword [eax]
nop dword [eax + eax]
cmp dword [esp + 0x104], 2
mov eax, dword [ecx - 8]
mov edx, dword [ecx - 4]
je 0x101eb4ca
cmp dword [esp + 0x104], 4
jne 0x101eb4cf
mov eax, edx
mov edx, dword [ecx - 8]
cmp eax, dword [esp + 0x6c]
ja 0x101edfa7
cmp edx, dword [esp + 0xc0]
ja 0x101edfa7
test dword [esp + 0x24], 0x40000
je 0x101eb500
mov edx, dword [esi]
mov eax, dword [ecx]
cmp eax, dword [edx + 0x1574]
ja 0x101edfa7
inc edi
add ecx, 0x18
cmp edi, dword [esp + 0x4c]
jb 0x101eb4b0
mov eax, dword [esi]
mov edi, dword [esp + 0xdc]
push edi
push dword [esp + 0xdc]
mov ecx, dword [eax + 0x7a68]
mov eax, dword [ecx]
mov eax, dword [eax + 0xe4]
call eax
cmp dword [esp + 0xd8], 0
mov dword [esp + 0x84], eax
jne 0x101eb549
mov byte [esp + 0x110], 1
cmp edi, 0xffffffff
je 0x101eb551
mov byte [esp + 0x110], 0
test eax, eax
mov eax, dword [esp + 0x24]
je 0x101eb5a1
test eax, 0x800
je 0x101eb5a1
cmp dword [esi + 0x1040], 0
jne 0x101eb5a1
call fcn.1027e6c0
push eax
lea eax, [esp + 0x8a4]
mov dword [esp + 0x8b4], 0
xorps xmm0, xmm0
mov ecx, 0x8876086a
push eax
movups xmmword [esp + 0x8a8], xmm0
call fcn.1027e560
mov edi, 0x8876086a
jmp 0x101ee82f
mov edi, eax
shr edi, 0xf
and edi, 1
je 0x101eb607
cmp byte [esp + 0x7c], 0
je 0x101eb607
mov eax, dword [esp + 0x98]
push esi
or byte [eax + 0xb38], 1
mov dword [eax + 0xdc8], 0
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x10]
mov eax, dword [ecx + 0x7d80]
add ecx, 0x7d80
call dword [eax + 4]
mov ecx, dword [esp + 0x98]
add ecx, 0xe00
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 0x5e80]
lea ecx, [esi + 0x5e80]
push esi
call dword [eax + 4]
mov eax, dword [esp + 0xf0]
xorps xmm0, xmm0
movaps xmmword [esp + 0x160], xmm0
mov dword [esp + 0x70], 0
mov dword [esp + 0x160], eax
test edi, edi
je 0x101eb63e
lea ecx, [esp + 0x160]
call fcn.101ea6d0
mov ecx, dword [esp + 0x20]
jmp 0x101eb658
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x10]
test dword [eax + 0x162c], 0x10000
je 0x101ed069
cmp byte [esp + 0x7c], 0
je 0x101eb743
mov eax, dword [esp + 0xf0]
cmp eax, 0xffffffff
je 0x101eb691
mov edx, dword [esp + 0x94]
mov ecx, eax
mov eax, dword [esp + 0x20]
shl edx, cl
mov eax, dword [eax + 0x10]
test dword [eax + 0x6908], edx
setne byte [esp + 0x74]
jmp 0x101eb696
mov byte [esp + 0x74], 0
xor eax, eax
mov ecx, edi
cmp byte [esp + 0x47], al
cmovne ecx, eax
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0x10]
mov eax, dword [edx + 0x162c]
shr eax, 7
test al, 1
je 0x101eb71f
mov eax, dword [edx + 0x7da4]
mov dword [esp + 0x48], eax
mov eax, dword [edx + 0xf7d8]
mov dword [esp + 0x58], eax
test eax, eax
je 0x101eb6f4
push 0
push dword [esp + 0x78]
mov al, cl
mov ecx, dword [esp + 0x60]
push eax
mov dword [esp + 0x78], eax
call fcn.101f6b00
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x6c]
mov edx, dword [eax + 0x10]
test cl, cl
jne 0x101eb710
mov eax, dword [edx + 0x162c]
shr eax, 0xf
test al, 1
je 0x101eb710
mov ecx, dword [esp + 0x48]
mov edx, 1
jmp 0x101eb71a
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + 0x15d8]
call fcn.100fd2d0
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x10]
and dword [eax + 0x162c], 0xfffeffff
mov eax, dword [ecx + 0x10]
or dword [eax + 0x162c], 0x40000
mov eax, dword [esp + 0x24]
test edi, edi
je 0x101ed06d
test eax, 0x200000
jne 0x101ed06d
mov eax, dword [esi]
mov eax, dword [eax + 0x144]
shr eax, 6
mov cl, al
and cl, 1
mov byte [esp + 0x14], cl
test al, 1
jne 0x101eb8f2
mov eax, dword [esi + 0x1410]
test eax, eax
je 0x101eb78d
cmp dword [eax + 0x24d0], 0
jne 0x101eb8f2
mov edi, dword [esp + 0x20]
mov eax, dword [edi + 0x10]
mov edx, dword [eax + 0xd3a4]
test dl, 4
jne 0x101eb8ee
test dl, 1
jne 0x101eb7db
test dl, 2
jne 0x101eb8ee
cmp dword [eax + 0xd39c], 0
je 0x101eb8ee
cmp dword [eax + 0xd3a8], 0
jne 0x101eb8ee
cmp byte [eax + 0xd3e0], 0
je 0x101eb8ee
mov eax, dword [eax + 0x190]
shr eax, 0xe
test al, 1
jne 0x101eb8ee
push 0xa0
lea eax, [esp + 0x804]
push 0
push eax
call fcn.10425c00
xor ecx, ecx
mov dword [esp + 0x80c], 0x4e564441
add esp, 0xc
mov dword [esp + 0x804], 0x10002
mov dword [esp + 0x80c], 0x4e564458
mov dword [esp + 0x810], 0x1000107
mov dword [esp + 0x820], 0
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x138], ecx
cmp byte [edi + 8], cl
jne 0x101eb85e
call fcn.10450c0b
mov ecx, dword [esp + 0x12c]
mov eax, dword [edi + 0x10]
and ecx, 0xfffffffe
cmp byte [edi + 8], 0
mov eax, dword [eax + 0xbe2c]
mov eax, dword [eax + 0x11cc]
mov dword [esp + 0x128], eax
lea eax, [esp + 0x800]
mov dword [esp + 0x130], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x12c], ecx
mov dword [esp + 0x134], 0xa0
mov dword [esp + 0x808], 0xa0
mov dword [esp + 0x830], eax
jne 0x101eb8c1
call fcn.10450c0b
mov eax, dword [edi + 0x10]
lea ecx, [esp + 0x128]
push ecx
mov ecx, dword [eax + 0xbe2c]
call fcn.101d20e0
mov cl, byte [esp + 0x14]
test eax, eax
jne 0x101eb8ee
cmp dword [esp + 0x834], eax
setne al
jmp 0x101eb8f0
xor al, al
or cl, al
mov eax, dword [esi + 0xf7c]
mov eax, dword [eax + 0xb3c]
test eax, eax
je 0x101eb91f
cmp dword [eax + 0xe9c], 0x4b0
jbe 0x101eb91b
cmp dword [eax + 0xec], 1
jne 0x101eb91b
mov al, 1
jmp 0x101eb91d
xor al, al
or cl, al
test cl, cl
je 0x101eb938
mov dword [esp + 0xc0], 0
mov dword [esp + 0x2c], 0
jmp 0x101eb951
mov eax, dword [esp + 0x168]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x164]
mov dword [esp + 0x2c], eax
push dword [esp + 0x54]
mov edx, dword [esp + 0x50]
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x44]
push eax
call fcn.101c0b40
mov edi, eax
test edi, edi
js 0x101ed1c8
lea eax, [esp + 0x74]
mov ecx, esi
push eax
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x50]
push eax
lea edx, [esp + 0xdc]
call fcn.101e9530
mov dword [esp + 0x50], eax
test eax, eax
jns 0x101eb9da
mov ecx, dword [esp + 0x1c]
call fcn.101c0c00
call fcn.1027e6c0
push eax
lea eax, [esp + 0x8a4]
mov dword [esp + 0x8b4], 0
xorps xmm0, xmm0
mov ecx, 0x88760818
push eax
movups xmmword [esp + 0x8a8], xmm0
call fcn.1027e560
mov edi, 0x88760818
jmp 0x101ee82f
cmp dword [esp + 0x48], 0x42
jne 0x101eba22
mov ecx, dword [esp + 0x1c]
call fcn.101c0c00
call fcn.1027e6c0
push eax
lea eax, [esp + 0x8a4]
mov dword [esp + 0x8b4], 0
xorps xmm0, xmm0
mov ecx, 0x80004005
push eax
movups xmmword [esp + 0x8a8], xmm0
call fcn.1027e560
mov edi, 0x80004005
jmp 0x101ee82f
mov eax, dword [esi + 0x13c8]
mov dword [esp + 0x120], eax
mov eax, dword [esi + 0x1410]
push dword [eax + 0xd457]
push dword [eax + 0xd453]
call fcn.101ea840
cmp dword [esi + 0x1044], 0x4002
mov edx, eax
jb 0x101eba8f
mov eax, dword [esp + 0x98]
cmp dword [eax + 0x1838], 0x57ad
mov eax, dword [esp + 0xf0]
jne 0x101eba72
test eax, eax
je 0x101eba76
cmp edx, eax
jne 0x101eba8f
mov ecx, dword [esi + 0x11c0]
push edx
mov byte [esp + 0x93], 1
mov eax, dword [ecx]
call dword [eax + 0x17c]
jmp 0x101eba97
mov byte [esp + 0x8f], 0
xor eax, eax
mov dword [esp + 0xcc], eax
cmp dword [esp + 0x4c], eax
jbe 0x101eceea
nop word [eax + eax]
cmp byte [esp + 0x110], 0
lea eax, [eax + eax*2]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x90], 0
lea edi, [ecx + eax*8]
mov dword [esp + 0x70], edi
jne 0x101ebb0d
push ecx
mov ecx, dword [esp + 0x88]
lea eax, [esp + 0x94]
push eax
push dword [esp + 0x84]
lea eax, [esp + 0xdc]
mov edx, esi
push dword [esp + 0x54]
push dword [esp + 0x84]
push edi
push eax
call fcn.101ea350
test al, al
je 0x101ed108
cmp dword [edi], 0
je 0x101ed060
cmp dword [edi + 4], 0
je 0x101ed060
mov eax, dword [esp + 0x24]
shr eax, 0x10
mov dword [esp + 0x88], eax
and al, 1
cmp byte [esp + 0x47], 0
mov byte [esp + 0x17], al
jne 0x101ebc10
test al, al
je 0x101ebc10
push 0x10
push 0x2c8
call fcn.10434a32
mov esi, dword [esp + 0x24]
mov edi, eax
add esp, 8
mov dword [esp + 0x40], edi
test edi, edi
je 0x101ecc28
push 0
push esi
mov ecx, edi
call fcn.100250c0
and byte [edi + 0x1bd], 0xbf
xor eax, eax
and dword [edi + 0x294], 0xfffff800
and byte [edi + 0x2aa], 0xfe
mov dword [edi + 0x284], eax
mov dword [edi + 0x28c], eax
mov dword [edi + 0x2a0], eax
mov dword [edi + 0x2a4], eax
mov dword [edi + 0x298], eax
mov dword [edi + 0x210], eax
mov eax, dword [esp + 0x94]
mov dword [edi + 0x290], 0xffffffff
mov dword [edi], 0x11228fd0
mov word [edi + 0x2a8], ax
mov dword [edi + 0x2b4], 0
mov dword [edi + 0x2bc], 0xffffffff
mov dword [edi + 0x2b8], 0x80000000
mov dword [edi + 0x2ac], 0
mov dword [edi + 0x2b0], 0
mov dword [edi + 0x2c0], 0
mov dword [esp + 0x54], edi
jmp 0x101ebc47
push 0x10
push 0x284
call fcn.10434a32
mov esi, dword [esp + 0x24]
add esp, 8
test eax, eax
je 0x101ecc28
push 1
push esi
mov ecx, eax
call fcn.100250c0
mov edi, eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x54], edi
test edi, edi
je 0x101ecc28
mov eax, dword [esp + 0x18]
push 0x18c
push 0
inc dword [eax + 0x13c8]
lea eax, [esp + 0x180]
push eax
call fcn.10425c00
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x184]
add esp, 0xc
mov eax, dword [eax + 0x10]
push 0xa0000000
mov eax, dword [eax + 0x140]
and eax, 0x100
neg eax
sbb eax, eax
neg eax
inc eax
push eax
mov eax, dword [esp + 0x78]
push dword [eax + 4]
push dword [eax]
push 0
call fcn.10025350
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x1d8]
mov eax, dword [ecx + 8]
cmp eax, 1
mov ecx, dword [esp + 0x94]
cmova ecx, eax
mov eax, dword [esp + 0x74]
shl eax, 8
xor eax, edx
mov dword [esp + 0x18c], ecx
mov ecx, dword [esp + 0x1d0]
and eax, 0xff00
xor edx, eax
mov eax, ecx
xor eax, dword [esp + 0x48]
movzx eax, al
xor ecx, eax
mov dword [esp + 0x1d8], edx
mov eax, dword [esp + 0x24]
shr eax, 0xb
mov dword [esp + 0x78], eax
and eax, 1
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x58], eax
je 0x101ebd13
cmp byte [esp + 0x17], 0
mov byte [esp + 0x14], 0x20
je 0x101ebd18
mov byte [esp + 0x14], 0
mov eax, dword [esp + 0x104]
mov ecx, dword [esp + 0x1d4]
dec eax
and eax, 3
and ecx, 0xfffffcff
mov dword [esp + 0x6c], eax
shl eax, 8
or ecx, eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x5c], ecx
mov ecx, eax
shr eax, 0x1b
and al, 1
shr ecx, 7
and cl, 1
add cl, cl
or cl, al
mov al, byte [esp + 0x1e6]
and al, 0xe9
add cl, cl
or cl, al
mov al, byte [esp + 0x1e7]
and al, 0xdf
mov dword [esp + 0x70], ecx
or al, byte [esp + 0x14]
and al, 0xf9
mov byte [esp + 0x16], al
mov eax, dword [esp + 0x2c]
neg eax
sbb al, al
and al, 2
or byte [esp + 0x16], al
mov eax, dword [esp + 0xc0]
neg eax
sbb al, al
and al, 4
or byte [esp + 0x16], al
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x162c]
shr eax, 0xf
test al, 1
je 0x101ebdbb
cmp dword [esp + 0x16c], 0
mov byte [esp + 0x14], 0x18
jne 0x101ebdc0
mov byte [esp + 0x14], 0x10
mov al, byte [esp + 0x22c]
and byte [esp + 0x16], 0xf7
and al, 0xfe
or al, byte [esp + 0x8f]
mov byte [esp + 0x22c], al
mov eax, dword [esp + 0x20]
cmp byte [eax + 8], 0
jne 0x101ebdfd
call fcn.10450c0b
mov edx, dword [esp + 0x1d8]
mov ecx, dword [esp + 0x70]
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0xbe2c]
test byte [eax + 0xf5c], 4
je 0x101ebe2c
test cl, 4
jne 0x101ebe2c
test edx, 0xea0000
jne 0x101ebe2c
or edx, 0x20000
mov dword [esp + 0x1d8], edx
mov eax, dword [esp + 0x98]
test byte [eax + 0xb38], 1
je 0x101ebe54
cmp dword [eax + 0x1838], 0x57ad
je 0x101ebe54
mov eax, dword [esp + 0x1e0]
or eax, 2
jmp 0x101ebe5e
mov eax, dword [esp + 0x1e0]
and eax, 0xfffffffd
mov edx, dword [esp + 0x24]
and edx, 0x2000
mov dword [esp + 0x68], edx
je 0x101ebe73
or eax, 1
jmp 0x101ebe76
and eax, 0xfffffffe
mov edx, dword [esp + 0x20]
mov dword [esp + 0x1e0], eax
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 0x162c]
shr eax, 7
test al, 1
je 0x101ebeab
test byte [esp + 0x88], 1
jne 0x101ebeab
mov dword [esp + 0x238], 0
jmp 0x101ebeb9
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x238], eax
mov al, byte [esp + 0x14]
and cl, 0xfe
or cl, byte [esp + 0x7c]
or al, byte [esp + 0x16]
mov byte [esp + 0x1e6], cl
mov cl, byte [esp + 0x1ea]
and cl, 0xef
mov byte [esp + 0x14], al
mov byte [esp + 0x1e7], al
mov al, byte [esp + 0x11c]
shl al, 4
or cl, al
or cl, 2
mov byte [esp + 0x1ea], cl
mov ecx, dword [esp + 0x78]
shl cl, 4
xor cl, byte [esp + 0x1e9]
and cl, 0x10
xor cl, byte [esp + 0x1e9]
or ecx, 8
mov dword [esp + 0x78], ecx
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 0x13c8]
dec eax
movzx ecx, al
mov eax, dword [esp + 0x84]
shl ecx, 8
movzx eax, al
or ecx, eax
mov eax, dword [esp + 0x4c]
add eax, dword [esp + 0x120]
shl ecx, 4
shl eax, 0x14
and eax, 0xff00000
or ecx, eax
mov eax, dword [esp + 0x2fc]
and eax, 0xf000000f
or ecx, eax
mov dword [esp + 0x2fc], ecx
mov ecx, dword [esp + 0x5c]
mov eax, ecx
xor eax, dword [esp + 0x90]
movzx eax, al
xor ecx, eax
mov al, byte [esp + 0x47]
mov dword [esp + 0x1d4], ecx
mov ecx, dword [esp + 0x24]
shr ecx, 0xc
shl cl, 5
xor cl, byte [esp + 0x300]
and cl, 0x20
shl al, 5
xor cl, byte [esp + 0x300]
or cl, 1
mov byte [esp + 0x300], cl
mov cl, byte [esp + 0x302]
and cl, 0xdf
or cl, al
mov al, byte [esp + 0x1d0]
mov byte [esp + 0x302], cl
cmp al, 0x36
je 0x101ebfd2
cmp al, 0x29
je 0x101ebfd2
or byte [esp + 0x1e8], 4
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x101ebff5
imul eax, dword [esp + 0xcc], 0x70
movups xmm0, xmmword [eax + ecx]
movups xmmword [esp + 0x28c], xmm0
movups xmm0, xmmword [eax + ecx + 0x10]
jmp 0x101ec000
xorps xmm0, xmm0
movups xmmword [esp + 0x28c], xmm0
mov eax, dword [esp + 0xcc]
mov edx, 4
mov ecx, dword [esp + 0x184]
imul eax, eax, 0x70
movups xmmword [esp + 0x29c], xmm0
mov dword [esp + 0x240], edx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x104]
dec eax
mov dword [esp + 0x26c], eax
mov eax, dword [esp + 0x104]
cmp eax, 2
je 0x101ec04b
cmp eax, edx
jne 0x101ec060
mov eax, dword [esp + 0x188]
mov dword [esp + 0x250], eax
mov dword [esp + 0x254], ecx
mov esi, dword [esp + 0x20]
imul ecx, dword [esp + 0x74]
mov eax, dword [esi + 0x10]
mov esi, dword [esp + 0x1c]
dec ecx
mov eax, dword [eax + 0x7a68]
mov eax, dword [eax + 0x2dac]
add ecx, eax
neg eax
and ecx, eax
mov dword [esp + 0x70], ecx
xor ecx, ecx
cmp dword [esp + 0x6c], 3
sete cl
xor eax, eax
cmp dword [esp + 0x6c], 1
sete al
or ecx, eax
jne 0x101ec0c9
test byte [esp + 0x78], 0x10
je 0x101ec0c9
mov ecx, dword [esp + 0x28]
test ecx, ecx
je 0x101ec0c9
mov eax, dword [esp + 0x90]
mov eax, dword [ecx + eax + 0x20]
test eax, eax
mov ecx, dword [esp + 0x70]
cmovne ecx, eax
mov dword [esp + 0x70], ecx
mov cl, byte [esp + 0x1e4]
mov eax, dword [esp + 0x88]
or cl, 0x20
and eax, 1
mov byte [esp + 0x1e4], cl
test byte [esp + 0x14], 0x20
mov dword [esp + 0x88], eax
jne 0x101ec0f6
test eax, eax
je 0x101ec156
cmp dword [esp + 0x28], 0
mov edi, dword [esp + 0x40]
je 0x101ec156
mov edi, dword [esp + 0x90]
mov esi, dword [esp + 0x28]
cmp dword [esi + edi], 0
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x40]
je 0x101ec156
mov esi, dword [esp + 0x90]
mov edi, dword [esp + 0x28]
movups xmm0, xmmword [edi + esi + 0x38]
movups xmmword [esp + 0x19c], xmm0
movups xmm0, xmmword [edi + esi + 0x48]
movups xmmword [esp + 0x1ac], xmm0
movq xmm0, qword [edi + esi + 0x58]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x40]
movq qword [esp + 0x1bc], xmm0
cmp dword [esp + 0x58], 0
je 0x101ec1b9
cmp dword [esp + 0x28], 0
mov edx, 0x8004
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x240], edx
je 0x101ec1ad
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x28]
mov eax, dword [eax + ecx + 0x30]
mov ecx, dword [esi + ecx + 0x34]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x1c8], ecx
mov cl, byte [esp + 0x1e4]
jmp 0x101ec1b9
xorps xmm0, xmm0
movlpd qword [esp + 0x1c4], xmm0
test eax, eax
je 0x101ec1cf
or edx, 0x10
or byte [esp + 0x1e5], 0x80
mov dword [esp + 0x240], edx
mov eax, dword [esp + 0x28]
test eax, eax
je 0x101ec1e0
cmp dword [eax], 0
je 0x101ec1e0
mov al, 0x20
jmp 0x101ec1e2
xor al, al
and byte [esp + 0x78], 0xdf
or byte [esp + 0x78], al
test byte [esp + 0x108], 4
mov eax, dword [esp + 0x78]
mov byte [esp + 0x1e9], al
je 0x101ec217
or edx, 0x1000000
and cl, 0xdf
mov dword [esp + 0x240], edx
mov byte [esp + 0x1e4], cl
push dword [esp + 0x70]
lea ecx, [esp + 0x17c]
call fcn.10098770
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x248], edx
mov edx, dword [esp + 0x9c]
mov dword [ecx + 0x13d4], eax
mov dword [esp + 0x24c], edx
xor edx, edx
mov dword [esp + 0x268], eax
mov eax, dword [ecx + 0xfd8]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x88], eax
test eax, eax
je 0x101ec727
mov esi, dword [esp + 0x98]
test byte [esi + 0xb38], 1
mov esi, dword [esp + 0x1c]
je 0x101ec727
cmp byte [eax], dl
jne 0x101ec727
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x10]
cmp dword [eax + 0xd3a8], 3
jne 0x101ec4c8
push 0xa0
push edx
lea eax, [esp + 0x808]
push eax
call fcn.10425c00
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov dword [esp + 0x15c], ecx
add esp, 0xc
and ecx, 0xfffffffe
mov dword [esp + 0x14c], 0xa0
mov dword [esp + 0x144], ecx
mov eax, dword [edx + 0x11cc]
mov dword [esp + 0x140], eax
lea eax, [esp + 0x800]
mov dword [esp + 0x148], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x830], eax
mov eax, dword [edx + 0x10b4]
mov dword [esp + 0x810], 0x1000107
mov dword [esp + 0x800], 0x4e564441
mov dword [esp + 0x804], 0x10002
mov dword [esp + 0x80c], 0x4e564458
mov dword [esp + 0x808], 0xa0
mov dword [esp + 0x5c], eax
test eax, eax
je 0x101ec415
mov eax, dword [edx]
test eax, eax
je 0x101ec415
mov ecx, dword [eax + 0xbe28]
test ecx, ecx
je 0x101ec415
mov ecx, dword [ecx + 0x14]
test ecx, ecx
je 0x101ec415
cmp dword [eax + 0xd45c], 1
jne 0x101ec3fc
lea eax, [edx + 0x1428]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x18]
lea edx, [esp + 0x140]
push edx
mov ecx, dword [eax + 0x10b4]
mov eax, dword [eax]
mov eax, dword [eax + 0xbe28]
push dword [eax + 0x14]
call ecx
mov dword [esp + 0x5c], eax
xorps xmm0, xmm0
lea eax, [esp + 0x158]
movlpd qword [esp + 0x158], xmm0
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x158]
mov eax, dword [esp + 0x15c]
sub ecx, dword [edx + 0x1428]
sbb eax, dword [edx + 0x142c]
add dword [edx + 0x1420], ecx
mov ecx, edx
adc dword [ecx + 0x1424], eax
mov eax, dword [esp + 0x5c]
jmp 0x101ec40d
lea eax, [esp + 0x140]
push eax
push ecx
call dword [esp + 0x64]
mov ecx, dword [esp + 0x18]
test eax, eax
jne 0x101ec723
mov eax, dword [esp + 0x864]
xor edx, edx
xor ecx, ecx
test eax, eax
je 0x101ec4ac
cmp eax, 8
jb 0x101ec485
cmp dword [0x11d0c5bc], 2
jl 0x101ec485
mov edx, eax
xorps xmm1, xmm1
and edx, 0xfffffff8
xorps xmm2, xmm2
movups xmm0, xmmword [esp + ecx*4 + 0x868]
pmaxud xmm1, xmm0
movups xmm0, xmmword [esp + ecx*4 + 0x878]
add ecx, 8
pmaxud xmm2, xmm0
cmp ecx, edx
jb 0x101ec441
pmaxud xmm1, xmm2
movaps xmm0, xmm1
psrldq xmm0, 8
pmaxud xmm1, xmm0
movups xmm0, xmm1
psrldq xmm0, 4
pmaxud xmm1, xmm0
movd edx, xmm1
cmp ecx, eax
jae 0x101ec4aa
nop dword [eax]
mov eax, dword [esp + ecx*4 + 0x868]
cmp eax, edx
cmovbe eax, edx
inc ecx
mov edx, eax
mov eax, dword [esp + 0x864]
cmp ecx, eax
jb 0x101ec490
test eax, eax
mov al, byte [edi + 0x1bc]
setne cl
and al, 0xfe
or cl, al
mov byte [edi + 0x1bc], cl
mov ecx, dword [esp + 0x18]
jmp 0x101ec727
mov eax, dword [esp + 0x88]
mov eax, dword [eax + 0x14]
mov dword [esp + 0x5c], eax
test eax, eax
je 0x101ec727
push 0x44
lea eax, [esp + 0x7bc]
push 0
push eax
call fcn.10425c00
mov ecx, dword [esp + 0x2c]
add esp, 0xc
xorps xmm0, xmm0
mov dword [esp + 0x8b0], 0
movaps xmmword [esp + 0x8a0], xmm0
cmp byte [ecx + 8], 0
jne 0x101ec51e
call fcn.10450c0b
mov ecx, dword [esp + 0x20]
cmp byte [ecx + 8], 0
xorps xmm0, xmm0
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 0xbe2c]
mov eax, dword [eax + 0x11cc]
mov dword [esp + 0x8a0], eax
lea eax, [esp + 0x7b8]
mov dword [esp + 0x8a8], eax
mov eax, dword [esp + 0x7d8]
mov dword [esp + 0x7d8], eax
mov eax, dword [esp + 0x254]
mov dword [esp + 0x7e8], eax
mov eax, dword [esp + 0x250]
mov dword [esp + 0x7ec], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x7f0], eax
mov eax, dword [esp + 0xf0]
mov dword [esp + 0x8ac], 0x44
movlpd qword [esp + 0x7cc], xmm0
mov dword [esp + 0x7d4], 0
movlpd qword [esp + 0x7dc], xmm0
mov dword [esp + 0x7e4], 0
mov dword [esp + 0x7f8], 0
mov dword [esp + 0x7b8], 0x4e564441
mov dword [esp + 0x7bc], 0x10002
mov dword [esp + 0x7c0], 0x44
mov dword [esp + 0x7c4], 0x4e564458
mov dword [esp + 0x7c8], 0x2000024
mov dword [esp + 0x7f4], eax
jne 0x101ec612
call fcn.10450c0b
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 0xbe2c]
mov dword [esp + 0x6c], eax
mov ecx, dword [eax + 0x10b4]
mov dword [esp + 0x5c], ecx
test ecx, ecx
je 0x101ec6f8
mov ecx, dword [eax]
test ecx, ecx
je 0x101ec6f8
mov edx, dword [ecx + 0xbe28]
test edx, edx
je 0x101ec6f8
mov edx, dword [edx + 0x14]
test edx, edx
je 0x101ec6f8
cmp dword [ecx + 0xd45c], 1
jne 0x101ec6d9
add eax, 0x1428
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x6c]
lea edx, [esp + 0x8a0]
push edx
mov ecx, dword [eax + 0x10b4]
mov eax, dword [eax]
mov eax, dword [eax + 0xbe28]
push dword [eax + 0x14]
call ecx
mov dword [esp + 0x5c], eax
xorps xmm0, xmm0
lea eax, [esp + 0x128]
movlpd qword [esp + 0x128], xmm0
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [esp + 0x6c]
mov ecx, dword [esp + 0x128]
mov eax, dword [esp + 0x12c]
sub ecx, dword [edx + 0x1428]
sbb eax, dword [edx + 0x142c]
add dword [edx + 0x1420], ecx
adc dword [edx + 0x1424], eax
mov eax, dword [esp + 0x5c]
jmp 0x101ec6e6
lea eax, [esp + 0x8a0]
push eax
push edx
call dword [esp + 0x64]
test eax, eax
jns 0x101ec6f8
cmp dword [esp + 0x7e4], 1
jne 0x101ec6f8
xor cl, cl
jmp 0x101ec703
cmp dword [esp + 0x7f8], 0
setne cl
mov al, byte [edi + 0x1bc]
and al, 0xfe
or al, cl
mov ecx, dword [esp + 0x18]
mov byte [edi + 0x1bc], al
mov eax, dword [esp + 0x88]
mov edx, dword [eax + 0x14]
jmp 0x101ec727
mov edx, dword [esp + 0x6c]
mov eax, dword [esp + 0x54]
mov dword [esp + 0x78], eax
mov al, byte [edi + 0x1bc]
and al, 1
mov dword [esp + 0x88], edi
mov byte [esp + 0x14], al
je 0x101ec758
mov dword [esp + 0x270], edx
mov dword [esp + 0x274], 1
jmp 0x101ec774
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x270], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x274], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x278], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x27c], eax
mov eax, dword [esp + 0x98]
test byte [eax + 0xb38], 1
je 0x101ec7ff
cmp dword [esp + 0x16c], 0
jne 0x101ec815
cmp dword [esp + 0x2c], 0
je 0x101ec7b8
cmp byte [esp + 0x14], 0
je 0x101ec815
mov edx, dword [ecx]
mov eax, dword [edx + 0xf888]
and eax, 0xf00
cmp eax, 0x100
jbe 0x101ec815
mov eax, dword [edx + 0x162c]
shr eax, 7
test al, 1
je 0x101ec815
mov edx, dword [edx + 0xf7d4]
test edx, edx
je 0x101ec815
mov eax, dword [edx + 0x340]
mov esi, dword [esp + 0xf0]
bts eax, esi
mov esi, dword [esp + 0x1c]
mov dword [edx + 0x340], eax
jmp 0x101ec815
mov eax, dword [ecx]
mov eax, dword [eax + 0xf7d4]
test eax, eax
je 0x101ec815
mov dword [eax + 0x340], 0
mov eax, dword [ecx + 0xf7c]
cmp dword [eax + 0xb3c], 0
je 0x101ec85a
mov eax, dword [esp + 0x28]
test eax, eax
je 0x101ec831
cmp dword [eax], 0
jne 0x101ec83f
cmp dword [esp + 0xfc], 0
jne 0x101ec83f
xor al, al
jmp 0x101ec841
mov al, 8
mov cl, byte [esp + 0x1ea]
and cl, 0xf7
or cl, al
mov byte [esp + 0x14], cl
mov byte [esp + 0x1ea], cl
jmp 0x101ec865
mov al, byte [esp + 0x1ea]
mov byte [esp + 0x14], al
cmp byte [esp + 0x47], 0
jne 0x101ec887
cmp byte [esp + 0x17], 0
je 0x101ec887
lea eax, [esp + 0x178]
mov ecx, edi
push eax
push dword [edi + 8]
call fcn.100ab9a0
jmp 0x101ec896
lea eax, [esp + 0x178]
mov ecx, edi
push eax
call fcn.1009ed20
test al, al
je 0x101ed023
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov byte [esp + 0x17], 1
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0xf7d4]
mov eax, dword [edx + 0xf7c]
cmp dword [eax + 0xb3c], 0
je 0x101ec8d3
cmp dword [esp + 0xfc], 0
sete byte [esp + 0x17]
test ecx, ecx
je 0x101eca6b
mov ecx, dword [edi + 0x114]
mov dword [esp + 0x6c], ecx
cmp ecx, 0xffffffff
je 0x101eca6b
mov eax, dword [esp + 0x94]
shl eax, cl
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx + 0x10]
mov ecx, dword [esp + 0x6c]
mov esi, dword [edx + 0xf7d4]
mov edx, dword [esp + 0x18]
test dword [esi + 0x340], eax
mov esi, dword [esp + 0x1c]
je 0x101eca6b
cmp byte [esp + 0x17], 0
mov eax, dword [esp + 0x88]
mov edi, eax
mov edx, dword [esp + 0x78]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x40], edi
je 0x101eca6b
cmp byte [esp + 0x47], 0
mov edx, dword [esp + 0x78]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x40], edi
jne 0x101eca6b
test byte [eax + 0x1ae], 0x20
mov edx, dword [esp + 0x78]
mov dword [esp + 0x54], edx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x40], edi
jne 0x101eca6b
mov esi, dword [esp + 0x20]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x54], eax
mov dword [esp + 0x40], edi
mov eax, dword [esi + 0x10]
mov esi, dword [esp + 0x1c]
mov eax, dword [eax + 0xbe2c]
mov eax, dword [eax + 0xf7c]
test byte [eax + 0xb50], 2
jne 0x101eca6b
mov esi, dword [esp + 0x20]
mov eax, ecx
add eax, eax
mov ecx, dword [esi + 0x10]
mov esi, dword [esp + 0x1c]
mov edi, dword [ecx + 0xf7d4]
cmp dword [edi + eax*8 + 0x378], 0
lea ecx, [edi + eax*8]
mov dword [esp + 0x5c], ecx
jne 0x101eca00
mov edi, dword [esp + 0x88]
mov dword [esp + 0x40], edi
mov eax, dword [edi + 0x20c]
mov dword [ecx + 0x37c], eax
mov eax, dword [eax + 0x18c]
mov dword [ecx + 0x378], eax
mov eax, dword [esp + 0x78]
jmp 0x101eca6f
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x88]
add eax, 0x38
mov esi, dword [esp + 0x78]
shl eax, 4
add eax, edi
mov dword [esp + 0x54], esi
mov esi, dword [esp + 0x1c]
mov edi, ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x40], edi
cmp dword [eax], 0
jne 0x101eca6b
mov eax, dword [ecx + 0x20c]
mov edi, dword [esp + 0x5c]
mov edx, dword [esp + 0x6c]
mov ecx, dword [eax + 0x18c]
mov dword [edi + 0x384], eax
mov dword [edi + 0x3bc], eax
mov eax, dword [esp + 0x78]
mov dword [edi + 0x3b8], ecx
mov edi, dword [esp + 0x88]
mov dword [edx], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x40], edi
jmp 0x101eca6f
mov eax, dword [esp + 0x54]
test byte [esp + 0x1e6], 2
je 0x101ecab6
mov eax, dword [edi + 0x20c]
mov eax, dword [eax + 0x18c]
movups xmm0, xmmword [eax + 0x15a]
movups xmmword [esp + 0x19c], xmm0
movups xmm0, xmmword [eax + 0x16a]
movups xmmword [esp + 0x1ac], xmm0
movq xmm0, qword [eax + 0x17a]
mov eax, edi
movq qword [esp + 0x1bc], xmm0
cmp dword [esp + 0x28], 0
lea ecx, [eax + 0x20c]
je 0x101ecb7f
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x90]
cmp dword [edx + eax], 0
mov edx, dword [esp + 0x18]
je 0x101ecb7f
cmp dword [esp + 0x104], 1
je 0x101ecaf0
lea ecx, [edi + 0x21c]
mov ecx, dword [ecx]
test ecx, ecx
je 0x101ecb7f
mov eax, dword [ecx + 0x18c]
mov eax, dword [eax + 8]
mov dword [esp + 0x5c], eax
test eax, eax
je 0x101ecb28
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x90]
mov eax, dword [esi + eax + 0x24]
mov esi, dword [esp + 0x5c]
mov dword [esi + 0xa4], eax
mov esi, dword [esp + 0x1c]
mov eax, dword [ecx + 0x18c]
mov eax, dword [eax + 8]
mov dword [esp + 0x5c], eax
test eax, eax
je 0x101ecb56
mov esi, dword [esp + 0x28]
mov eax, dword [esp + 0x90]
mov eax, dword [esi + eax + 0x28]
mov esi, dword [esp + 0x5c]
mov dword [esi + 0xa8], eax
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x90]
cmp dword [edx + eax + 0x60], 0
mov edx, dword [esp + 0x18]
je 0x101ecb7f
mov ecx, dword [ecx + 0x18c]
mov eax, dword [ecx + 0x48]
or dword [ecx + 0x4c], 0x40000000
mov dword [ecx + 0x48], eax
mov eax, dword [edi]
mov ecx, edi
push dword [edx + 0xf7c]
call dword [eax + 0x20]
mov eax, dword [esi + 0x18]
mov edx, dword [esp + 0xcc]
shr eax, 4
cmp edx, eax
jae 0x101ecbf6
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + edx*4]
test ecx, ecx
je 0x101ecbed
mov eax, dword [ecx + 0x10]
add eax, eax
sar eax, 0x1c
cmp eax, 1
je 0x101ecbc2
test eax, eax
je 0x101ecbc2
cmp eax, 2
je 0x101ecbc2
cmp eax, 5
jne 0x101ecbd1
xor eax, eax
mov dword [esp + 0x40], edi
mov eax, ecx
mov dword [eax + 0x18], 0
mov eax, dword [esi + 0x14]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [esi + 0x14]
mov edx, dword [esp + 0xcc]
mov dword [eax + edx*4], 0
inc dword [edi + 4]
mov eax, dword [esi + 0x14]
mov dword [eax + edx*4], edi
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
cmp dword [esp + 0x4c], 1
jbe 0x101ecc8a
test byte [edi + 0x92], 0x10
je 0x101ecc8a
cmp dword [esp + 0xcc], 0
jne 0x101ecc2f
push 1
mov ecx, edi
call fcn.1009f5f0
test al, al
jne 0x101ecc8a
mov ecx, esi
jmp 0x101ed99b
cmp dword [esi], 0x73655243
jne 0x101ecc72
test dword [esi + 0x18], 0xfffffff0
jbe 0x101ecc72
cmp dword [esi + 0x14], 0
je 0x101ecc72
mov eax, dword [esi + 0x14]
mov edx, dword [eax]
mov eax, dword [edx + 0x10]
add eax, eax
sar eax, 0x1c
cmp eax, 1
je 0x101ecc67
test eax, eax
je 0x101ecc67
xor cl, cl
xor eax, eax
test cl, cl
cmovne eax, edx
jmp 0x101ecc74
mov cl, 1
xor eax, eax
test cl, cl
cmovne eax, edx
jmp 0x101ecc74
xor eax, eax
mov eax, dword [eax + 0x214]
mov dword [edi + 0x214], eax
mov dword [esp + 0x40], edi
inc dword [eax + 0x184]
test byte [esp + 0x1e7], 0x20
jne 0x101eccfe
test byte [esp + 0x1e9], 0x20
jne 0x101eccfe
mov ecx, dword [esp + 0x20]
cmp byte [ecx + 8], 0
jne 0x101eccb4
call fcn.10450c0b
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 0xbe2c]
cmp dword [eax + 0xfec], 0
je 0x101eccfe
cmp byte [ecx + 8], 0
jne 0x101eccdb
call fcn.10450c0b
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x10]
push edi
mov eax, dword [eax + 0xbe2c]
mov ecx, dword [eax + 0xfec]
call fcn.100f4830
test al, al
je 0x101eccfe
mov ecx, edi
call fcn.1009f3e0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x18]
and eax, 0x8008000
cmp eax, 0x8008000
jne 0x101ecd39
cmp dword [esp + 0x58], 0
jne 0x101ecd39
cmp dword [esp + 0xa0], 0x16
mov al, byte [edx + 0xf5a]
setne cl
and al, 0x7f
dec cl
and cl, 0x80
or cl, al
mov byte [edx + 0xf5a], cl
cmp dword [esp + 0x68], 0
je 0x101ecd51
mov eax, dword [edx]
cmp dword [eax + 0x2fe48], 0
jne 0x101ecd51
mov dword [eax + 0x2fe48], esi
mov esi, dword [esp + 0x18]
mov eax, dword [esi]
mov eax, dword [eax + 0xf7d8]
mov dword [esp + 0x58], eax
test eax, eax
je 0x101ecd97
mov ecx, dword [esp + 0xf0]
cmp ecx, 0xffffffff
je 0x101ecd97
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x94]
shl edx, cl
mov eax, dword [eax + 0x10]
test dword [eax + 0x6908], edx
mov eax, dword [esp + 0x58]
je 0x101ecd97
mov byte [esp + 0x17], 1
jmp 0x101ecda1
xor ch, ch
mov byte [esp + 0x17], ch
test eax, eax
je 0x101ecdbd
mov ecx, dword [eax + 0x3e4]
cmp ecx, 8
jae 0x101ecdb9
mov dword [eax + ecx*4 + 0x3c4], edi
inc dword [eax + 0x3e4]
mov ch, byte [esp + 0x17]
mov eax, dword [esp + 0x98]
mov dl, byte [eax + 0xb38]
mov cl, dl
and cl, 1
je 0x101ece2d
mov eax, dword [esi]
mov eax, dword [eax + 0x162c]
shr eax, 0xf
test al, 1
je 0x101ece2d
test ch, ch
je 0x101ece2d
cmp byte [esp + 0x47], 0
jne 0x101ece02
mov edi, dword [esp + 0x20]
mov eax, dword [edi + 0x10]
cmp dword [eax + 0xf940], 2
je 0x101ece02
test dl, dl
jns 0x101ece31
mov eax, dword [esp + 0x40]
lea esi, [esp + 0x178]
mov ecx, 0x63
mov byte [esp + 0x67], 1
lea edi, [esp + 0x308]
mov dword [esp + 0x80], eax
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x18]
jmp 0x101eceab
mov edi, dword [esp + 0x20]
mov eax, dword [esi]
mov edx, dword [eax + 0xf7d4]
test edx, edx
je 0x101ecea7
mov eax, dword [esp + 0x98]
test byte [eax + 0xb50], 2
jne 0x101ecea7
test cl, cl
je 0x101ecea7
mov eax, dword [edi + 0x10]
cmp dword [eax + 0xf940], 2
jne 0x101ecea7
test byte [esp + 0x1e7], 2
jne 0x101ecea7
mov eax, dword [esp + 0xf0]
cmp dword [edx + eax*4 + 4], 0
jne 0x101ecea7
test ch, ch
jne 0x101ecea7
test byte [esp + 0x14], 8
mov eax, dword [esp + 0x40]
jne 0x101eceab
mov ecx, 0x63
mov byte [esp + 0x15], 1
lea esi, [esp + 0x178]
lea edi, [esp + 0x628]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x18]
jmp 0x101eceab
mov eax, dword [esp + 0x40]
cmp dword [esi + 0xfe8], 0
je 0x101eced1
mov ecx, 0x63
mov dword [esp + 0x60], eax
lea esi, [esp + 0x178]
lea edi, [esp + 0x498]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0xcc]
inc eax
mov dword [esp + 0xcc], eax
cmp eax, dword [esp + 0x4c]
jb 0x101ebab0
cmp byte [esp + 0x67], 0
mov ecx, dword [esi]
mov edx, dword [esp + 0x30]
mov eax, dword [edx]
mov dword [ecx + 0x124], eax
mov ecx, dword [esi]
mov eax, dword [edx + 4]
mov edx, dword [esp + 0x20]
mov dword [ecx + 0x128], eax
mov eax, dword [esi]
mov ecx, dword [esp + 0x70]
mov dword [eax + 0x12c], ecx
je 0x101ecfcd
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 0x162c]
shr eax, 0xf
test al, 1
je 0x101ecfcd
test byte [esp + 0x377], 8
je 0x101ecfcd
mov eax, dword [esi + 0xf60]
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x98]
mov ecx, dword [eax + 0xb3c]
test ecx, ecx
je 0x101ecf8a
lea eax, [esp + 0x128]
push eax
lea eax, [esp + 0x60]
push eax
lea edx, [esp + 0x70]
call fcn.1022ef80
mov edx, dword [esp + 0x20]
xor ecx, ecx
test al, al
cmovne ecx, dword [esp + 0x68]
mov dword [esi + 0xf60], ecx
push dword [esp + 0x80]
mov ecx, 0x63
lea esi, [esp + 0x30c]
sub esp, 0x18c
mov edi, esp
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [edx + 0x10]
mov ecx, dword [ecx + 0xf7d8]
call fcn.101f8850
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x20]
mov dword [esi + 0xf60], eax
cmp byte [esp + 0x15], 0
je 0x101ecfff
sub esp, 0x18c
lea esi, [esp + 0x7b4]
mov edi, esp
mov ecx, 0x63
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [edx + 0x10]
mov ecx, dword [ecx + 0xf7d4]
call fcn.101f9d50
mov esi, dword [esp + 0x18]
mov ecx, dword [esi + 0xfe8]
test ecx, ecx
je 0x101ed01a
lea eax, [esp + 0x498]
push eax
push dword [esp + 0x64]
call fcn.10240d30
mov edi, dword [esp + 0x1c]
jmp 0x101ed921
mov ecx, dword [esp + 0x18]
mov eax, dword [ecx + 8]
test eax, eax
js 0x101ed038
mov dword [esp + 0x58], 0x8007000e
jmp 0x101ed049
cmp eax, 0x80004005
mov ecx, 0x8876017c
cmove eax, ecx
mov dword [esp + 0x58], eax
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 4]
mov ecx, esi
call fcn.101c0c00
mov ecx, dword [esp + 0x58]
jmp 0x101ee828
mov ecx, dword [esp + 0x1c]
jmp 0x101edfa2
mov eax, dword [esp + 0x24]
cmp byte [esp + 0x2c], 0
je 0x101ed233
push dword [esp + 0x54]
mov edx, dword [esp + 0x98]
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x44]
push eax
call fcn.101c0b40
mov edi, eax
test edi, edi
js 0x101ed1c8
lea eax, [esp + 0x9c]
mov dword [esp + 0x48], 0
push eax
lea eax, [esp + 0x60]
mov ecx, esi
push eax
lea eax, [esp + 0x70]
push eax
lea edx, [esp + 0xdc]
call fcn.101e9530
xor eax, eax
mov dword [esp + 0x60], eax
cmp byte [esp + 0x110], al
jne 0x101ed115
push ecx
mov ecx, dword [esp + 0x88]
lea eax, [esp + 0x64]
push eax
push dword [esp + 0x84]
lea eax, [esp + 0xdc]
mov edx, esi
push dword [esp + 0x74]
push dword [esp + 0xac]
push dword [esp + 0x44]
push eax
call fcn.101ea350
test al, al
jne 0x101ed111
mov ecx, dword [esp + 0x1c]
jmp 0x101ed99b
mov eax, dword [esp + 0x60]
mov edi, dword [esp + 0x1c]
lea edx, [esp + 0xd0]
push edi
push eax
lea eax, [esp + 0x50]
mov ecx, esi
push eax
push dword [esp + 0x34]
call fcn.101e5920
mov dword [esp + 0x50], eax
test eax, eax
js 0x101ed1b8
mov ecx, dword [esp + 0x48]
push dword [esi + 0xf7c]
mov eax, dword [ecx]
call dword [eax + 0x20]
test dword [edi + 0x18], 0xfffffff0
jbe 0x101ed1aa
mov eax, dword [edi + 0x14]
mov ecx, dword [eax]
test ecx, ecx
je 0x101ed194
mov eax, dword [ecx + 0x10]
add eax, eax
sar eax, 0x1c
cmp eax, 1
je 0x101ed176
test eax, eax
je 0x101ed176
cmp eax, 2
je 0x101ed176
cmp eax, 5
jne 0x101ed181
xor eax, eax
mov eax, ecx
mov dword [eax + 0x18], 0
mov eax, dword [edi + 0x14]
mov ecx, dword [eax]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi + 0x14]
mov dword [eax], 0
mov ecx, dword [esp + 0x48]
inc dword [ecx + 4]
mov eax, dword [edi + 0x14]
mov dword [eax], ecx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x101ed921
mov ecx, dword [esp + 0x48]
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x101ed921
mov ecx, edi
call fcn.101c0c00
mov ecx, dword [esp + 0x50]
jmp 0x101ee828
call fcn.1027e6c0
mov dword [esp + 0x8b0], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x8a0], xmm0
cmp edi, 0x8007000e
je 0x101ed213
cmp edi, 0x80070057
jne 0x101ed21e
push eax
lea eax, [esp + 0x8a4]
mov dword [esp + 0x8b4], 2
push eax
mov ecx, edi
call fcn.1027e560
jmp 0x101ee82f
mov dword [esp + 0x8b0], 1
push eax
lea eax, [esp + 0x8a4]
mov ecx, edi
push eax
call fcn.1027e560
jmp 0x101ee82f
cmp byte [esp + 0x7c], 0
je 0x101ed9d8
test eax, 0x2000
je 0x101ed282
mov edx, dword [esp + 0xa0]
cmp edx, 0x15
je 0x101ed9df
cmp edx, 0x16
je 0x101ed9df
cmp edx, 0x32595559
je 0x101ed9df
cmp edx, 0x59565955
je 0x101ed9df
cmp edx, 0x3231564e
je 0x101ed9df
push dword [esp + 0x54]
mov edx, dword [esp + 0x50]
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x44]
push eax
call fcn.101c0b40
test eax, eax
js 0x101ee826
lea eax, [esp + 0x2c]
mov ecx, esi
push eax
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x78]
push eax
lea edx, [esp + 0xdc]
call fcn.101e9530
mov edi, eax
mov dword [esp + 0x50], edi
test edi, edi
jns 0x101ed30b
mov ecx, dword [esp + 0x1c]
call fcn.101c0c00
call fcn.1027e6c0
push eax
lea eax, [esp + 0x8a4]
mov dword [esp + 0x8b4], 0
xorps xmm0, xmm0
mov ecx, 0x88760818
push eax
movups xmmword [esp + 0x8a8], xmm0
call fcn.1027e560
mov edi, 0x88760818
jmp 0x101ee82f
mov edx, dword [esp + 0x70]
cmp edx, 0x42
je 0x101edacb
mov eax, dword [esi]
push edx
mov ecx, dword [eax + 0x7a68]
mov eax, dword [ecx]
mov eax, dword [eax + 0x104]
call eax
test al, al
je 0x101edacb
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
jbe 0x101ed01a
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
add esi, 0x38
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xc0], esi
nop dword [eax]
cmp byte [esp + 0x110], 0
mov dword [esp + 0x6c], 0
jne 0x101ed3ac
mov edx, dword [esp + 0x18]
lea eax, [esp + 0x6c]
push ecx
push eax
push dword [esp + 0x84]
lea eax, [esp + 0xdc]
push dword [esp + 0x7c]
push dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x9c]
push eax
call fcn.101ea350
test al, al
je 0x101ed999
mov ecx, dword [esp + 0x30]
cmp dword [ecx], 0
je 0x101edfa0
cmp dword [ecx + 4], 0
je 0x101edfa0
push 0x10
push 0x284
call fcn.10434a32
add esp, 8
test eax, eax
je 0x101ed999
push 1
push edi
mov ecx, eax
call fcn.100250c0
mov ecx, eax
mov dword [esp + 0x74], ecx
test ecx, ecx
je 0x101ed999
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x11c0]
test eax, eax
je 0x101ed407
mov edx, dword [eax]
push ecx
mov ecx, eax
call dword [edx + 0x160]
cmp dword [esp + 0x70], 0x33
mov eax, dword [esp + 0x30]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0x80], edx
mov dword [esp + 0x60], eax
jne 0x101ed435
mov dword [esp + 0x80], 1
mov dword [esp + 0x60], 1
mov eax, dword [esp + 0x20]
imul edx, dword [esp + 0x2c]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x7a68]
lea ecx, [edx - 1]
mov eax, dword [eax + 0x2dac]
add ecx, eax
neg eax
and ecx, eax
cmp dword [esp + 0x28], 0
mov dword [esp + 0x58], ecx
je 0x101ed470
mov eax, dword [esi - 0x18]
test eax, eax
cmovne ecx, eax
mov dword [esp + 0x58], ecx
push 0x18c
lea eax, [esp + 0x17c]
push 0
push eax
call fcn.10425c00
add esp, 0xc
lea ecx, [esp + 0x178]
push 0xa0000000
push 1
push dword [esp + 0x68]
push dword [esp + 0x8c]
push dword [esp + 0x68]
call fcn.10025350
mov ecx, dword [esp + 0x30]
mov dl, byte [esp + 0x1e6]
mov eax, dword [ecx + 8]
cmp eax, 1
mov ecx, dword [esp + 0x94]
cmova ecx, eax
mov eax, dword [esp + 0x1d8]
mov dword [esp + 0x18c], ecx
or dl, 1
mov ecx, dword [esp + 0x2c]
shl ecx, 8
xor ecx, eax
and ecx, 0xff00
xor eax, ecx
mov ecx, dword [esp + 0x1d0]
mov dword [esp + 0x1d8], eax
mov eax, ecx
xor eax, dword [esp + 0x70]
movzx eax, al
xor ecx, eax
mov al, byte [esp + 0x11c]
mov dword [esp + 0x1d0], ecx
mov cl, byte [esp + 0x1ea]
shl al, 4
and cl, 0xef
or cl, al
cmp dword [esp + 0x28], 0
mov eax, dword [esp + 0xfc]
mov byte [esp + 0x15], cl
mov ecx, 0xffffffc8
mov dword [esp + 0x238], eax
mov eax, esi
je 0x101ed54e
movups xmm0, xmmword [esi - 0x38]
movups xmmword [esp + 0x28c], xmm0
movups xmm0, xmmword [esi - 0x28]
jmp 0x101ed559
xorps xmm0, xmm0
movups xmmword [esp + 0x28c], xmm0
add eax, ecx
mov cl, byte [esp + 0x1e9]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x24]
shr eax, 0xb
mov dword [esp + 0x5c], eax
shl al, 4
xor al, cl
and al, 0x10
xor cl, al
mov eax, dword [esp + 0x2fc]
mov byte [esp + 0x1e9], cl
mov ecx, dword [esp + 0x84]
shl ecx, 4
xor ecx, eax
and ecx, 0xff0
xor eax, ecx
mov ecx, dword [esp + 0x1d4]
mov dword [esp + 0x2fc], eax
mov eax, ecx
xor eax, dword [esp + 0x6c]
movzx eax, al
xor ecx, eax
mov dword [esp + 0x1d4], ecx
mov ecx, dword [esp + 0x24]
mov eax, ecx
shr eax, 7
shl al, 2
xor al, dl
shr ecx, 0xc
and al, 4
shl cl, 5
xor dl, al
mov al, byte [esp + 0x300]
xor cl, al
mov byte [esp + 0x1e6], dl
and cl, 0x20
xor al, cl
mov byte [esp + 0x300], al
mov eax, dword [esp + 0x20]
movups xmmword [esp + 0x29c], xmm0
mov eax, dword [eax + 0x10]
cmp dword [eax + 0x2d0], 0x1100
jb 0x101ed629
mov ecx, dword [esp + 0x24]
mov al, byte [esp + 0x302]
shr ecx, 0x1f
and al, 0xfd
add cl, cl
or cl, al
mov byte [esp + 0x302], cl
cmp byte [esp + 0x1d0], 0x33
mov dh, byte [esp + 0x1e4]
je 0x101ed644
or dh, 0x20
mov byte [esp + 0x1e4], dh
cmp dword [esp + 0x28], 0
je 0x101ed679
mov eax, dword [esp + 0x68]
cmp dword [eax], 0
je 0x101ed679
movups xmm0, xmmword [esi]
movups xmmword [esp + 0x19c], xmm0
movups xmm0, xmmword [esi + 0x10]
movups xmmword [esp + 0x1ac], xmm0
movq xmm0, qword [esi + 0x20]
movq qword [esp + 0x1bc], xmm0
mov eax, dword [esp + 0x70]
mov ecx, 1
mov dword [esp + 0x248], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x24c], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x278], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x240], ecx
mov dword [esp + 0x27c], eax
test byte [esp + 0x5c], cl
je 0x101ed706
or dl, 4
mov ecx, 0x8001
cmp dword [esp + 0x28], 0
mov dword [esp + 0x240], ecx
mov byte [esp + 0x1e6], dl
je 0x101ed6fa
mov ecx, dword [esi - 4]
mov eax, dword [esi - 8]
mov dword [esp + 0x1c8], ecx
mov ecx, dword [esp + 0x240]
mov dword [esp + 0x1c4], eax
jmp 0x101ed706
xorps xmm0, xmm0
movlpd qword [esp + 0x1c4], xmm0
test byte [esp + 0x108], 4
je 0x101ed727
or ecx, 0x1000000
and dh, 0xdf
mov dword [esp + 0x240], ecx
mov byte [esp + 0x1e4], dh
mov edx, dword [esp + 0x18]
cmp dword [edx + 0x1040], 0
je 0x101ed73c
or byte [esp + 0x1e9], 0x40
mov eax, dword [esp + 0x120]
mov cl, byte [esp + 0x15]
mov esi, dword [edx + 0xf7c]
mov edx, 4
shr eax, 3
add al, al
xor al, cl
and al, 2
xor cl, al
lea eax, [esp + 0x178]
mov byte [esp + 0x1ea], cl
xor ecx, ecx
cmp dword [esp + 0xd4], 4
push eax
sete cl
xor eax, eax
cmp dword [esp + 0xd8], 3
cmove eax, edx
lea ecx, [ecx*2 + 1]
or ecx, eax
push ecx
lea ecx, [esi + 0x13c0]
call fcn.101341d0
mov al, byte [esp + 0x1e8]
mov ecx, dword [esi + 0x12c8]
or al, 0x48
mov byte [esp + 0x1e8], al
test ecx, ecx
je 0x101ed7cc
cmp dword [ecx + 0x1838], 0x57ad
jne 0x101ed7cc
and al, 0x3f
or al, 0x80
mov byte [esp + 0x1e8], al
mov esi, dword [esp + 0x74]
lea eax, [esp + 0x178]
push eax
mov ecx, esi
call fcn.1009ed20
test al, al
je 0x101ed971
mov eax, dword [esp + 0x28]
test eax, eax
je 0x101ed7f8
cmp dword [eax], 0
jne 0x101ed876
test byte [esp + 0x1e7], 0x20
jne 0x101ed876
test byte [esp + 0x1ea], 2
jne 0x101ed816
test byte [esp + 0x1e9], 8
je 0x101ed876
mov ecx, dword [esp + 0x20]
cmp byte [ecx + 8], 0
jne 0x101ed82c
call fcn.10450c0b
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x10]
mov eax, dword [eax + 0xbe2c]
cmp dword [eax + 0xfec], 0
je 0x101ed876
cmp byte [ecx + 8], 0
jne 0x101ed853
call fcn.10450c0b
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx + 0x10]
push esi
mov eax, dword [eax + 0xbe2c]
mov ecx, dword [eax + 0xfec]
call fcn.100f4830
test al, al
je 0x101ed876
mov ecx, esi
call fcn.1009f3e0
mov ecx, dword [esp + 0x18]
mov eax, dword [esi]
push dword [ecx + 0xf7c]
mov ecx, esi
call dword [eax + 0x20]
mov eax, dword [edi + 0x18]
mov edx, dword [esp + 0x48]
shr eax, 4
cmp edx, eax
jae 0x101ed8e7
mov eax, dword [edi + 0x14]
mov ecx, dword [eax + edx*4]
test ecx, ecx
je 0x101ed8de
mov eax, dword [ecx + 0x10]
add eax, eax
sar eax, 0x1c
cmp eax, 1
je 0x101ed8ba
test eax, eax
je 0x101ed8ba
cmp eax, 2
je 0x101ed8ba
cmp eax, 5
jne 0x101ed8c5
xor eax, eax
mov eax, ecx
mov dword [eax + 0x18], 0
mov eax, dword [edi + 0x14]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi + 0x14]
mov edx, dword [esp + 0x48]
mov dword [eax + edx*4], 0
inc dword [esi + 4]
mov eax, dword [edi + 0x14]
mov dword [eax + edx*4], esi
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x30]
inc eax
mov esi, dword [esp + 0xc0]
add ecx, 0x18
add esi, 0x70
mov dword [esp + 0x48], eax
mov dword [esp + 0x30], ecx
mov dword [esp + 0xc0], esi
cmp eax, dword [esp + 0x4c]
jb 0x101ed360
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x50]
cmp dword [esi + 0x1040], 0
je 0x101ed938
mov dword [esi + 0x1040], 0
mov ecx, dword [esp + 0x154]
mov dword [ecx], edi
test eax, eax
jne 0x101ee7af
test edi, edi
je 0x101ee820
cmp dword [esp + 0x114], 1
mov dword [edi + 0xc], esi
mov edi, dword [esp + 0x50]
jne 0x101ee82f
mov eax, dword [ecx]
or dword [eax + 0x18], 4
jmp 0x101ee82f
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x74]
mov esi, dword [eax + 8]
test esi, esi
mov eax, 0x8007000e
cmovns esi, eax
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, edi
call fcn.101c0c00
mov ecx, esi
jmp 0x101ee828
mov ecx, edi
call fcn.101c0c00
call fcn.1027e6c0
push eax
lea eax, [esp + 0x8a4]
mov dword [esp + 0x8b4], 1
xorps xmm0, xmm0
mov ecx, 0x8007000e
push eax
movaps xmmword [esp + 0x8a8], xmm0
call fcn.1027e560
mov edi, 0x8007000e
jmp 0x101ee82f
mov edx, dword [esp + 0xa0]
cmp byte [esp + 0x16], 0
je 0x101edc6c
test eax, 0x800
je 0x101eda33
test byte [esp + 0x100], 0x80
jne 0x101eda33
call fcn.1027e6c0
push eax
lea eax, [esp + 0x8a4]
mov dword [esp + 0x8b4], 0
xorps xmm0, xmm0
mov ecx, 0x8876086a
push eax
movups xmmword [esp + 0x8a8], xmm0
call fcn.1027e560
mov edi, 0x8876086a
jmp 0x101ee82f
push dword [esp + 0x54]
mov edi, dword [esp + 0x50]
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x44]
mov edx, edi
push eax
call fcn.101c0b40
test eax, eax
js 0x101ee826
lea eax, [esp + 0x9c]
mov ecx, esi
push eax
lea eax, [esp + 0x6c]
push eax
lea eax, [esp + 0x88]
push eax
lea edx, [esp + 0xdc]
call fcn.101e9530
mov dword [esp + 0x50], eax
test eax, eax
jns 0x101edabf
mov ecx, dword [esp + 0x1c]
call fcn.101c0c00
call fcn.1027e6c0
push eax
lea eax, [esp + 0x8a4]
mov dword [esp + 0x8b4], 0
xorps xmm0, xmm0
mov ecx, 0x88760818
push eax
movups xmmword [esp + 0x8a8], xmm0
call fcn.1027e560
mov edi, 0x88760818
jmp 0x101ee82f
mov ecx, dword [esp + 0x80]
cmp ecx, 0x42
jne 0x101edb0c
mov ecx, dword [esp + 0x1c]
call fcn.101c0c00
call fcn.1027e6c0
push eax
lea eax, [esp + 0x8a4]
mov dword [esp + 0x8b4], 0
xorps xmm0, xmm0
mov ecx, 0x80004005
push eax
movups xmmword [esp + 0x8a8], xmm0
call fcn.1027e560
mov edi, 0x80004005
jmp 0x101ee82f
mov dword [esp + 0x48], 0
mov dword [esp + 0x2c], 0
test edi, edi
je 0x101ed01a
mov edx, dword [esp + 0x28]
mov eax, edx
mov edi, dword [esp + 0x1c]
mov dword [esp + 0x60], eax
lea esi, [esp + 0x48]
push esi
push edi
push dword [esp + 0x124]
mov esi, dword [esp + 0x24]
push dword [esp + 0x74]
push dword [esp + 0x94]
push dword [esp + 0x124]
push dword [esp + 0x94]
push dword [esp + 0xb8]
push ecx
xor ecx, ecx
test edx, edx
lea edx, [esp + 0xf4]
cmove eax, ecx
mov ecx, esi
push eax
push dword [esp + 0x58]
call fcn.101e7690
mov dword [esp + 0x50], eax
test eax, eax
js 0x101edc48
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
mov eax, dword [esi]
push dword [ecx + 0xf7c]
mov ecx, esi
call dword [eax + 0x20]
mov eax, dword [edi + 0x18]
mov ecx, dword [esp + 0x2c]
shr eax, 4
cmp ecx, eax
jae 0x101edc06
mov eax, dword [edi + 0x14]
shl ecx, 2
mov dword [esp + 0x5c], ecx
mov edx, dword [ecx + eax]
test edx, edx
je 0x101edbfd
mov eax, dword [edx + 0x10]
add eax, eax
sar eax, 0x1c
cmp eax, 1
je 0x101edbd9
test eax, eax
je 0x101edbd9
cmp eax, 2
je 0x101edbd9
cmp eax, 5
jne 0x101edbe4
xor eax, eax
mov eax, edx
mov dword [eax + 0x18], 0
mov eax, dword [edi + 0x14]
mov ecx, dword [ecx + eax]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi + 0x14]
mov ecx, dword [esp + 0x5c]
mov dword [ecx + eax], 0
inc dword [esi + 4]
mov eax, dword [edi + 0x14]
mov dword [ecx + eax], esi
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x60]
inc esi
add dword [esp + 0x30], 0x18
add eax, 0x70
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x48], 0
mov dword [esp + 0x2c], esi
mov dword [esp + 0x60], eax
cmp esi, dword [esp + 0x4c]
jb 0x101edb32
jmp 0x101ed91d
mov esi, dword [esi + 8]
mov eax, 0x8007000e
mov ecx, dword [esp + 0x48]
test esi, esi
cmovns esi, eax
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, edi
call fcn.101c0c00
mov ecx, esi
jmp 0x101ee828
test eax, 0x80000
je 0x101edd88
push dword [esp + 0x54]
mov edx, dword [esp + 0x50]
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x44]
push eax
call fcn.101c0b40
mov edi, eax
mov dword [esp + 0x50], edi
test edi, edi
js 0x101edd81
xor eax, eax
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x4c], eax
jbe 0x101ed01a
mov edi, dword [esp + 0x1c]
nop
push edi
lea ecx, [esp + 0x64]
mov dword [esp + 0x64], 0
push ecx
push eax
push dword [esp + 0x34]
lea edx, [esp + 0xe0]
mov ecx, esi
call fcn.101e8900
mov esi, eax
mov dword [esp + 0x50], esi
test esi, esi
js 0x101ed98b
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x18]
mov eax, dword [esi]
push dword [ecx + 0xf7c]
mov ecx, esi
call dword [eax + 0x20]
mov eax, dword [edi + 0x18]
mov ecx, dword [esp + 0x2c]
shr eax, 4
cmp ecx, eax
jae 0x101edd5b
mov eax, dword [edi + 0x14]
shl ecx, 2
mov dword [esp + 0x68], ecx
mov edx, dword [ecx + eax]
test edx, edx
je 0x101edd52
mov eax, dword [edx + 0x10]
add eax, eax
sar eax, 0x1c
cmp eax, 1
je 0x101edd2e
test eax, eax
je 0x101edd2e
cmp eax, 2
je 0x101edd2e
cmp eax, 5
jne 0x101edd39
xor eax, eax
mov eax, edx
mov dword [eax + 0x18], 0
mov eax, dword [edi + 0x14]
mov ecx, dword [ecx + eax]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi + 0x14]
mov ecx, dword [esp + 0x68]
mov dword [ecx + eax], 0
inc dword [esi + 4]
mov eax, dword [edi + 0x14]
mov dword [ecx + eax], esi
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x18]
inc eax
mov dword [esp + 0x2c], eax
cmp eax, dword [esp + 0xe4]
jb 0x101edcb0
jmp 0x101ed921
mov ecx, edi
jmp 0x101ee828
test eax, 0x100000
je 0x101edfdf
test eax, 0x800
je 0x101edddb
cmp dword [esi + 0x1040], 0
jne 0x101edddb
call fcn.1027e6c0
push eax
lea eax, [esp + 0x8a4]
mov dword [esp + 0x8b4], 0
xorps xmm0, xmm0
mov ecx, 0x8876086a
push eax
movups xmmword [esp + 0x8a8], xmm0
call fcn.1027e560
mov edi, 0x8876086a
jmp 0x101ee82f
push dword [esp + 0x54]
mov edx, dword [esp + 0x50]
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x44]
push eax
call fcn.101c0b40
mov edi, eax
mov dword [esp + 0x50], edi
test edi, edi
js 0x101edd81
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x2c], 0
jbe 0x101ed01a
mov eax, dword [esp + 0x28]
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x74], eax
nop
cmp dword [ecx], 0
je 0x101edfa0
push 0x10
push 0x300
call fcn.10434a32
add esp, 8
test eax, eax
je 0x101edf8f
push edi
mov ecx, eax
call fcn.10072340
mov esi, eax
mov dword [esp + 0x68], esi
test esi, esi
je 0x101edf8f
test byte [esp + 0x100], 4
je 0x101ede64
or byte [esi + 0x1c], 8
cmp dword [esp + 0x28], 0
lea eax, [esp + 0x8a0]
xorps xmm0, xmm0
mov ecx, esi
cmovne eax, dword [esp + 0x74]
sub esp, 8
movaps xmmword [esp + 0x8a8], xmm0
movaps xmmword [esp + 0x8b8], xmm0
push eax
lea eax, [esp + 0xdc]
push eax
mov eax, dword [esp + 0x40]
push dword [eax]
call fcn.10072540
test al, al
je 0x101edf67
mov edx, dword [esp + 0x18]
mov al, byte [esi + 0x1d]
mov ecx, dword [edx + 0x1040]
neg ecx
sbb cl, cl
and al, 0xf7
and cl, 8
or cl, al
mov eax, dword [esi]
mov byte [esi + 0x1d], cl
mov ecx, esi
push dword [edx + 0xf7c]
call dword [eax + 0x20]
mov eax, dword [edi + 0x18]
mov ecx, dword [esp + 0x2c]
shr eax, 4
cmp ecx, eax
jae 0x101edf38
mov eax, dword [edi + 0x14]
shl ecx, 2
mov dword [esp + 0x68], ecx
mov edx, dword [ecx + eax]
test edx, edx
je 0x101edf2f
mov eax, dword [edx + 0x10]
add eax, eax
sar eax, 0x1c
cmp eax, 1
je 0x101edf0b
test eax, eax
je 0x101edf0b
cmp eax, 2
je 0x101edf0b
cmp eax, 5
jne 0x101edf16
xor eax, eax
mov eax, edx
mov dword [eax + 0x18], 0
mov eax, dword [edi + 0x14]
mov ecx, dword [ecx + eax]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi + 0x14]
mov ecx, dword [esp + 0x68]
mov dword [ecx + eax], 0
inc dword [esi + 4]
mov eax, dword [edi + 0x14]
mov dword [ecx + eax], esi
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
inc eax
add dword [esp + 0x74], 0x70
add ecx, 0x18
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
cmp eax, dword [esp + 0x4c]
jb 0x101ede20
jmp 0x101ed91d
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x68]
mov esi, dword [eax + 8]
mov eax, 0x8007000e
test esi, esi
cmovns esi, eax
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, edi
call fcn.101c0c00
mov ecx, esi
jmp 0x101ee828
mov ecx, edi
call fcn.101c0c00
mov ecx, 0x8007000e
jmp 0x101ee828
mov ecx, edi
call fcn.101c0c00
call fcn.1027e6c0
push eax
lea eax, [esp + 0x8a4]
mov dword [esp + 0x8b4], 2
xorps xmm0, xmm0
mov ecx, 0x80070057
push eax
movaps xmmword [esp + 0x8a8], xmm0
call fcn.1027e560
mov edi, 0x80070057
jmp 0x101ee82f
test eax, 0x100077c
je 0x101ee1c0
test eax, 0x600000
jne 0x101ee1c0
test eax, 0x2000
je 0x101ee03e
cmp edx, 0x15
je 0x101ee1c0
cmp edx, 0x16
je 0x101ee1c0
cmp edx, 0x32595559
je 0x101ee1c0
cmp edx, 0x59565955
je 0x101ee1c0
cmp edx, 0x3231564e
je 0x101ee1c0
cmp edx, 0x30313050
je 0x101ee1c0
test eax, 0x800000
jne 0x101ee1c0
cmp byte [esp + 0x17], 0
je 0x101ee1ae
push dword [esp + 0x54]
mov edx, dword [esp + 0x50]
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x44]
push eax
call fcn.101c0b40
mov edi, eax
mov dword [esp + 0x50], edi
test edi, edi
js 0x101edd81
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x2c], 0
jbe 0x101ed01a
mov edx, dword [esp + 0x28]
xor eax, eax
mov edi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x80], eax
mov dword [esp + 0x58], edx
push edi
sub esp, 8
mov dword [esp + 0x6c], 0
add ecx, eax
lea eax, [esp + 0x6c]
push 0
push eax
mov eax, edx
xor edx, edx
cmp dword [esp + 0x3c], edx
cmove eax, edx
lea edx, [esp + 0xe4]
push eax
push ecx
mov ecx, esi
call fcn.101e7a80
mov esi, eax
mov dword [esp + 0x50], esi
test esi, esi
js 0x101ed98b
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x18]
or byte [esi + 0x1ae], 1
mov eax, dword [esi]
push dword [ecx + 0xf7c]
mov ecx, esi
call dword [eax + 0x20]
mov eax, dword [edi + 0x18]
mov ecx, dword [esp + 0x2c]
shr eax, 4
cmp ecx, eax
jae 0x101ee165
mov eax, dword [edi + 0x14]
shl ecx, 2
mov dword [esp + 0x68], ecx
mov edx, dword [ecx + eax]
test edx, edx
je 0x101ee15c
mov eax, dword [edx + 0x10]
add eax, eax
sar eax, 0x1c
cmp eax, 1
je 0x101ee138
test eax, eax
je 0x101ee138
cmp eax, 2
je 0x101ee138
cmp eax, 5
jne 0x101ee143
xor eax, eax
mov eax, edx
mov dword [eax + 0x18], 0
mov eax, dword [edi + 0x14]
mov ecx, dword [ecx + eax]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi + 0x14]
mov ecx, dword [esp + 0x68]
mov dword [ecx + eax], 0
inc dword [esi + 4]
mov eax, dword [edi + 0x14]
mov dword [ecx + eax], esi
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x80]
inc esi
mov edx, dword [esp + 0x58]
add eax, 0x18
add edx, 0x70
mov dword [esp + 0x2c], esi
cmp esi, dword [esp + 0xe4]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x80], eax
mov dword [esp + 0x58], edx
jae 0x101ed921
mov ecx, dword [esp + 0xe0]
jmp 0x101ee0a4
mov edi, dword [esp + 0x1c]
mov eax, 0x80004005
mov dword [esp + 0x50], eax
jmp 0x101ed925
mov edx, dword [ecx + 0x10]
xor edi, edi
mov ecx, dword [esi + 0x11a4]
mov byte [esp + 0x14], 0
mov eax, dword [edx + 0x168]
and eax, 0xff
test ecx, ecx
je 0x101ee1ec
cmp byte [ecx + 4], 0
je 0x101ee1ec
mov cl, 1
jmp 0x101ee1ee
xor cl, cl
cmp byte [0x11d0c76e], 0
je 0x101ee25d
test cl, cl
je 0x101ee200
cmp eax, 0x13
je 0x101ee25d
test dword [esp + 0x24], 0x800
je 0x101ee25d
cmp dword [esp + 0x4c], 1
jne 0x101ee25d
mov eax, dword [edx + 0x158]
cmp eax, 0x10c4
je 0x101ee248
cmp eax, 0xa73
je 0x101ee248
cmp eax, 0xa75
je 0x101ee248
cmp eax, 0xa76
je 0x101ee248
cmp eax, 0xa64
je 0x101ee248
cmp eax, 0xa6f
je 0x101ee248
mov byte [esp + 0x14], 0
jmp 0x101ee25d
mov al, 1
mov byte [esp + 0x14], al
cmp dword [esp + 0x28], edi
jne 0x101ee25d
mov edi, 1
mov byte [esp + 0x14], al
push dword [esp + 0x54]
mov edx, dword [esp + 0x50]
lea eax, [esp + 0x20]
mov ecx, dword [esp + 0x44]
add edx, edi
push eax
call fcn.101c0b40
mov dword [esp + 0x50], eax
test eax, eax
js 0x101ee826
cmp byte [esp + 0x14], 0
mov edi, dword [esp + 0x1c]
mov byte [esp + 0x15], 0
mov byte [esp + 0x2c], 0
je 0x101ee2e4
push edi
push dword [esp + 0x2c]
lea edx, [esp + 0xd8]
mov ecx, esi
call fcn.101ef130
mov edx, dword [esp + 0x28]
test al, al
mov byte [esp + 0x15], al
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x50]
je 0x101ee2e8
movzx ecx, byte [esp + 0x2c]
test edx, edx
cmove ecx, dword [esp + 0x94]
mov byte [esp + 0x2c], cl
jmp 0x101ee2e8
mov edx, dword [esp + 0x28]
cmp dword [esp + 0x4c], 0
mov dword [esp + 0x48], 0
jbe 0x101ed925
mov eax, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 0x80], ecx
mov dword [esp + 0x58], edx
nop dword [eax]
push edi
sub esp, 8
mov dword [esp + 0x90], 0
add ecx, eax
lea eax, [esp + 0x90]
push dword [esp + 0x38]
push eax
mov eax, edx
xor edx, edx
cmp dword [esp + 0x3c], edx
cmove eax, edx
lea edx, [esp + 0xe4]
push eax
push ecx
mov ecx, esi
call fcn.101e7a80
mov dword [esp + 0x50], eax
test eax, eax
js 0x101ee72b
mov esi, dword [esp + 0x84]
mov ecx, dword [esp + 0x18]
or byte [esi + 0x1ae], 1
mov eax, dword [esi]
push dword [ecx + 0xf7c]
mov ecx, esi
call dword [eax + 0x20]
mov eax, dword [edi + 0x18]
mov edx, dword [esp + 0x48]
shr eax, 4
cmp edx, eax
jae 0x101ee3d3
mov eax, dword [edi + 0x14]
mov ecx, dword [eax + edx*4]
test ecx, ecx
je 0x101ee3ca
mov eax, dword [ecx + 0x10]
add eax, eax
sar eax, 0x1c
cmp eax, 1
je 0x101ee3a6
test eax, eax
je 0x101ee3a6
cmp eax, 2
je 0x101ee3a6
cmp eax, 5
jne 0x101ee3b1
xor eax, eax
mov eax, ecx
mov dword [eax + 0x18], 0
mov eax, dword [edi + 0x14]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [edi + 0x14]
mov edx, dword [esp + 0x48]
mov dword [eax + edx*4], 0
inc dword [esi + 4]
mov eax, dword [edi + 0x14]
mov dword [eax + edx*4], esi
cmp byte [esp + 0x15], 0
je 0x101ee532
cmp dword [esp + 0x28], 0
jne 0x101ee532
mov eax, dword [esi + 0x20c]
mov eax, dword [eax + 0x18c]
mov eax, dword [eax + 8]
test eax, eax
je 0x101ee4dd
lea esi, [eax + 8]
add eax, 8
je 0x101ee4d6
cmp dword [esi], 0
je 0x101ee4d6
mov eax, dword [esi + 0xc0]
test eax, eax
cmovne esi, eax
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x107c]
mov eax, dword [eax + 0x11d4]
mov dword [esp + 0x60], ecx
cmp byte [ecx + 0x21], 0
mov edi, dword [eax + 4]
je 0x101ee4ba
mov ecx, dword [ecx + edi*4 + 0x830]
cmp dword [esi + edi*4 + 0x9cc], ecx
je 0x101ee475
mov eax, dword [esi + 0xa50]
btr eax, edi
mov dword [esi + 0xa50], eax
mov dword [esi + edi*4 + 0x9cc], ecx
cmp dword [esi + 0xa4c], ecx
jae 0x101ee475
mov dword [esi + 0xa4c], ecx
mov eax, dword [esp + 0x94]
mov ecx, edi
or byte [esi + 0xb1], 0x20
mov edx, dword [esi + 0x9c0]
shl eax, cl
test eax, edx
jne 0x101ee4ba
mov ecx, dword [esp + 0x60]
push 1
push edi
push esi
call fcn.10287930
mov edx, eax
test edx, edx
jns 0x101ee4ba
mov eax, dword [esp + 0x60]
mov dword [eax + edi*4 + 0x17c4], edx
mov ecx, dword [eax + 0x17c0]
mov dword [ecx + 8], edx
jmp 0x101ee4d6
mov eax, dword [esp + 0x18]
mov ecx, dword [esi + 0xa50]
mov eax, dword [eax + 0x11d4]
mov eax, dword [eax + 4]
bts ecx, eax
mov dword [esi + 0xa50], ecx
mov esi, dword [esp + 0x84]
mov eax, dword [esp + 0x18]
mov ecx, dword [eax + 0x11d4]
test byte [ecx + 0x605], 4
jne 0x101ee512
mov eax, dword [esi + 0x20c]
push 0
push 3
mov eax, dword [eax + 0x18c]
mov edx, dword [eax + 8]
lea eax, [edx + 8]
neg edx
sbb edx, edx
and edx, eax
push edx
call fcn.101d3100
mov eax, dword [esp + 0x20]
push 1
push 1
mov eax, dword [eax + 0x10]
mov ecx, dword [eax + 0x7a68]
mov ecx, dword [ecx + 8]
call fcn.101e43f0
mov edi, dword [esp + 0x1c]
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 0x10]
cmp byte [eax + 0x2fe1d], 0
jne 0x101ee6e9
cmp byte [esi + 8], 0
xorps xmm0, xmm0
mov byte [eax + 0x2fe1d], 1
movaps xmmword [esp + 0x8a0], xmm0
mov dword [esp + 0x8b0], 0
jne 0x101ee57b
call fcn.10450c0b
cmp byte [esi + 8], 0
xorps xmm0, xmm0
mov eax, dword [esi + 0x10]
mov eax, dword [eax + 0xbe2c]
mov eax, dword [eax + 0x11cc]
mov dword [esp + 0x8a0], eax
lea eax, [esp + 0x7b8]
mov dword [esp + 0x8a8], eax
mov dword [esp + 0x8ac], 0x38
movlpd qword [esp + 0x7cc], xmm0
mov dword [esp + 0x7d4], 0
movlpd qword [esp + 0x7dc], xmm0
movlpd qword [esp + 0x7e4], xmm0
mov dword [esp + 0x7ec], 0
mov dword [esp + 0x7b8], 0x4e564441
mov dword [esp + 0x7bc], 0x10002
mov dword [esp + 0x7c0], 0x38
mov dword [esp + 0x7c4], 0x4e564458
mov dword [esp + 0x7d8], 0
mov dword [esp + 0x7c8], 0x2000012
jne 0x101ee631
call fcn.10450c0b
mov eax, dword [esi + 0x10]
lea ecx, [esp + 0x8a0]
push ecx
mov ecx, dword [eax + 0xbe2c]
call fcn.101d20e0
mov esi, eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 0x2fe20]
test edx, edx
je 0x101ee689
mov ecx, dword [esp + 0x7ec]
mov dword [edx + 4], ecx
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x7e8]
mov ecx, dword [ecx + 0x2fe20]
mov dword [ecx], eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x10]
test esi, esi
jne 0x101ee69e
cmp dword [esp + 0x7e4], 1
jne 0x101ee69e
mov byte [ecx + 0x2fe1e], 1
mov esi, dword [esp + 0x20]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x2fe28]
test ecx, ecx
je 0x101ee6e9
lea edx, [esp + 0x68]
mov dword [esp + 0x68], 4
push edx
add eax, 0x2fe2c
push eax
push 0
push 0
push 0x1046cfa0
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
je 0x101ee6e9
mov eax, dword [esi + 0x10]
mov dword [eax + 0x2fe2c], 0
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x80]
inc eax
mov edx, dword [esp + 0x58]
add ecx, 0x18
mov esi, dword [esp + 0x18]
add edx, 0x70
mov dword [esp + 0x48], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x58], edx
cmp eax, dword [esp + 0xe4]
jae 0x101ed921
mov eax, dword [esp + 0xe0]
jmp 0x101ee310
mov ecx, edi
call fcn.101c0c00
mov edi, dword [esp + 0x20]
mov eax, dword [edi + 0x10]
cmp byte [eax + 0x30688], 0
je 0x101ee79c
mov byte [eax + 0x30688], 0
xor esi, esi
mov eax, dword [edi + 0x10]
cmp byte [eax + 0x30689], 0
jne 0x101ee76d
mov esi, eax
mov eax, dword [eax + 0x30690]
mov eax, dword [eax]
mov dword [edi + 0x10], eax
mov ecx, dword [eax + 0x30694]
test ecx, ecx
je 0x101ee782
push 0
push 0
push 1
call fcn.101c0cf0
mov eax, dword [edi + 0x10]
mov dword [eax + 0x30694], 0
test esi, esi
je 0x101ee79c
mov dword [edi + 0x10], esi
mov ecx, dword [esp + 0x50]
mov dword [0x11d0c770], 0
jmp 0x101ee828
mov edi, dword [esp + 0x50]
test edi, edi
jns 0x101ee82f
call fcn.1027e6c0
mov dword [esp + 0x150], 0
xorps xmm0, xmm0
movups xmmword [esp + 0x140], xmm0
cmp edi, 0x8007000e
je 0x101ee803
cmp edi, 0x80070057
jne 0x101ee80e
push eax
lea eax, [esp + 0x144]
mov dword [esp + 0x154], 2
push eax
mov ecx, edi
call fcn.1027e560
jmp 0x101ee82f
mov dword [esp + 0x150], 1
push eax
lea eax, [esp + 0x144]
mov ecx, edi
push eax
call fcn.1027e560
jmp 0x101ee82f
mov edi, dword [esp + 0x50]
jmp 0x101ee82f
mov ecx, eax
call fcn.101a5400
mov edi, eax
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x101ee850
test dword [esp + 0x118], 0x40000000
je 0x101ee850
push eax
call fcn.10450877
add esp, 4
mov ecx, dword [esp + 0x8cc]
mov eax, edi
pop edi
pop esi
xor ecx, esp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 8