Function at 0x10207da0
Capabilities:
Get installed programs
Query or enumerate registry value
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xd84
mov eax, dword [0x11ad127c]
xor eax, esp
mov dword [esp + 0xd80], eax
mov al, byte [ebp + 8]
push ebx
mov ebx, ecx
mov byte [esp + 0xa], al
push esi
movss xmm1, dword [0x1122d240]
movaps xmm4, xmm1
mov dword [esp + 0x1fc], 0
mov esi, dword [ebx + 0x730]
movaps xmm3, xmm1
mov edx, dword [ebx + 0x734]
mov eax, esi
shr eax, 0x1f
push edi
movd xmm0, esi
cvtdq2pd xmm0, xmm0
mov dword [esp + 0x204], 0
mov dword [esp + 0x224], 0
mov dword [esp + 0x260], 0
mov dword [esp + 0x280], 0
mov dword [esp + 0x284], 0
mov dword [esp + 0x28c], 0
addsd xmm0, qword [eax*8 + 0x1122e340]
mov eax, edx
mov dword [esp + 0x294], 0
shr eax, 0x1f
cvtpd2ps xmm5, xmm0
movd xmm0, edx
cvtdq2pd xmm0, xmm0
movss dword [esp + 0x220], xmm5
addsd xmm0, qword [eax*8 + 0x1122e340]
lea eax, [esi*2 - 2]
movss dword [esp + 0x240], xmm5
cvtpd2ps xmm6, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movss dword [esp + 0x244], xmm6
addsd xmm0, qword [eax*8 + 0x1122e340]
lea eax, [edx*2 - 2]
movss dword [esp + 0x264], xmm6
cvtpd2ps xmm0, xmm0
divss xmm4, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
movaps xmm2, xmm4
movss dword [esp + 0x208], xmm4
addsd xmm0, qword [eax*8 + 0x1122e340]
addss xmm2, xmm1
movss dword [esp + 0x210], xmm4
movss dword [esp + 0x218], xmm4
movss dword [esp + 0x268], xmm4
movss dword [esp + 0x270], xmm4
cvtpd2ps xmm0, xmm0
movss dword [esp + 0x228], xmm2
divss xmm3, xmm0
movss dword [esp + 0x230], xmm2
movaps xmm0, xmm3
movss dword [esp + 0x20c], xmm3
addss xmm0, xmm1
movss dword [esp + 0x214], xmm3
movss dword [esp + 0x21c], xmm3
movss dword [esp + 0x22c], xmm3
movss dword [esp + 0x234], xmm3
movss dword [esp + 0x238], xmm2
movss dword [esp + 0x23c], xmm3
movss dword [esp + 0x248], xmm2
movss dword [esp + 0x24c], xmm0
movss dword [esp + 0x250], xmm2
movss dword [esp + 0x254], xmm0
movss dword [esp + 0x258], xmm2
movss dword [esp + 0x25c], xmm0
movss dword [esp + 0x26c], xmm0
movss dword [esp + 0x274], xmm0
movss dword [esp + 0x278], xmm4
movss dword [esp + 0x27c], xmm0
movss dword [esp + 0x288], xmm4
movss dword [esp + 0x290], xmm4
movss dword [esp + 0x298], xmm4
movss dword [esp + 0x29c], xmm3
test dword [ebx + 4], 0x2000000
movss dword [esp + 0x2a0], xmm5
mov dword [esp + 0x2a4], 0
movss dword [esp + 0x2a8], xmm2
mov dword [esp + 0x2ac], 0
movss dword [esp + 0x2b0], xmm2
mov dword [esp + 0x2b4], 0
movss dword [esp + 0x2b8], xmm2
movss dword [esp + 0x2bc], xmm3
movss dword [esp + 0x2c0], xmm5
movss dword [esp + 0x2c4], xmm6
movss dword [esp + 0x2c8], xmm2
mov dword [esp + 0x2cc], 0x3f800000
movss dword [esp + 0x2d0], xmm2
mov dword [esp + 0x2d4], 0x3f800000
movss dword [esp + 0x2d8], xmm2
movss dword [esp + 0x2dc], xmm0
mov dword [esp + 0x2e0], 0
movss dword [esp + 0x2e4], xmm6
movss dword [esp + 0x2e8], xmm4
mov dword [esp + 0x2ec], 0x3f800000
movss dword [esp + 0x2f0], xmm4
mov dword [esp + 0x2f4], 0x3f800000
movss dword [esp + 0x2f8], xmm4
movss dword [esp + 0x2fc], xmm0
je 0x102080ec
mov eax, dword [ebx + 0x3768]
cmp eax, 0xff00ff
je 0x102080e5
cmp eax, 0xff00ff00
jne 0x102080ec
mov byte [esp + 0x13], 1
jmp 0x102080f1
mov byte [esp + 0x13], 0
test byte [ebx + 0xab], 2
je 0x10208122
mov eax, dword [0x11d0c5b8]
mov ecx, dword fs:[0x2c]
mov eax, dword [ecx + eax*4]
mov eax, dword [eax + 0x10]
cmp dword [eax + 0xd590], 0
je 0x10208122
mov dword [ebx + 0x3748], 0
cmp dword [ebx + 0xec], 0x20
jne 0x10208221
test byte [ebx + 0xa4], 8
jne 0x1020817c
push 0x9c
lea eax, [esp + 0xc84]
push 0
push eax
call fcn.10425c00
add esp, 0xc
mov eax, 0x9c
mov word [esp + 0xca4], ax
lea eax, [esp + 0xc80]
push eax
push 0xffffffffffffffff
push 0
call dword [sym.imp.USER32.dll_EnumDisplaySettingsA]
mov edx, dword [esp + 0xcf0]
mov esi, dword [esp + 0xcec]
test dword [ebx + 4], 0x2000000
je 0x102081c0
mov eax, dword [ebx + 0x3770]
cmp eax, 0xff00ff
je 0x10208199
cmp eax, 0xff00ff00
jne 0x102081c0
mov ecx, dword [ebx + 0x964]
test ecx, ecx
je 0x102081c0
sub ecx, edx
test cl, 2
je 0x102081c0
not eax
mov dword [ebx + 0x3768], eax
mov eax, dword [ebx + 0x3774]
not eax
mov dword [ebx + 0x376c], eax
test byte [ebx + 0xa8], 8
je 0x10208221
mov ecx, dword [ebx + 0x964]
test ecx, ecx
je 0x10208221
mov eax, dword [ebx + 0x960]
test eax, eax
je 0x10208221
sub eax, esi
sub ecx, edx
shr eax, 1
shr ecx, 1
add eax, ecx
test al, 1
je 0x10208221
cmp dword [ebx + 0x3774], 0xaa55aa55
jne 0x1020820d
mov dword [ebx + 0x3768], 0x55aa55aa
mov dword [ebx + 0x376c], 0x55aa55aa
jmp 0x10208221
mov dword [ebx + 0x376c], 0xaa55aa55
mov dword [ebx + 0x3768], 0xaa55aa55
xor eax, eax
mov dword [esp + 0x40], 0
mov dword [esp + 0x54], eax
lea ecx, [esp + 0xa0]
mov dword [esp + 0x44], eax
xorps xmm0, xmm0
or eax, 0x80040
movlpd qword [esp + 0x30], xmm0
mov dword [esp + 0x58], eax
lea eax, [esp + 0x28]
push eax
push dword [ebx]
movlpd qword [esp + 0x50], xmm0
mov dword [esp + 0x58], 0
movlpd qword [esp + 0xb0], xmm0
movlpd qword [esp + 0xb8], xmm0
mov dword [ebx + 0x720], 0x20
mov dword [esp + 0xa8], 0x80
mov dword [esp + 0xac], 1
mov dword [esp + 0x30], 0x64
mov dword [esp + 0x34], 2
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], 1
mov dword [esp + 0x64], 1
call fcn.1019b910
test eax, eax
js 0x10208352
mov eax, dword [esp + 0x54]
xorps xmm0, xmm0
mov dword [ebx + 0x710], eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push eax
push dword [ebx]
movlpd qword [esp + 0x58], xmm0
or dword [esp + 0x5c], 0x10
movlpd qword [esp + 0x34], xmm0
movlpd qword [esp + 0x40], xmm0
movlpd qword [esp + 0x48], xmm0
movlpd qword [esp + 0x50], xmm0
mov dword [esp + 0x3c], 0x80
call fcn.10199b40
test eax, eax
js 0x10208352
cmp byte [esp + 0x13], 0
lea eax, [esp + 0x280]
mov edi, dword [esp + 0x48]
lea esi, [esp + 0x200]
cmovne esi, eax
mov ecx, 0x20
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x710]
xorps xmm0, xmm0
mov dword [esp + 0x28], eax
lea eax, [esp + 0x28]
push eax
push dword [ebx]
movlpd qword [esp + 0x34], xmm0
call fcn.1019a6a0
jmp 0x10208360
or byte [ebx + 0xa4], 2
or dword [ebx + 0x6c], 0x200
xor eax, eax
mov word [esp + 0xbc], 1
mov dword [esp + 0xb8], eax
mov dword [esp + 0x2c], eax
lea eax, [esp + 0xb8]
push eax
lea eax, [esp + 0x2c]
mov dword [esp + 0xc2], 9
push eax
push dword [ebx]
mov dword [esp + 0xce], 0x10008
mov dword [esp + 0xd2], 5
mov dword [esp + 0xd6], 0x10010
mov dword [esp + 0xda], 0x105
mov dword [esp + 0xde], 0x10018
mov word [esp + 0xe2], 0x205
mov dword [esp + 0x34], 4
call fcn.1019d090
test eax, eax
js 0x102083ef
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x714], eax
jmp 0x102083fd
or byte [ebx + 0xa4], 2
or dword [ebx + 0x6c], 0x200
mov ecx, 0x141
mov dword [esp + 0x108], 0xffff0104
mov esi, 0x1122da88
mov dword [esp + 0x10c], 0x42
lea edi, [esp + 0x778]
mov dword [esp + 0x110], 0x800f0000
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x114], 0xb0e40000
lea edi, [esp + 0x300]
mov dword [esp + 0x118], 0x42
mov ecx, 0x11e
mov dword [esp + 0x11c], 0x800f0001
mov esi, 0x1122d610
mov dword [esp + 0x120], 0xb0e40001
mov dword [esp + 0x124], 0x42
mov dword [esp + 0x128], 0x800f0002
mov dword [esp + 0x12c], 0xb0e40002
mov dword [esp + 0x130], 0x12
mov dword [esp + 0x134], 0x800f0000
mov dword [esp + 0x138], 0x80e40002
mov dword [esp + 0x13c], 0x80e40000
mov dword [esp + 0x140], 0x80e40001
mov dword [esp + 0x144], 0xffff
mov dword [esp + 0xd8], 0xffff0104
mov dword [esp + 0xdc], 0x42
mov dword [esp + 0xe0], 0x800f0000
mov dword [esp + 0xe4], 0xb0e40000
mov dword [esp + 0xe8], 0x42
mov dword [esp + 0xec], 0x800f0002
mov dword [esp + 0xf0], 0xb0e40002
mov dword [esp + 0xf4], 5
mov dword [esp + 0xf8], 0x800f0000
mov dword [esp + 0xfc], 0x80e40000
mov dword [esp + 0x100], 0x80e40002
mov dword [esp + 0x104], 0xffff
mov dword [esp + 0x148], 0xffff0200
mov dword [esp + 0x14c], 0x5000051
mov dword [esp + 0x150], 0xa00f0000
mov dword [esp + 0x154], 0x3f1c01a3
mov dword [esp + 0x158], 0x3e9e00d2
mov dword [esp + 0x15c], 0x3da7ef9e
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0x200001f
mov dword [esp + 0x168], 0x80000000
mov dword [esp + 0x16c], 0xb0030000
mov dword [esp + 0x170], 0x200001f
mov dword [esp + 0x174], 0x90000000
mov dword [esp + 0x178], 0xa00f0800
mov dword [esp + 0x17c], 0x200001f
mov dword [esp + 0x180], 0x90000000
mov dword [esp + 0x184], 0xa00f0802
mov dword [esp + 0x188], 0x3000042
mov dword [esp + 0x18c], 0x800f0000
mov dword [esp + 0x190], 0xb0e40000
mov dword [esp + 0x194], 0xa0e40800
mov dword [esp + 0x198], 0x3000042
mov dword [esp + 0x19c], 0x800f0001
mov dword [esp + 0x1a0], 0xb0e40000
mov dword [esp + 0x1a4], 0xa0e40802
mov dword [esp + 0x1a8], 0x3000005
mov dword [esp + 0x1ac], 0x80080002
mov dword [esp + 0x1b0], 0x80550000
mov dword [esp + 0x1b4], 0xa0000000
mov dword [esp + 0x1b8], 0x4000004
mov dword [esp + 0x1bc], 0x80010002
mov dword [esp + 0x1c0], 0x80000000
mov dword [esp + 0x1c4], 0xa0550000
mov dword [esp + 0x1c8], 0x80ff0002
mov dword [esp + 0x1cc], 0x4000004
mov dword [esp + 0x1d0], 0x80070000
mov dword [esp + 0x1d4], 0x80aa0000
mov dword [esp + 0x1d8], 0xa0aa0000
mov dword [esp + 0x1dc], 0x80000002
mov dword [esp + 0x1e0], 0x3000005
mov dword [esp + 0x1e4], 0x800f0000
mov dword [esp + 0x1e8], 0x80e40001
mov dword [esp + 0x1ec], 0x80e40000
mov dword [esp + 0x1f0], 0x2000001
mov dword [esp + 0x1f4], 0x800f0800
mov dword [esp + 0x1f8], 0x80e40000
mov dword [esp + 0x1fc], 0xffff
mov eax, dword [ebx + 0x3748]
rep movsd dword es:[edi], dword [esi]
xor esi, esi
xor edi, edi
cmp eax, 1
jne 0x102088d7
mov dword [esp + 0x1c], esi
mov dword [esp + 0x14], esi
test byte [ebx + 0xad], al
je 0x102088af
push 0x105
lea eax, [esp + 0xc84]
push edi
push eax
call fcn.10425c00
add esp, 0xc
mov ecx, 0x1046e2c0
call fcn.10202080
mov edi, eax
test edi, edi
je 0x102087ee
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push 0x1046e2e0
push edi
call esi
push 0x1046e300
push edi
mov dword [esp + 0x28], eax
call esi
mov esi, eax
mov eax, dword [esp + 0x20]
test eax, eax
je 0x102088af
lea ecx, [esp + 0x1c]
push ecx
lea ecx, [esp + 0x18]
push ecx
call eax
add esp, 8
test al, al
je 0x102088af
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x14]
jmp 0x1020892b
lea eax, [esp + 0x18]
push eax
push 0x20219
push 0
push 0x1046d000
push 0x80000002
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x10208843
lea eax, [esp + 0x20]
mov dword [esp + 0x20], 0x105
push eax
lea eax, [esp + 0xc84]
push eax
lea eax, [esp + 0x30]
push eax
push 0
push 0x1046d050
push dword [esp + 0x2c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
push dword [esp + 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
cmp byte [esp + 0xc80], al
je 0x1020885b
nop
inc eax
cmp byte [esp + eax + 0xc80], 0
jne 0x10208850
lea edx, [esp + 0xc80]
mov cl, 0x5c
add eax, edx
mov edx, 0x1046e320
sub edx, eax
nop dword [eax]
mov byte [eax], cl
lea eax, [eax + 1]
mov cl, byte [edx + eax]
test cl, cl
jne 0x10208870
mov byte [eax], cl
lea eax, [esp + 0xc80]
push 0x1046c590
push eax
call fcn.10434f0b
mov esi, eax
add esp, 8
test esi, esi
je 0x102088ad
push 0x1046e350
push esi
call fcn.1003a100
push esi
call fcn.10434d63
add esp, 0xc
xor esi, esi
test byte [ebx + 0xac], 1
mov edx, 0xb8
mov eax, 0x504
cmovne eax, edx
lea edx, [esp + 0x778]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x148]
jmp 0x10208928
mov cl, byte [ebx + 0xac]
and cl, 1
cmp eax, 2
jne 0x10208908
mov edx, 0xb8
test cl, cl
mov eax, 0x478
cmovne eax, edx
lea edx, [esp + 0x300]
mov dword [esp + 0x28], eax
lea eax, [esp + 0x148]
jmp 0x10208928
movzx eax, cl
lea edx, [esp + 0x108]
xor eax, 1
add eax, 3
shl eax, 4
test cl, cl
mov dword [esp + 0x28], eax
lea eax, [esp + 0xd8]
cmove eax, edx
push eax
lea eax, [esp + 0x2c]
mov dword [esp + 0x30], 0
push eax
push dword [ebx]
call fcn.101a0590
test eax, eax
js 0x10208950
mov eax, dword [esp + 0x2c]
mov dword [ebx + 0x718], eax
jmp 0x1020895e
or byte [ebx + 0xa4], 2
or dword [ebx + 0x6c], 0x200
test esi, esi
je 0x10208964
call esi
test edi, edi
je 0x1020896f
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov eax, dword [ebx + 0x730]
xor ecx, ecx
movzx esi, byte [esp + 0x12]
xorps xmm0, xmm0
mov dword [esp + 0x28], eax
xor edi, edi
mov eax, dword [ebx + 0x734]
mov dword [esp + 0x3c], ecx
and ecx, 0xbfffff7f
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x28]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x64]
shl esi, 0x1e
or ecx, esi
movlpd qword [esp + 0x6c], xmm0
or ecx, 0x10000
movlpd qword [esp + 0x7c], xmm0
push eax
push dword [ebx]
and ecx, 0xfffffffe
movlpd qword [esp + 0x8c], xmm0
movlpd qword [esp + 0x94], xmm0
movlpd qword [esp + 0x3c], xmm0
mov dword [esp + 0x38], 1
mov dword [esp + 0x6c], 0x16
mov dword [esp + 0x70], 2
mov dword [esp + 0x80], 1
mov dword [esp + 0xa0], 1
mov dword [esp + 0x9c], ecx
call fcn.1019b910
test eax, eax
js 0x10208a21
mov edi, dword [esp + 0x90]
jmp 0x10208a2f
or byte [ebx + 0xa4], 2
or dword [ebx + 0x6c], 0x200
test byte [ebx + 0xac], 1
mov dword [ebx + 0x13c], edi
jne 0x10208b00
mov eax, dword [ebx + 0x730]
xor ecx, ecx
mov dword [esp + 0x28], eax
xorps xmm0, xmm0
mov eax, dword [ebx + 0x734]
xor edi, edi
mov dword [esp + 0x3c], ecx
and ecx, 0xbfffff7f
mov dword [esp + 0x2c], eax
or ecx, esi
lea eax, [esp + 0x28]
movlpd qword [esp + 0x6c], xmm0
mov dword [esp + 0x74], eax
or ecx, 0x10000
lea eax, [esp + 0x64]
movlpd qword [esp + 0x7c], xmm0
push eax
push dword [ebx]
and ecx, 0xfffffffe
movlpd qword [esp + 0x8c], xmm0
movlpd qword [esp + 0x94], xmm0
movlpd qword [esp + 0x3c], xmm0
mov dword [esp + 0x38], 1
mov dword [esp + 0x6c], 0x16
mov dword [esp + 0x70], 2
mov dword [esp + 0x80], 1
mov dword [esp + 0xa0], 1
mov dword [esp + 0x9c], ecx
call fcn.1019b910
test eax, eax
js 0x10208aec
mov edi, dword [esp + 0x90]
jmp 0x10208afa
or byte [ebx + 0xa4], 2
or dword [ebx + 0x6c], 0x200
mov dword [ebx + 0x140], edi
mov eax, dword [ebx + 0x730]
xor ecx, ecx
mov dword [esp + 0x28], eax
xorps xmm0, xmm0
mov eax, dword [ebx + 0x734]
xor esi, esi
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x28]
mov dword [esp + 0x3c], ecx
and ecx, 0xbfffff7f
mov dword [esp + 0x74], eax
or ecx, 0x10000
lea eax, [esp + 0x64]
movlpd qword [esp + 0x6c], xmm0
push eax
push dword [ebx]
and ecx, 0xfffffffe
movlpd qword [esp + 0x84], xmm0
movlpd qword [esp + 0x8c], xmm0
movlpd qword [esp + 0x94], xmm0
movlpd qword [esp + 0x3c], xmm0
mov dword [esp + 0x38], 1
mov dword [esp + 0x6c], 0x16
mov dword [esp + 0x70], 2
mov dword [esp + 0x80], 1
mov dword [esp + 0xa0], 1
mov dword [esp + 0x9c], ecx
call fcn.1019b910
test eax, eax
js 0x10208bab
mov esi, dword [esp + 0x90]
jmp 0x10208bb9
or byte [ebx + 0xa4], 2
or dword [ebx + 0x6c], 0x200
mov ecx, dword [ebx + 0x13c]
mov dword [ebx + 0x71c], esi
mov byte [esp + 0x18], 0
test ecx, ecx
je 0x102090fb
mov eax, dword [ebx]
mov eax, dword [eax + 0xf7c]
cmp byte [eax + 0xb38], 0
jl 0x10208bf0
cmp dword [ebx + 0x140], 0
je 0x102090fb
test esi, esi
je 0x102090fb
cmp dword [ecx], 0x73655243
jne 0x10208c53
test dword [ecx + 0x18], 0xfffffff0
jbe 0x10208c53
cmp dword [ecx + 0x14], 0
je 0x10208c53
mov eax, dword [ecx + 0x14]
mov edx, dword [eax]
mov eax, dword [edx + 0x10]
add eax, eax
sar eax, 0x1c
cmp eax, 1
je 0x10208c29
test eax, eax
je 0x10208c29
xor al, al
jmp 0x10208c2b
mov al, 1
xor ecx, ecx
test al, al
cmovne ecx, edx
test ecx, ecx
je 0x10208c53
mov ecx, dword [ecx + 0x20c]
mov eax, dword [ecx + 0x28c]
or byte [eax + 0xa4], 0x10
mov eax, dword [ecx + 0x18c]
or byte [eax + 0x28], 8
mov eax, dword [ebx + 0x140]
cmp dword [eax], 0x73655243
jne 0x10208cb4
test dword [eax + 0x18], 0xfffffff0
jbe 0x10208cb4
cmp dword [eax + 0x14], 0
je 0x10208cb4
mov eax, dword [eax + 0x14]
mov edx, dword [eax]
mov eax, dword [edx + 0x10]
add eax, eax
sar eax, 0x1c
cmp eax, 1
je 0x10208c8a
test eax, eax
je 0x10208c8a
xor al, al
jmp 0x10208c8c
mov al, 1
xor ecx, ecx
test al, al
cmovne ecx, edx
test ecx, ecx
je 0x10208cb4
mov ecx, dword [ecx + 0x20c]
mov eax, dword [ecx + 0x28c]
or byte [eax + 0xa4], 0x10
mov eax, dword [ecx + 0x18c]
or byte [eax + 0x28], 8
mov eax, dword [ebx + 0x734]
imul eax, dword [ebx + 0x730]
shl eax, 2
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov dword [esp + 0x1c], eax
test eax, eax
je 0x102090fb
mov esi, dword [ebx + 0x730]
mov edi, eax
push 0
push ecx
push eax
push dword [ebx + 0x734]
mov ecx, ebx
mov dword [esp + 0x24], esi
push esi
push 0x16
push 1
call fcn.10207ca0
mov dword [esp + 0x20], eax
test eax, eax
je 0x10209094
mov ecx, dword [ebx]
mov ecx, dword [ecx + 0xf7c]
cmp byte [ecx + 0xb38], 0
jge 0x10208e9d
test byte [ebx + 0xac], 1
je 0x10208e9d
test dword [ebx + 4], 0x800000
je 0x10208d82
xor edx, edx
cmp dword [ebx + 0x734], edx
jbe 0x10208e38
and esi, 0x3fffffff
shl esi, 2
nop dword [eax]
xor ecx, ecx
cmp dword [ebx + 0x730], ecx
jbe 0x10208d72
nop word [eax + eax]
mov eax, dword [ebx + 0x3754]
mov dword [edi + ecx*4], eax
inc ecx
cmp ecx, dword [ebx + 0x730]
jb 0x10208d60
inc edx
add edi, esi
cmp edx, dword [ebx + 0x734]
jb 0x10208d50
jmp 0x10208e38
mov eax, dword [ebx + 0x376c]
xor ecx, ecx
mov edx, dword [ebx + 0x3768]
not eax
or ecx, eax
not edx
xor eax, eax
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x24], eax
cmp dword [ebx + 0x734], eax
jbe 0x10208e38
mov ecx, esi
and ecx, 0x3fffffff
shl ecx, 2
mov dword [esp + 0x60], ecx
and eax, 7
mov ecx, 7
sub ecx, eax
mov eax, dword [esp + 0x9c]
shl ecx, 3
call fcn.10451430
xor esi, esi
mov ah, al
mov byte [esp + 0x12], ah
cmp dword [ebx + 0x730], esi
jbe 0x10208e1f
nop dword [eax + eax]
mov edx, esi
mov ecx, 7
and edx, 7
mov al, 1
sub ecx, edx
shl al, cl
mov ecx, 0xffffffff
test ah, al
mov eax, 0xff000000
cmovne eax, ecx
mov dword [edi + esi*4], eax
inc esi
mov ah, byte [esp + 0x12]
cmp esi, dword [ebx + 0x730]
jb 0x10208df0
mov eax, dword [esp + 0x24]
add edi, dword [esp + 0x60]
inc eax
mov edx, dword [esp + 0x28]
mov dword [esp + 0x24], eax
cmp eax, dword [ebx + 0x734]
jb 0x10208dc2
mov eax, dword [0x11d0c5b8]
mov ecx, dword fs:[0x2c]
push 0
mov esi, dword [ecx + eax*4]
mov eax, dword [esi + 0x10]
mov ecx, dword [eax + 0x7a68]
mov ecx, dword [ecx + 8]
call fcn.1002c330
push dword [ebx + 0x734]
push dword [ebx + 0x730]
push ecx
push dword [ebx + 0x71c]
push ecx
push dword [esp + 0x34]
mov ecx, ebx
call fcn.10207c30
test al, al
mov eax, dword [esi + 0x10]
push 1
sete byte [esp + 0x1c]
mov ecx, dword [eax + 0x7a68]
mov ecx, dword [ecx + 8]
call fcn.1002c330
mov esi, dword [esp + 0x14]
test dword [ebx + 4], 0x800000
mov ecx, dword [ebx + 0x734]
je 0x10208ef4
xor edi, edi
test ecx, ecx
je 0x10208faa
mov edx, dword [esp + 0x1c]
and esi, 0x3fffffff
shl esi, 2
xor ecx, ecx
cmp dword [ebx + 0x730], ecx
jbe 0x10208ee2
nop dword [eax]
mov eax, dword [ebx + 0x3750]
mov dword [edx + ecx*4], eax
inc ecx
cmp ecx, dword [ebx + 0x730]
jb 0x10208ed0
mov ecx, dword [ebx + 0x734]
inc edi
add edx, esi
cmp edi, ecx
jb 0x10208ec3
jmp 0x10208faa
mov eax, dword [ebx + 0x3768]
xor edx, edx
or edx, dword [ebx + 0x376c]
mov dword [esp + 0x28], eax
xor eax, eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x24], eax
test ecx, ecx
je 0x10208faa
mov edi, dword [esp + 0x1c]
and esi, 0x3fffffff
shl esi, 2
mov dword [esp + 0x14], esi
nop dword [eax]
and eax, 7
mov ecx, 7
sub ecx, eax
mov eax, edx
mov edx, dword [esp + 0x28]
shl ecx, 3
call fcn.10451430
xor esi, esi
mov ah, al
mov byte [esp + 0x12], ah
cmp dword [ebx + 0x730], esi
jbe 0x10208f8f
nop dword [eax + eax]
mov edx, esi
mov ecx, 7
and edx, 7
mov al, 1
sub ecx, edx
shl al, cl
mov ecx, 0xffffffff
test ah, al
mov eax, 0xff000000
cmovne eax, ecx
mov dword [edi + esi*4], eax
inc esi
mov ah, byte [esp + 0x12]
cmp esi, dword [ebx + 0x730]
jb 0x10208f60
mov eax, dword [esp + 0x24]
add edi, dword [esp + 0x14]
inc eax
mov ecx, dword [ebx + 0x734]
mov edx, dword [esp + 0x60]
mov dword [esp + 0x24], eax
cmp eax, ecx
jb 0x10208f30
mov eax, dword [ebx + 0x71c]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x7c], eax
mov eax, dword [ebx + 0x730]
mov dword [esp + 0x74], eax
lea eax, [esp + 0x64]
mov dword [esp + 0x70], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x78], ecx
movups xmm0, xmmword [esp + 0x6c]
push eax
push dword [ebx]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], 0
mov dword [esp + 0x88], 0
movups xmmword [esp + 0x8c], xmm0
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
call fcn.1019daf0
mov ecx, dword [esp + 0x18]
test eax, eax
mov eax, dword [ebx]
mov edx, 1
movzx ecx, cl
cmovne ecx, edx
mov dword [esp + 0x18], ecx
mov eax, dword [eax + 0xf7c]
cmp byte [eax + 0xb38], 0
jge 0x1020908c
mov ecx, dword fs:[0x2c]
mov eax, dword [0x11d0c5b8]
push edx
mov eax, dword [ecx + eax*4]
lea ecx, [esp + 0x18]
mov eax, dword [eax + 0x10]
mov eax, dword [eax + 0x7a68]
mov eax, dword [eax + 8]
mov dword [esp + 0x18], eax
call fcn.1001e7f0
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0xb4c], 0xffffffff
lea ecx, [eax + 4]
mov dword [eax], 0x1fff0
mov eax, dword [esp + 0x14]
mov dword [eax + 0x20], ecx
push esi
push dword [ebx]
call fcn.1019ba60
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_GlobalFree]
cmp byte [esp + 0x18], 0
je 0x102090fb
mov eax, dword [ebx + 0x13c]
test eax, eax
je 0x102090c1
push eax
push dword [ebx]
call fcn.1019ba60
mov dword [ebx + 0x13c], 0
mov eax, dword [ebx + 0x140]
test eax, eax
je 0x102090dd
push eax
push dword [ebx]
call fcn.1019ba60
mov dword [ebx + 0x140], 0
mov eax, dword [ebx + 0x71c]
test eax, eax
je 0x10209113
push eax
push dword [ebx]
call fcn.1019ba60
mov dword [ebx + 0x71c], 0
jmp 0x10209113
mov eax, dword [ebx + 0x730]
mov dword [ebx + 0x740], eax
mov eax, dword [ebx + 0x734]
mov dword [ebx + 0x744], eax
mov ecx, dword [esp + 0xd8c]
mov al, 1
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1045066c
mov esp, ebp
pop ebp
ret 4