Function at 0x100550f0
Capabilities:
Get session user name

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100fa741
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x310
mov eax, dword [0x1013c014]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x2b4], edi
mov eax, dword [ebx + 0xc]
mov ecx, 0x1014e914
mov dword [ebp - 0x320], eax
mov eax, dword [ebx + 0x10]
push str.MaxRecentPrograms
mov dword [ebp - 0x2f4], eax
call fcn.100a5b80
mov esi, eax
mov ecx, 0x1014e914
test esi, esi
push str.RecentSortName
sets byte [ebp - 0x309]
call fcn.100a5b00
mov byte [ebp - 0x30a], al
mov dword [ebp - 0x2dc], 0xffffffff
mov dword [ebp - 0x2fc], 0xffffffff
test esi, esi
js 0x1005519a
test al, al
je 0x10055245
cmp byte [edi + 0x30], 0
je 0x100551aa
test byte [edi + 0x3c], 0x40
je 0x10055245
mov ecx, dword [edi + 0xa4]
mov eax, 0x30c30c31
sub ecx, dword [edi + 0xa0]
xor esi, esi
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
test ecx, ecx
jle 0x10055245
mov edx, dword [edi + 0xa0]
imul eax, esi, 0x54
cmp dword [eax + edx], 4
jne 0x100551fd
cmp dword [ebp - 0x2dc], 0xffffffff
lea eax, [esi + 1]
mov dword [ebp - 0x2fc], eax
mov eax, esi
cmovne eax, dword [ebp - 0x2dc]
mov dword [ebp - 0x2dc], eax
jmp 0x10055208
mov eax, dword [ebp - 0x2dc]
cmp eax, 0xffffffff
jne 0x1005520d
inc esi
cmp esi, ecx
jl 0x100551d3
test eax, eax
js 0x10055245
imul esi, dword [ebp - 0x2fc], 0x54
push dword [ebp - 0x2e4]
imul ecx, eax, 0x54
mov eax, 0x30c30c31
add esi, edx
add ecx, edx
mov edx, esi
sub edx, ecx
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, esi
push eax
call fcn.10063db0
add esp, 8
cmp byte [edi + 0x30], 0
jne 0x10055258
cmp byte [0x1014c18d], 0
je 0x10055258
mov al, 1
jmp 0x1005525a
xor al, al
cmp dword [edi + 0x44], 0
mov esi, dword [sym.imp.UxTheme.dll_OpenThemeData]
mov byte [edi + 0x108], al
jne 0x10055368
cmp dword [0x1014b5f8], 0
jne 0x100552a1
call dword [sym.imp.UxTheme.dll_IsAppThemed]
test eax, eax
je 0x100552a1
push str.toolbar
push dword [edi + 0xc]
call esi
push str.scrollbar
push dword [edi + 0xc]
mov dword [0x1014b5f8], eax
call esi
mov dword [0x1014b5f4], eax
cmp dword [edi + 0x44], 0
jne 0x10055368
cmp dword [0x1014c168], 0
jne 0x10055368
cmp byte [0x1014b4f3], 0
mov ecx, 0x4000a8
push 0
push dword [0x1014be3c]
mov eax, 0xa8
push 0
push 0
push 0
push 0
push 0
push 0
push SysStringLen
push 0
push str.tooltips_class32
cmovne eax, ecx
push eax
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push 0x1f4
push 0
push 0x418
push eax
mov dword [0x1014c168], eax
call esi
xor eax, eax
mov dword [ebp - 0x258], 0x30
cmp byte [0x1014b4f3], al
xorps xmm0, xmm0
movups xmmword [ebp - 0x250], xmm0
setne al
mov dword [ebp - 0x24c], 1
movq qword [ebp - 0x230], xmm0
movups xmmword [ebp - 0x240], xmm0
lea eax, [eax*4 + 0x1a0]
mov dword [ebp - 0x254], eax
lea eax, [ebp - 0x258]
push eax
push 0
push 0x432
push dword [0x1014c168]
call esi
mov cl, byte [edi + 0x30]
mov byte [ebp - 0x28a], cl
test cl, cl
je 0x10055388
movups xmm0, xmmword [0x1014e8ac]
movups xmmword [ebp - 0x248], xmm0
xorps xmm0, xmm0
jmp 0x100553c8
mov eax, dword [0x1014b4d4]
cmp eax, 2
jne 0x100553a5
movups xmm0, xmmword [0x1014e88c]
movups xmmword [ebp - 0x248], xmm0
xorps xmm0, xmm0
jmp 0x100553c8
movups xmm0, xmmword [0x1014e86c]
movups xmmword [ebp - 0x248], xmm0
cmp eax, 3
jne 0x100553c1
movups xmm0, xmmword [0x1014e89c]
jmp 0x100553c8
movups xmm0, xmmword [0x1014e87c]
mov edx, dword [0x1014b5d0]
test cl, cl
mov eax, dword [0x1014b5c8]
cmovne eax, dword [0x1014b51c]
cmovne edx, dword [0x1014b524]
mov esi, dword [edi + 0x104]
sub edx, eax
lea eax, [edi + 0xc]
mov dword [ebp - 0x2b0], 0
push 0xfffffffffffffff0
push dword [eax]
movups xmmword [ebp - 0x238], xmm0
mov dword [ebp - 0x2bc], edx
xorps xmm0, xmm0
mov dword [ebp - 0x2e4], eax
movups xmmword [ebp - 0x228], xmm0
call dword [sym.imp.USER32.dll_GetWindowLongW]
push 0
push eax
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov eax, dword [ebp - 0x228]
sub eax, dword [ebp - 0x240]
sub eax, dword [ebp - 0x248]
sub eax, dword [ebp - 0x220]
add esi, eax
cmp byte [edi + 0x30], 0
mov dword [ebp - 0x288], esi
je 0x10055486
mov eax, dword [ebp - 0x21c]
mov ecx, dword [ebp - 0x23c]
mov dword [ebp - 0x2b0], eax
mov eax, dword [ebp - 0x2bc]
sub eax, dword [ebp - 0x244]
sub eax, ecx
mov dword [ebp - 0x2a0], ecx
mov dword [ebp - 0x2c0], eax
jmp 0x10055564
mov edx, dword [edi + 0x3c]
and edx, 0x1000
je 0x100554b0
cmp byte [ebp - 0x28a], 0
mov eax, dword [ebp - 0x320]
mov ecx, dword [0x1014b5d0]
cmovne ecx, dword [0x1014b524]
sub ecx, dword [eax + 4]
jmp 0x100554ce
mov ecx, dword [ebp - 0x320]
cmp byte [ebp - 0x28a], 0
mov eax, dword [0x1014b5c8]
cmovne eax, dword [0x1014b51c]
mov ecx, dword [ecx + 4]
sub ecx, eax
mov edi, dword [ebp - 0x244]
mov esi, ecx
mov eax, dword [ebp - 0x234]
add eax, dword [ebp - 0x22c]
mov dword [ebp - 0x2c0], ecx
sub dword [ebp - 0x2c0], edi
mov edi, dword [ebp - 0x23c]
sub dword [ebp - 0x2c0], edi
mov ecx, dword [ebp - 0x21c]
sub esi, ecx
sub dword [ebp - 0x2c0], ecx
add esi, dword [ebp - 0x224]
mov ecx, dword [ebp - 0x2c0]
sub esi, eax
add ecx, dword [ebp - 0x224]
cmp dword [0x1013fb2c], 0
mov dword [ebp - 0x2a0], edi
mov edi, dword [ebp - 0x2b4]
mov dword [ebp - 0x2c0], ecx
mov dword [ebp - 0x2bc], esi
je 0x10055564
test edx, edx
jne 0x10055564
cmp byte [0x1014e770], dl
je 0x10055564
mov eax, dword [0x1014e774]
sub eax, dword [0x1014e75c]
add ecx, eax
add esi, eax
mov dword [ebp - 0x2c0], ecx
mov dword [ebp - 0x2bc], esi
push 0
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
cmp byte [edi + 0x30], 0
mov esi, eax
mov dword [ebp - 0x31c], esi
je 0x100555a1
mov ecx, dword [0x1014cc94]
add ecx, dword [0x1014cc98]
test dword [edi + 0x3c], 0x1000000
je 0x10055598
mov eax, dword [0x1014e6c8]
add eax, ecx
jmp 0x100555b2
mov eax, dword [0x1014cc84]
add eax, ecx
jmp 0x100555b2
mov eax, dword [0x1014c21c]
add eax, dword [0x1014c22c]
add eax, dword [0x1014c230]
mov dword [ebp - 0x220], eax
mov eax, dword [0x1014c6bc]
add eax, dword [0x1014c6cc]
add eax, dword [0x1014c6d0]
cmp dword [0x1014c178], 0x90
mov dword [ebp - 0x21c], eax
mov eax, dword [0x10148a00]
cmovge eax, dword [0x10148a38]
push 6
push esi
mov dword [ebp - 0x29c], eax
call dword [sym.imp.GDI32.dll_GetCurrentObject]
or edx, 0xffffffff
mov dword [ebp - 0x2e0], eax
cmp byte [edi + 0x30], 0
mov ecx, 0x1014e914
mov dword [ebp - 0x2a8], 0xffffffff
mov dword [ebp - 0x2a4], edx
mov dword [ebp - 0x300], 0x10000
je 0x10055654
push str.MaxMenuWidth
call fcn.100a5b80
test eax, eax
je 0x10055644
mov ecx, dword [0x1014cd14]
imul ecx, eax
mov dword [ebp - 0x304], ecx
jmp 0x10055732
mov ecx, 0x10000
mov dword [ebp - 0x304], ecx
jmp 0x10055732
push str.MaxMainMenuWidth
call fcn.100a5b80
mov ecx, dword [0x1014c2ac]
mov esi, eax
test esi, esi
je 0x10055671
mov edx, ecx
imul edx, esi
jmp 0x10055676
mov edx, 0x10000
mov dword [ebp - 0x304], edx
test esi, esi
je 0x1005568a
mov eax, dword [0x1014c74c]
imul eax, esi
jmp 0x1005568f
mov eax, 0x10000
cmp byte [0x1014b4d1], 0
mov esi, dword [0x1014b530]
mov dword [ebp - 0x300], eax
mov eax, dword [0x1014b534]
je 0x10055710
mov edx, dword [0x1014b4d4]
cmp edx, 2
jne 0x100556d6
mov edx, dword [0x1014b56c]
sub edx, dword [0x1014e894]
sub edx, dword [0x1014e88c]
mov dword [ebp - 0x2a8], edx
xor edx, edx
mov dword [ebp - 0x2a4], edx
jmp 0x10055706
cmp edx, 3
mov dword [ebp - 0x300], 0x10000
mov edx, eax
jne 0x100556fd
imul edx, ecx
mov dword [ebp - 0x2a8], edx
mov edx, esi
imul edx, ecx
mov dword [ebp - 0x2a4], edx
jmp 0x10055706
imul edx, ecx
mov dword [ebp - 0x2a8], edx
mov dword [ebp - 0x304], 0x10000
add eax, esi
imul eax, ecx
add eax, dword [0x1014e8a4]
add eax, dword [0x1014e89c]
add eax, dword [0x1014e874]
add eax, dword [0x1014e86c]
mov dword [0x1014b568], eax
xor eax, eax
mov ecx, 0xa68
cmp byte [edi + 0x30], al
cmovne eax, ecx
cmp byte [0x1014b503], 0
mov eax, dword [eax + 0x1014c288]
mov dword [edi + 0x184], eax
jne 0x1005575f
cdq
sub eax, edx
sar eax, 1
mov dword [edi + 0x184], eax
cmp eax, 0xd
jge 0x1005576e
mov dword [edi + 0x184], 0xd
mov dword [ebp - 0x2d8], 0
mov dword [ebp - 0x2d4], 0
mov dword [ebp - 0x2d0], 0
lea eax, [ebp - 0x310]
mov dword [ebp - 4], 0
push eax
lea ecx, [ebp - 0x2d8]
mov dword [ebp - 0x310], 0
call fcn.10012140
cmp dword [0x1014b630], 0
je 0x100557c5
test byte [edi + 0x3c], 1
mov byte [ebp - 0x28a], 1
jne 0x100557cc
mov byte [ebp - 0x28a], 0
mov ecx, dword [edi + 0xa4]
lea esi, [edi + 0xa0]
xor eax, eax
mov dword [ebp - 0x310], 0xffffffff
mov dword [ebp - 0x278], eax
mov dword [ebp - 0x318], eax
mov dword [ebp - 0x294], eax
mov eax, dword [esi]
sub ecx, eax
mov dword [ebp - 0x280], eax
mov eax, 0x30c30c31
imul ecx
mov dword [ebp - 0x298], 0
sar edx, 4
mov eax, edx
mov dword [ebp - 0x284], 0
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x2c4], 0
mov dword [ebp - 0x2c8], esi
test eax, eax
jle 0x1005657a
xor edx, edx
nop
mov eax, dword [ebp - 0x280]
imul ecx, edx, 0x54
cmp byte [edi + 0x108], 0
mov dword [ebp - 0x27c], ecx
je 0x10055917
cmp dword [ebp - 0x284], 0
jne 0x10055917
test edx, edx
jle 0x10055917
test byte [ecx + eax + 0x30], 0x10
je 0x10055917
lea eax, [ebp - 0x2ac]
mov dword [ebp - 0x284], 1
push eax
lea ecx, [ebp - 0x2d8]
mov dword [ebp - 0x2ac], 0
call fcn.10012140
cmp dword [0x1013fb2c], 0
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x278], 0
je 0x100558fb
cmp byte [0x1014e770], 0
je 0x100558e4
test dword [edi + 0x3c], 0x1000
jne 0x100558e4
mov eax, dword [0x1014e790]
sub eax, dword [ebp - 0x244]
add eax, dword [0x1014e774]
jmp 0x100558f5
mov eax, dword [0x1014e790]
add eax, dword [0x1014e78c]
add eax, dword [0x1014e75c]
mov dword [ebp - 0x278], eax
mov eax, dword [ebp - 0x280]
mov edx, dword [ebp - 0x294]
mov ecx, dword [ebp - 0x27c]
mov dword [ebp - 0x318], 1
and byte [ecx + eax + 0x31], 0xdf
cmp byte [edi + 0x108], 0
je 0x1005598e
cmp edx, dword [edi + 0x1c8]
jge 0x10055994
cmp dword [0x1014b4d4], 0
je 0x1005598e
mov ecx, dword [edi + 0x198]
mov eax, ecx
sub eax, dword [edi + 0x1a0]
cmp edx, eax
jle 0x1005594c
cmp edx, ecx
jle 0x1005598e
mov eax, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x27c]
cmp dword [ecx + eax], 0x26
je 0x1005598e
cmp dword [0x1014b4d4], 3
jne 0x10055985
cmp dword [ebp - 0x284], 1
jne 0x1005598e
mov dword [ecx + eax + 0x2c], 0
mov dword [ecx + eax + 0x24], 0
jmp 0x10056547
cmp dword [0x1014b4d4], 2
jmp 0x1005596e
cmp edx, dword [edi + 0x1c8]
jne 0x100559fa
xor ecx, ecx
mov dword [ebp - 0x278], 0
cmp dword [0x1014b4d4], 3
mov dword [ebp - 0x298], 0
sete cl
mov dword [ebp - 0x318], ecx
mov dword [ebp - 0x284], ecx
jne 0x100559fa
mov eax, dword [ebp - 0x2d4]
sub eax, dword [ebp - 0x2d8]
sar eax, 2
cmp eax, 1
jne 0x100559fa
lea eax, [ebp - 0x2ac]
mov dword [ebp - 0x2ac], 0
push eax
lea ecx, [ebp - 0x2d8]
call fcn.10012140
mov edx, dword [ebp - 0x294]
mov esi, dword [ebp - 0x280]
mov eax, dword [ebp - 0x27c]
mov eax, dword [eax + esi]
cmp eax, 4
je 0x10055ba1
test dword [edi + 0x3c], 0x400000
jne 0x10055ba1
cmp byte [0x1014e1f4], 0
je 0x10055ba1
cmp edx, dword [edi + 0x1c8]
jge 0x10055ba1
cmp eax, 9
jne 0x10055acd
cmp byte [0x1014b4d1], 0
je 0x10055ab0
call fcn.100b0560
mov ecx, 0x602
cmp ax, cx
jb 0x10055ab0
push str.AllProgramsMetro
mov ecx, 0x1014e914
call fcn.100a5b00
test al, al
je 0x10055ab0
cmp byte [0x1014c015], 0
jne 0x10055a97
cmp byte [0x1014c017], 0
jne 0x10055a97
mov edx, dword [ebp - 0x27c]
xor cl, cl
mov al, byte [edx + esi + 0x31]
and al, 0xdf
or al, cl
mov byte [edx + esi + 0x31], al
jmp 0x10055ba7
mov edx, dword [ebp - 0x27c]
mov cl, 0x20
mov al, byte [edx + esi + 0x31]
and al, 0xdf
or al, cl
mov byte [edx + esi + 0x31], al
jmp 0x10055ba7
mov edx, dword [ebp - 0x27c]
mov al, byte [0x1014c015]
shl al, 5
xor al, byte [edx + esi + 0x31]
and al, 0x20
xor byte [edx + esi + 0x31], al
jmp 0x10055ba7
mov edx, dword [ebp - 0x27c]
cmp eax, 0xa
jne 0x10055aef
mov al, byte [0x1014c017]
shl al, 5
xor al, byte [edx + esi + 0x31]
and al, 0x20
xor byte [edx + esi + 0x31], al
jmp 0x10055ba7
test byte [edx + esi + 0x30], 1
je 0x10055b5e
mov eax, dword [edx + esi + 0x38]
test eax, eax
je 0x10055b17
push 0
push 1
push eax
mov ecx, 0x1014be70
call fcn.1002c830
test al, al
jne 0x10055b32
mov edx, dword [ebp - 0x27c]
mov eax, dword [edx + esi + 0x3c]
test eax, eax
je 0x10055b4e
push 0
push 1
push eax
mov ecx, 0x1014be70
call fcn.1002c830
test al, al
je 0x10055b48
mov edx, dword [ebp - 0x27c]
mov cl, 0x20
mov al, byte [edx + esi + 0x31]
and al, 0xdf
or al, cl
mov byte [edx + esi + 0x31], al
jmp 0x10055ba7
mov edx, dword [ebp - 0x27c]
mov al, byte [edx + esi + 0x31]
xor cl, cl
and al, 0xdf
or al, cl
mov byte [edx + esi + 0x31], al
jmp 0x10055ba7
cmp dword [edx + esi + 0x10], 0
je 0x10055ba7
mov ecx, dword [edx + esi + 0x38]
test ecx, ecx
je 0x10055b4e
mov al, byte [edx + esi + 0x31]
shr al, 3
and al, 1
movzx eax, al
push eax
push 0
push ecx
mov ecx, 0x1014be70
call fcn.1002c830
mov edx, dword [ebp - 0x27c]
test al, al
je 0x10055b4e
mov al, byte [edx + esi + 0x31]
mov cl, 0x20
and al, 0xdf
or al, cl
mov byte [edx + esi + 0x31], al
jmp 0x10055ba7
mov edx, dword [ebp - 0x27c]
mov ecx, dword [edx + esi]
cmp ecx, 0x26
jne 0x10055bf5
cmp dword [0x1014b4d4], 2
jne 0x10055bc8
mov dword [edx + esi + 0x14], 0x15
lea edx, [ecx - 0x11]
jmp 0x10055e5d
cmp dword [0x1014b4d4], 3
jne 0x10055be3
mov dword [edx + esi + 0x14], 0x16
mov edx, 0x16
jmp 0x10055e5d
mov dword [edx + esi + 0x14], 0x14
mov edx, 0x14
jmp 0x10055e5d
cmp byte [0x1014b4d1], 0
je 0x10055d22
cmp ecx, 0x30
jne 0x10055c21
movzx edx, byte [edx + esi + 0x31]
mov eax, dword [ebp - 0x27c]
and edx, 1
add edx, 0x19
mov dword [eax + esi + 0x14], edx
jmp 0x10055e5d
cmp ecx, 9
jne 0x10055c69
push str.ProgramsStyle
mov ecx, 0x1014e914
call fcn.100a5b80
cmp eax, 1
mov eax, dword [ebp - 0x27c]
movzx edx, byte [eax + esi + 0x31]
jne 0x10055c57
shr edx, 5
and edx, 1
or edx, 0x10
mov dword [eax + esi + 0x14], edx
jmp 0x10055e5d
shr edx, 5
and edx, 1
or edx, 0x12
mov dword [eax + esi + 0x14], edx
jmp 0x10055e5d
cmp byte [edi + 0x108], 0
je 0x10055ce6
mov eax, dword [0x1014b4d4]
cmp eax, 2
je 0x10055c81
cmp eax, 3
jne 0x10055ce6
mov eax, dword [ebp - 0x294]
cmp eax, dword [edi + 0x1c8]
jl 0x10055ce6
cmp ecx, 1
jne 0x10055ca4
mov dword [edx + esi + 0x14], 0x19
lea edx, [ecx + 0x18]
jmp 0x10055e5d
mov eax, dword [edx + esi + 0x50]
movzx ecx, ax
test eax, eax
jns 0x10055cc1
mov dword [edx + esi + 0x14], 0x17
mov edx, 0x17
jmp 0x10055e5d
mov eax, ecx
xor edx, edx
lea ecx, [eax + eax*2]
mov eax, dword [0x1014c0bc]
cmp dword [eax + ecx*8], 2
mov eax, dword [ebp - 0x27c]
setne dl
add edx, 0x17
mov dword [eax + esi + 0x14], edx
jmp 0x10055e5d
mov edx, dword [edi + 0x198]
mov eax, edx
sub eax, dword [edi + 0x1a0]
cmp dword [ebp - 0x294], eax
jle 0x10055d1c
cmp dword [ebp - 0x294], edx
jge 0x10055d1c
mov eax, dword [ebp - 0x27c]
mov edx, 0x17
mov dword [eax + esi + 0x14], 0x17
jmp 0x10055e5d
mov edx, dword [ebp - 0x27c]
cmp byte [edi + 0x108], 0
je 0x10055da4
cmp dword [ebp - 0x318], 1
jne 0x10055da4
test byte [edx + esi + 0x30], 0x20
je 0x10055d4d
mov dword [edx + esi + 0x14], 8
mov edx, 8
jmp 0x10055e5d
cmp ecx, 1
jne 0x10055d62
mov dword [edx + esi + 0x14], 7
lea edx, [ecx + 6]
jmp 0x10055e5d
mov al, byte [edx + esi + 0x31]
test al, 1
je 0x10055d7c
mov dword [edx + esi + 0x14], 5
mov edx, 5
jmp 0x10055e5d
test al, 0x20
je 0x10055d92
mov dword [edx + esi + 0x14], 6
mov edx, 6
jmp 0x10055e5d
mov dword [edx + esi + 0x14], 4
mov edx, 4
jmp 0x10055e5d
cmp byte [edi + 0x30], 0
je 0x10055e17
cmp ecx, 1
jne 0x10055dbf
mov dword [edx + esi + 0x14], 0xc
lea edx, [ecx + 0xb]
jmp 0x10055e5d
cmp ecx, 0x30
jne 0x10055dde
movzx edx, byte [edx + esi + 0x31]
mov eax, dword [ebp - 0x27c]
and edx, 1
or edx, 0xc
mov dword [eax + esi + 0x14], edx
jmp 0x10055e5d
mov al, byte [edx + esi + 0x31]
test al, 1
je 0x10055df5
mov dword [edx + esi + 0x14], 0xa
mov edx, 0xa
jmp 0x10055e5d
test al, 0x20
je 0x10055e08
mov dword [edx + esi + 0x14], 0xb
mov edx, 0xb
jmp 0x10055e5d
mov dword [edx + esi + 0x14], 9
mov edx, 9
jmp 0x10055e5d
cmp ecx, 1
jne 0x10055e29
mov dword [edx + esi + 0x14], 3
lea edx, [ecx + 2]
jmp 0x10055e5d
mov al, byte [edx + esi + 0x31]
test al, 1
je 0x10055e40
mov dword [edx + esi + 0x14], 1
mov edx, 1
jmp 0x10055e5d
test al, 0x20
je 0x10055e53
mov dword [edx + esi + 0x14], 2
mov edx, 2
jmp 0x10055e5d
mov dword [edx + esi + 0x14], 0
xor edx, edx
imul esi, edx, 0x128
add esi, 0x1014c1ac
mov dword [ebp - 0x290], esi
push dword [esi]
push dword [ebp - 0x31c]
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [esi + 0xe8]
xor ecx, ecx
mov dword [ebp - 0x2b8], 0
cmp eax, 1
jne 0x10055ea1
mov eax, dword [0x1014b4c8]
mov dword [ebp - 0x2ac], eax
jmp 0x10055eb1
cmp eax, 2
cmove ecx, dword [0x1014b4c4]
mov dword [ebp - 0x2ac], ecx
mov edx, dword [ebp - 0x280]
mov eax, dword [ebp - 0x27c]
mov eax, dword [eax + edx]
mov dword [ebp - 0x2e8], eax
cmp eax, 8
jne 0x10055ed2
xor esi, esi
jmp 0x1005632c
cmp byte [0x1014b4d2], 0
jne 0x10055f32
mov ecx, dword [edi + 0xa4]
mov eax, 0x30c30c31
sub ecx, dword [edi + 0xa0]
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jbe 0x10055f26
mov eax, dword [edi + 0xa0]
mov edx, dword [ebp - 0x27c]
cmp dword [edx + eax], 3
je 0x10055f1f
cmp dword [ebp - 0x294], 0
jle 0x10055f26
cmp dword [edx + eax - 0x54], 3
jne 0x10055f26
xor esi, esi
jmp 0x1005632c
mov edx, dword [ebp - 0x280]
mov eax, dword [ebp - 0x2e8]
mov ecx, dword [ebp - 0x27c]
test byte [ecx + edx + 0x30], 0x20
je 0x10055f74
mov ecx, dword [ebp - 0x290]
mov esi, dword [esi + 0xbc]
add esi, dword [ecx + 0xb4]
mov eax, dword [ecx + 0xb8]
add eax, dword [ecx + 0xb0]
add esi, dword [ebp - 0x2ac]
add eax, dword [ebp - 0x2ac]
mov dword [ebp - 0x2b8], eax
jmp 0x1005632c
cmp eax, 1
je 0x10055f82
cmp eax, 0x30
jne 0x100560f5
test byte [ecx + edx + 0x31], 0x10
jne 0x100560f5
mov eax, dword [ebp - 0x27c]
mov eax, dword [eax + edx + 8]
cmp dword [eax - 0xc], 0
je 0x100560b8
mov esi, dword [esi + 0xdc]
lea ecx, [ebp - 0x268]
push 0x100420
push ecx
push 0xffffffffffffffff
push eax
push dword [ebp - 0x31c]
xorps xmm0, xmm0
movups xmmword [ebp - 0x268], xmm0
call dword [sym.imp.USER32.dll_DrawTextW]
mov edi, dword [ebp - 0x318]
mov eax, dword [ebp - 0x290]
mov ecx, dword [ebp + edi*4 - 0x304]
mov edx, dword [eax + 0x2c]
cmp dword [ebp - 0x260], ecx
mov dword [ebp - 0x2e8], edx
cmovle ecx, dword [ebp - 0x260]
mov edx, dword [ebp + edi*4 - 0x220]
add edx, dword [eax + 0x34]
mov eax, dword [ebp - 0x27c]
add edx, ecx
mov edi, dword [ebp - 0x280]
add edx, dword [ebp - 0x2e8]
mov dword [ebp - 0x2ac], ecx
mov dword [ebp - 0x2b8], edx
cmp dword [eax + edi], 0x30
mov eax, dword [ebp - 0x290]
jne 0x1005608d
mov ecx, dword [eax + 0xb8]
mov eax, dword [eax + 0xb0]
add ecx, eax
mov eax, dword [ebp - 0x29c]
add eax, ecx
add edx, eax
mov eax, dword [ebp - 0x29c]
add eax, ecx
mov dword [ebp - 0x2b8], edx
add dword [ebp - 0x2e8], eax
mov eax, edi
mov ecx, dword [ebp - 0x27c]
test byte [ecx + eax + 0x31], 1
je 0x10056087
mov ecx, dword [ebp - 0x290]
mov eax, dword [ecx + 0x84]
inc eax
add eax, dword [ecx + 0x80]
add eax, dword [0x1014e6d8]
add edx, eax
mov dword [ebp - 0x2b8], edx
mov ecx, dword [ebp - 0x2ac]
mov edi, dword [ebp - 0x27c]
mov edx, dword [ebp - 0x280]
mov eax, dword [ebp - 0x2e8]
add ecx, eax
mov word [edi + edx + 0x4c], ax
mov eax, edi
mov edi, dword [ebp - 0x2b4]
mov word [eax + edx + 0x4e], cx
jmp 0x10056332
mov ecx, dword [ebp - 0x278]
test ecx, ecx
jg 0x100560e4
mov edx, dword [ebp - 0x294]
test edx, edx
jle 0x100560d7
mov eax, dword [edi + 0x1c0]
inc eax
cmp edx, eax
je 0x100560e4
mov edx, dword [ebp - 0x280]
xor esi, esi
jmp 0x10056338
mov esi, dword [esi + 0xd4]
mov edx, dword [ebp - 0x280]
jmp 0x10056338
cmp eax, 0x2f
jne 0x10056134
mov eax, dword [esi + 0xec]
mov ecx, dword [ebp - 0x290]
lea eax, [eax + eax*2]
shl eax, 2
cdq
and edx, 7
lea esi, [edx + eax]
sar esi, 3
add esi, dword [0x1014e270]
add esi, dword [0x1014e268]
imul eax, dword [ecx + 0x100], 0x19
mov dword [ebp - 0x2b8], eax
jmp 0x1005632c
cmp byte [0x1014b4d1], 0
je 0x10056251
mov ecx, dword [edi + 0x198]
mov eax, ecx
sub eax, dword [edi + 0x1a0]
cmp dword [ebp - 0x294], eax
mov eax, dword [ebp - 0x294]
jle 0x10056198
cmp eax, ecx
jge 0x10056198
cmp dword [0x1014b4d4], 2
jne 0x10055f1f
mov ecx, dword [ebp - 0x27c]
cmp dword [ecx + edx], 0x33
jne 0x1005619e
mov ecx, edi
call fcn.1005fcd0
test al, al
jne 0x1005618c
xor esi, esi
jmp 0x1005632c
mov edx, dword [ebp - 0x280]
mov eax, dword [ebp - 0x294]
mov ecx, dword [ebp - 0x27c]
mov ecx, dword [ecx + edx]
cmp ecx, 0x26
jne 0x1005625c
push 0x100420
mov dword [ebp - 0x310], eax
xorps xmm0, xmm0
lea eax, [ebp - 0x268]
push eax
mov eax, dword [ebp - 0x27c]
push 0xffffffffffffffff
movups xmmword [ebp - 0x268], xmm0
push dword [eax + edx + 8]
push dword [ebp - 0x31c]
call dword [sym.imp.USER32.dll_DrawTextW]
cmp byte [0x1014b4f2], 0
mov ecx, dword [ebp - 0x260]
mov eax, ecx
je 0x10056203
mov ecx, dword [esi + 0xb8]
add ecx, dword [esi + 0xb0]
add ecx, dword [0x1014e6e8]
add ecx, eax
mov eax, dword [esi + 0x100]
lea edx, [eax + eax*2]
add edx, edx
cmp ecx, edx
cmovge edx, ecx
add edx, dword [esi + 0x84]
add edx, dword [esi + 0x80]
add edx, dword [esi + 0x70]
add edx, dword [esi + 0x34]
add edx, dword [esi + 0x2c]
add edx, dword [0x1014e1ec]
mov esi, dword [esi + 0xdc]
add edx, dword [0x1014e1e4]
add esi, dword [0x1014e1f0]
add esi, dword [0x1014e1e8]
mov dword [ebp - 0x2b8], edx
jmp 0x1005632c
mov eax, dword [ebp - 0x294]
jmp 0x1005619e
cmp byte [0x1014b4d1], 0
je 0x100562a8
cmp ecx, 9
jne 0x100562a8
push str.ProgramsStyle
mov ecx, 0x1014e914
call fcn.100a5b80
cmp eax, 2
je 0x10056295
mov eax, dword [ebp - 0x2a8]
mov esi, dword [esi + 0xdc]
mov dword [ebp - 0x2b8], eax
jmp 0x1005632c
mov eax, dword [ebp - 0x2a8]
xor esi, esi
mov dword [ebp - 0x2b8], eax
jmp 0x1005632c
mov esi, dword [esi + 0xdc]
test ecx, ecx
mov ecx, 0xc20
mov eax, 0x100420
cmove eax, ecx
xorps xmm0, xmm0
push eax
lea eax, [ebp - 0x268]
push eax
mov eax, dword [ebp - 0x27c]
push 0xffffffffffffffff
movups xmmword [ebp - 0x268], xmm0
push dword [eax + edx + 8]
push dword [ebp - 0x31c]
call dword [sym.imp.USER32.dll_DrawTextW]
mov edx, dword [ebp - 0x318]
mov eax, dword [ebp - 0x290]
mov ecx, dword [ebp + edx*4 - 0x304]
cmp dword [ebp - 0x260], ecx
cmovle ecx, dword [ebp - 0x260]
add ecx, dword [ebp + edx*4 - 0x220]
add ecx, dword [eax + 0xb8]
add ecx, dword [eax + 0xb0]
add ecx, dword [eax + 0x34]
add ecx, dword [eax + 0x2c]
add ecx, dword [ebp - 0x2ac]
mov dword [ebp - 0x2b8], ecx
mov edx, dword [ebp - 0x280]
mov ecx, dword [ebp - 0x278]
cmp byte [ebp - 0x28a], 0
je 0x100563b0
test ecx, ecx
jle 0x100563b0
lea eax, [esi + ecx]
cmp eax, dword [ebp - 0x2c0]
jle 0x100563b0
mov eax, dword [ebp - 0x27c]
cmp dword [eax + edx], 1
jne 0x10056371
test byte [eax + edx + 0x31], 0x10
jne 0x10056371
test byte [eax + edx + 0x30], 0x20
jne 0x10056371
xor esi, esi
jmp 0x10056426
inc dword [ebp - 0x284]
lea eax, [ebp - 0x2cc]
push eax
lea ecx, [ebp - 0x2d8]
mov dword [ebp - 0x2cc], 0
call fcn.10012140
mov edx, dword [ebp - 0x280]
xor eax, eax
mov dword [ebp - 0x298], 0
mov dword [ebp - 0x278], eax
jmp 0x1005642c
mov eax, dword [ebp - 0x27c]
cmp dword [eax + edx], 1
jne 0x10056426
test byte [eax + edx + 0x31], 0x10
jne 0x10056426
test byte [eax + edx + 0x30], 0x20
jne 0x10056426
cmp byte [edi + 0x108], 0
je 0x10056426
cmp dword [ebp - 0x284], 0
jne 0x10056426
mov ecx, dword [edi + 0xa4]
mov eax, 0x30c30c31
sub ecx, dword [edi + 0xa0]
imul ecx
mov eax, dword [ebp - 0x294]
sar edx, 4
inc eax
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, dword [ebp - 0x280]
cmp eax, ecx
jge 0x10056426
mov eax, dword [edi + 0xa0]
mov ecx, dword [ebp - 0x27c]
test byte [ecx + eax + 0x84], 0x10
mov eax, 0
cmovne esi, eax
mov eax, dword [ebp - 0x278]
mov edi, dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x298]
mov dword [edi + edx + 0x1c], ecx
mov ecx, dword [ebp - 0x284]
mov dword [edi + edx + 0x18], ecx
mov ecx, edi
mov edi, dword [ebp - 0x2b4]
mov dword [ecx + edx + 0x24], eax
add eax, esi
mov dword [ecx + edx + 0x2c], eax
mov al, byte [ecx + edx + 0x30]
mov dword [ecx + edx + 0x20], 0
xor ecx, ecx
test al, 0x20
je 0x10056509
test al, 0x40
je 0x1005647a
mov dword [ebp - 0x2c4], ecx
jmp 0x100564ab
mov ecx, dword [ebp - 0x27c]
mov eax, dword [ebp - 0x298]
dec eax
mov dword [ebp - 0x298], eax
mov dword [ecx + edx + 0x1c], eax
mov ecx, dword [ebp - 0x278]
mov eax, ecx
sub eax, esi
mov esi, dword [ebp - 0x27c]
mov dword [esi + edx + 0x24], eax
mov dword [esi + edx + 0x2c], ecx
xor esi, esi
mov eax, dword [ebp - 0x2b8]
imul eax, dword [ebp - 0x2c4]
mov edi, dword [ebp - 0x27c]
mov ecx, dword [ebp - 0x280]
mov edx, dword [ebp - 0x280]
mov dword [ebp - 0x2cc], eax
mov dword [edi + ecx + 0x20], eax
mov eax, edi
mov edi, dword [ebp - 0x2c4]
mov ecx, dword [eax + ecx]
cmp ecx, 1
lea eax, [edi - 1]
cmovne eax, edi
mov edi, dword [ebp - 0x2b4]
inc eax
mov dword [ebp - 0x2c4], eax
xor eax, eax
cmp ecx, 1
mov ecx, dword [ebp - 0x2cc]
cmovne eax, dword [ebp - 0x2b8]
jmp 0x1005650f
mov eax, dword [ebp - 0x2b8]
add ecx, eax
mov eax, dword [ebp - 0x27c]
mov dword [eax + edx + 0x28], ecx
mov eax, dword [ebp - 0x2d8]
mov edx, dword [ebp - 0x284]
cmp dword [eax + edx*4], ecx
jge 0x1005652f
mov dword [eax + edx*4], ecx
add dword [ebp - 0x278], esi
lea esi, [edi + 0xa0]
inc dword [ebp - 0x298]
mov edx, dword [ebp - 0x294]
mov eax, dword [esi]
inc edx
mov ecx, dword [esi + 4]
sub ecx, eax
mov dword [ebp - 0x280], eax
mov dword [ebp - 0x294], edx
mov eax, 0x30c30c31
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, dword [ebp - 0x294]
cmp edx, eax
jl 0x10055840
push dword [ebp - 0x2e0]
mov esi, dword [ebp - 0x31c]
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [ebp - 0x2d4]
mov ecx, dword [ebp - 0x2d8]
sub eax, ecx
sar eax, 2
cmp eax, 1
jne 0x100565e0
cmp byte [0x1014b4d1], 0
je 0x100565d7
cmp byte [edi + 0x30], 0
jne 0x100565d7
lea eax, [ebp - 0x2e0]
mov dword [ebp - 0x2e0], 0
push eax
lea ecx, [ebp - 0x2d8]
call fcn.10012140
jmp 0x10056601
mov byte [edi + 0x108], 0
jmp 0x10056607
cmp eax, 2
jne 0x10056607
cmp byte [0x1014b4d1], 0
je 0x10056607
cmp byte [edi + 0x30], 0
jne 0x10056607
cmp dword [ecx + 4], 0x40
jge 0x10056607
mov dword [ecx + 4], 0x40
mov ecx, dword [ebp - 0x2d8]
cmp byte [edi + 0x108], 0
jne 0x1005667e
push str.SameSizeColumns
mov ecx, 0x1014e914
call fcn.100a5b00
mov ecx, dword [ebp - 0x2d8]
test al, al
je 0x1005667e
mov eax, dword [ebp - 0x2d4]
xor edx, edx
sub eax, ecx
xor esi, esi
sar eax, 2
mov dword [ebp - 0x29c], eax
test eax, eax
je 0x1005665f
mov edi, eax
mov eax, dword [ecx + esi*4]
cmp edx, eax
cmovge eax, edx
inc esi
mov edx, eax
cmp esi, edi
jb 0x10056644
mov edi, dword [ebp - 0x2b4]
mov eax, dword [ebp - 0x29c]
xor esi, esi
test eax, eax
je 0x1005667e
mov dword [ecx + esi*4], edx
inc esi
mov eax, dword [ebp - 0x2d4]
mov ecx, dword [ebp - 0x2d8]
sub eax, ecx
sar eax, 2
cmp esi, eax
jb 0x10056665
cmp byte [ebx + 8], 0
je 0x1005669c
mov eax, dword [edi + 0x124]
sub eax, dword [edi + 0x11c]
cmp dword [ecx], eax
jge 0x1005669c
mov dword [ecx], eax
mov ecx, dword [ebp - 0x2d8]
cmp byte [0x1014b4d1], 0
je 0x100566ca
mov eax, dword [ebp - 0x2a8]
test eax, eax
js 0x100566b7
mov dword [ecx], eax
mov ecx, dword [ebp - 0x2d8]
mov eax, dword [ebp - 0x2a4]
test eax, eax
js 0x100566ca
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x2d8]
cmp dword [0x1014b630], 2
jne 0x10056857
mov esi, dword [ebp - 0x2d4]
sub esi, ecx
sar esi, 2
cmp esi, 1
jbe 0x10056857
cmp byte [edi + 0x30], 0
je 0x10056857
xor edx, edx
xor eax, eax
test esi, esi
je 0x10056712
nop dword [eax]
test eax, eax
je 0x1005670a
add edx, dword [0x1014e680]
add edx, dword [ecx + eax*4]
inc eax
cmp eax, esi
jb 0x10056700
cmp edx, dword [ebp - 0x288]
jle 0x10056857
lea eax, [ebp - 0x2d8]
mov byte [ebp - 0x28a], 0
push eax
push 1
mov ecx, eax
xor esi, esi
call fcn.100126e0
mov eax, dword [ebp - 0x2d8]
xor ecx, ecx
mov dword [ebp - 0x2ac], ecx
mov dword [eax], esi
mov eax, 0x30c30c31
mov edx, dword [edi + 0xa0]
mov ecx, dword [edi + 0xa4]
sub ecx, edx
mov dword [ebp - 0x2a4], edx
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x10056857
xor eax, eax
mov dword [ebp - 0x298], eax
nop word [eax + eax]
mov edx, dword [ebp - 0x2a4]
imul eax, dword [eax + edx + 0x14], 0x128
mov dword [ebp - 0x288], eax
mov ecx, dword [eax + 0x1014c288]
mov eax, dword [ebp - 0x298]
cmp dword [eax + edx], 1
jne 0x100567d1
test byte [eax + edx + 0x31], 0x10
jne 0x100567d1
mov eax, dword [eax + edx + 8]
cmp dword [eax - 0xc], 0
mov eax, dword [ebp - 0x298]
jne 0x100567d1
test esi, esi
jne 0x100567c5
xor ecx, ecx
jmp 0x100567d1
mov ecx, dword [ebp - 0x288]
mov ecx, dword [ecx + 0x1014c280]
mov eax, dword [eax + edx + 0x28]
mov edx, dword [ebp - 0x2d8]
cmp dword [edx], eax
jge 0x100567e1
mov dword [edx], eax
mov edx, dword [ebp - 0x2a4]
mov edi, dword [ebp - 0x298]
mov eax, dword [ebp - 0x2ac]
mov dword [edi + edx + 0x1c], eax
inc eax
mov dword [edi + edx + 0x24], esi
add esi, ecx
mov ecx, edi
mov dword [edi + edx + 0x18], 0
mov edi, dword [ebp - 0x2c8]
mov dword [ebp - 0x2ac], eax
mov eax, 0x30c30c31
mov dword [ecx + edx + 0x2c], esi
add ecx, 0x54
mov edx, dword [edi]
mov dword [ebp - 0x298], ecx
mov ecx, dword [edi + 4]
sub ecx, edx
mov dword [ebp - 0x2a4], edx
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x2ac], eax
mov eax, dword [ebp - 0x298]
jb 0x10056780
mov edi, dword [ebp - 0x2b4]
xor eax, eax
mov dword [ebp - 0x314], 0
push 2
mov dword [ebp - 0x294], eax
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x290], eax
mov dword [ebp - 0x300], eax
call dword [sym.imp.USER32.dll_GetSystemMetrics]
mov ecx, dword [ebp - 0x2d4]
sub ecx, dword [ebp - 0x2d8]
mov dword [ebp - 0x2e8], eax
lea eax, [edi + 0x94]
sar ecx, 2
push eax
push ecx
mov ecx, eax
mov dword [ebp - 0x288], eax
call fcn.100126e0
mov eax, dword [ebp - 0x2d4]
xor esi, esi
sub eax, dword [ebp - 0x2d8]
sar eax, 2
test eax, eax
je 0x10056912
mov edx, dword [ebp - 0x314]
test esi, esi
je 0x100568e4
cmp byte [edi + 0x30], 0
mov eax, dword [0x1014e254]
cmovne eax, dword [0x1014e680]
add edx, eax
mov dword [ebp - 0x314], edx
mov eax, dword [edi + 0x94]
mov dword [eax + esi*4], edx
mov ecx, dword [ebp - 0x2d8]
mov edx, dword [ebp - 0x314]
mov eax, dword [ebp - 0x2d4]
sub eax, ecx
add edx, dword [ecx + esi*4]
inc esi
sar eax, 2
mov dword [ebp - 0x314], edx
cmp esi, eax
jb 0x100568c8
lea eax, [ebp - 0x314]
push eax
lea ecx, [ebp - 0x2d8]
call fcn.10012140
mov esi, dword [edi + 0xa0]
xor cl, cl
mov byte [ebp - 0x289], cl
mov eax, 0x30c30c31
xor ecx, ecx
mov dword [ebp - 0x284], ecx
mov ecx, dword [edi + 0xa4]
sub ecx, esi
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
test eax, eax
jle 0x10056dbe
xor ecx, ecx
mov dword [ebp - 0x278], ecx
test byte [ecx + esi + 0x30], 0x20
je 0x100569bb
mov edx, dword [ecx + esi + 0x18]
mov eax, dword [edi + 0x94]
mov byte [ebp - 0x289], 1
mov ecx, dword [eax + edx*4]
mov eax, dword [ebp - 0x278]
mov eax, dword [eax + esi + 0x20]
add eax, ecx
mov ecx, dword [ebp - 0x278]
mov dword [ecx + esi + 0x20], eax
mov eax, dword [edi + 0x94]
mov ecx, dword [eax + edx*4]
mov eax, dword [ebp - 0x278]
mov edx, dword [ebp - 0x284]
mov eax, dword [eax + esi + 0x28]
add eax, ecx
mov ecx, dword [ebp - 0x278]
mov dword [ecx + esi + 0x28], eax
jmp 0x10056a06
mov edx, dword [ecx + esi]
cmp edx, 0x26
jne 0x10056b99
mov ecx, dword [0x1014c2ac]
imul ecx, dword [0x1014b534]
mov edx, dword [ebp - 0x278]
add ecx, dword [0x1014e87c]
add ecx, dword [0x1014e874]
add ecx, dword [0x1014e86c]
mov eax, ecx
sub eax, dword [edx + esi + 0x20]
add dword [edx + esi + 0x28], eax
mov dword [edx + esi + 0x20], ecx
mov edx, dword [ebp - 0x284]
mov ecx, dword [ebp - 0x278]
cmp byte [edi + 0x108], 0
je 0x10056c83
mov eax, dword [ecx + esi + 0x18]
mov ecx, dword [ecx + esi + 0x2c]
cmp dword [ebp + eax*4 - 0x304], ecx
jge 0x10056a37
mov dword [ebp + eax*4 - 0x304], ecx
mov eax, dword [ebp - 0x304]
mov dword [ebp - 0x294], eax
mov ecx, dword [ebp - 0x278]
mov eax, dword [edi + 0xa4]
add ecx, 0x54
mov esi, dword [edi + 0xa0]
inc edx
mov dword [ebp - 0x278], ecx
mov ecx, eax
mov dword [ebp - 0x29c], eax
sub ecx, esi
mov dword [ebp - 0x284], edx
mov eax, 0x30c30c31
imul ecx
mov ecx, dword [ebp - 0x278]
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x284], eax
jl 0x10056963
cmp byte [ebp - 0x289], 0
mov dword [ebp - 0x2ac], esi
je 0x10056db2
xor esi, esi
test eax, eax
je 0x10056db2
mov ecx, dword [ebp - 0x2ac]
imul edx, esi, 0x54
add edx, ecx
mov dword [ebp - 0x2cc], edx
test byte [edx + 0x30], 0x40
je 0x10056d6b
mov eax, dword [edx]
mov edi, esi
mov dword [ebp - 0x2c4], eax
inc esi
mov eax, dword [edx + 0x28]
sub eax, dword [edx + 0x20]
mov edx, dword [ebp - 0x29c]
mov dword [ebp - 0x2a4], eax
sub edx, ecx
mov eax, 0x30c30c31
mov dword [ebp - 0x2e0], edi
imul edx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [ebp - 0x288], eax
cmp esi, eax
jae 0x10056b38
mov edx, dword [ebp - 0x2a4]
add ecx, 0x28
mov edi, dword [ebp - 0x288]
imul eax, esi, 0x54
add ecx, eax
mov al, byte [ecx + 8]
test al, 0x20
je 0x10056b2c
test al, 0x40
jne 0x10056b2c
mov eax, dword [ecx]
inc esi
sub eax, dword [ecx - 8]
add ecx, 0x54
add edx, eax
cmp esi, edi
jb 0x10056b12
mov edi, dword [ebp - 0x2e0]
mov dword [ebp - 0x2a4], edx
mov ecx, dword [ebp - 0x2cc]
mov eax, dword [ebp - 0x2d8]
mov dword [ebp - 0x29c], esi
dec esi
mov dword [ebp - 0x2cc], esi
mov ecx, dword [ecx + 0x18]
mov edx, dword [eax + ecx*4]
mov eax, dword [ebp - 0x2ac]
sub edx, dword [ebp - 0x2a4]
imul ecx, esi, 0x54
cmp dword [ebp - 0x2c4], 1
mov dword [ebp - 0x2a4], edx
mov eax, dword [ecx + eax]
je 0x10056ca3
cmp eax, 1
je 0x10056ca8
mov eax, edx
cdq
sub eax, edx
mov edx, eax
sar edx, 1
mov dword [ebp - 0x2a4], edx
jmp 0x10056cb2
cmp byte [0x1014b4d1], 0
je 0x10056bca
cmp edx, 0x2f
jne 0x10056bca
mov edx, dword [ebp - 0x284]
mov dword [ecx + esi + 0x20], 0
mov eax, dword [0x1014c2ac]
imul eax, dword [0x1014b534]
mov dword [ecx + esi + 0x28], eax
jmp 0x10056a06
mov eax, dword [ebp - 0x288]
mov ecx, dword [ecx + esi + 0x18]
mov edi, dword [ebp - 0x278]
mov eax, dword [eax]
mov eax, dword [eax + ecx*4]
mov dword [ebp - 0x29c], eax
mov dword [edi + esi + 0x20], eax
mov eax, dword [ebp - 0x2d8]
mov eax, dword [eax + ecx*4]
mov ecx, dword [ebp - 0x29c]
add ecx, eax
cmp dword [0x1014b4d4], 2
mov eax, edi
mov edi, dword [ebp - 0x2b4]
mov dword [eax + esi + 0x28], ecx
jne 0x100569fa
cmp byte [edi + 0x30], 0
jne 0x100569fa
test edx, edx
je 0x10056c2a
cmp edx, 0x31
jne 0x100569fa
mov edx, dword [ebp - 0x284]
cmp edx, dword [edi + 0x1c8]
jl 0x10056a00
mov eax, dword [eax + esi + 0x48]
and eax, 0xf
cmp al, 7
je 0x10056c61
mov eax, dword [0x1014e248]
mov ecx, dword [ebp - 0x278]
add eax, dword [ebp - 0x29c]
mov dword [ecx + esi + 0x20], eax
jmp 0x10056a06
cmp byte [0x1014b4d1], 0
je 0x10056a00
mov eax, dword [ebp - 0x278]
sub ecx, dword [ebp - 0x2e8]
mov dword [eax + esi + 0x28], ecx
jmp 0x10056a00
mov eax, dword [ecx + esi + 0x2c]
mov esi, dword [ebp - 0x294]
cmp esi, eax
cmovl esi, eax
mov dword [ebp - 0x294], esi
mov dword [ebp - 0x304], esi
jmp 0x10056a3d
cmp eax, 1
jne 0x10056cb2
mov dword [ebp - 0x2a4], 0
or ecx, 0xffffffff
or eax, ecx
mov dword [ebp - 0x2ac], ecx
cmp edi, dword [ebp - 0x29c]
jge 0x10056d6b
mov esi, eax
nop dword [eax + eax]
mov eax, dword [ebp - 0x2c8]
imul edx, edi, 0x54
mov dword [ebp - 0x288], esi
mov eax, dword [eax]
mov dword [ebp - 0x2e0], edx
add edx, eax
mov eax, dword [edx]
cmp eax, 1
je 0x10056cff
test ecx, ecx
mov eax, edi
cmovns eax, ecx
mov dword [ebp - 0x2ac], eax
mov eax, dword [edx]
push 0
push dword [ebp - 0x2a4]
cmp eax, 1
mov esi, edi
lea eax, [edx + 0x20]
cmove esi, dword [ebp - 0x288]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov edx, dword [ebp - 0x2c8]
inc edi
mov ecx, dword [ebp - 0x2e0]
mov eax, dword [edx]
and byte [eax + ecx + 0x30], 0xbf
mov ecx, dword [ebp - 0x2ac]
cmp edi, dword [ebp - 0x29c]
jl 0x10056cd0
mov eax, ecx
mov dword [ebp - 0x2c4], esi
mov esi, dword [ebp - 0x2cc]
test eax, eax
js 0x10056d71
imul ecx, eax, 0x54
mov eax, dword [edx]
or byte [ecx + eax + 0x30], 0x40
imul ecx, dword [ebp - 0x2c4], 0x54
mov eax, dword [edx]
or byte [ecx + eax + 0x30], 0x80
jmp 0x10056d71
mov edx, dword [ebp - 0x2c8]
mov ecx, dword [edx + 4]
inc esi
mov eax, dword [edx]
mov dword [ebp - 0x2ac], eax
mov dword [ebp - 0x29c], ecx
sub ecx, eax
mov eax, 0x30c30c31
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x10056aa3
mov ecx, dword [ebp - 0x300]
mov edi, dword [ebp - 0x2b4]
mov dword [ebp - 0x290], ecx
jmp 0x10056dbe
mov eax, dword [ebp - 0x300]
mov dword [ebp - 0x290], eax
mov eax, dword [edi + 0xf0]
mov esi, dword [sym.imp.GDI32.dll_DeleteObject]
test eax, eax
je 0x10056ddb
push eax
call esi
mov dword [edi + 0xf0], 0
mov eax, dword [edi + 0xf8]
test eax, eax
je 0x10056df2
push eax
call esi
mov dword [edi + 0xf8], 0
cmp byte [ebp - 0x28a], 0
mov esi, dword [ebp - 0x294]
mov dword [edi + 0x174], 0
mov dword [edi + 0x170], 0
mov dword [edi + 0x16c], 0
jne 0x10056e97
cmp esi, dword [ebp - 0x2c0]
jle 0x10056e97
cmp dword [edi + 0x178], 0
jle 0x10056e97
cmp byte [edi + 0x30], 0
je 0x10056e97
mov ecx, dword [ebp - 0x244]
mov edx, dword [ebp - 0x2bc]
sub ecx, edx
mov eax, dword [ebp - 0x23c]
add ecx, eax
add ecx, esi
mov esi, dword [ebp - 0x244]
cmp ecx, esi
jg 0x10056e68
mov dword [edi + 0x16c], ecx
jmp 0x10056e7f
sub ecx, esi
mov dword [edi + 0x16c], esi
cmp ecx, dword [ebp - 0x2a0]
cmovle eax, ecx
mov dword [edi + 0x170], eax
mov eax, dword [ebp - 0x2b0]
mov esi, dword [ebp - 0x294]
mov dword [edi + 0x174], eax
mov dword [ebp - 0x2c0], edx
mov ecx, dword [0x1014b578]
xorps xmm0, xmm0
cmp ecx, 0xffffffff
movups xmmword [edi + 0x12c], xmm0
sete dl
cmp byte [edi + 0x30], 0
mov byte [ebp - 0x289], dl
jne 0x10056eeb
mov eax, dword [0x1014b570]
cmp eax, 0xffffffff
jne 0x10056ed6
mov eax, dword [ebp - 0x290]
mov dword [0x1014b570], esi
mov dword [0x1014b574], eax
jmp 0x10056eeb
test dl, dl
je 0x10056eeb
mov dword [ebp - 0x294], eax
mov eax, dword [0x1014b574]
mov dword [ebp - 0x290], eax
mov edi, dword [ebp - 0x2c0]
xor eax, eax
cmp dword [ebp - 0x294], edi
mov esi, edi
mov edi, dword [ebp - 0x2bc]
cmovl esi, dword [ebp - 0x294]
cmp dword [ebp - 0x290], edi
mov edx, dword [ebp - 0x314]
cmovl edi, dword [ebp - 0x290]
mov dword [ebp - 0x2bc], edi
mov edi, dword [ebp - 0x2b4]
mov dword [ebp - 0x2a8], edx
mov dword [ebp - 0x2a4], eax
cmp byte [edi + 0x108], al
je 0x10057011
mov eax, dword [ebp - 0x2d4]
sub eax, dword [ebp - 0x2d8]
sar eax, 2
cmp eax, 2
jbe 0x1005700f
cmp byte [0x1014b4d1], 0
mov eax, dword [ebp - 0x2d8]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x2a8], edx
mov dword [ebp - 0x2a4], eax
je 0x10057011
cmp byte [ebp - 0x289], 0
je 0x10056ff3
push str.MinMainHeight
mov ecx, 0x1014e914
call fcn.100a5b80
imul eax, dword [0x1014dd20]
cmp esi, eax
cmovge eax, esi
mov esi, dword [ebp - 0x23c]
add eax, dword [ebp - 0x244]
lea ecx, [eax + esi]
mov eax, dword [ebp - 0x2bc]
add eax, dword [ebp - 0x234]
mov edx, ecx
add eax, dword [ebp - 0x22c]
cmp ecx, eax
jge 0x10056fce
mov ecx, eax
mov edx, eax
mov eax, dword [ebp - 0x244]
add eax, esi
add eax, dword [ebp - 0x2c0]
cmp edx, eax
mov edx, dword [ebp - 0x2a8]
cmovg ecx, eax
mov eax, dword [ebp - 0x2a4]
mov dword [0x1014b578], ecx
mov esi, ecx
sub ecx, dword [ebp - 0x234]
sub esi, dword [ebp - 0x244]
sub esi, dword [ebp - 0x2a0]
sub ecx, dword [ebp - 0x22c]
jmp 0x10057017
xor eax, eax
mov ecx, dword [ebp - 0x2bc]
cmp byte [edi + 0x30], 0
jne 0x1005716c
cmp byte [0x1014b4d1], 0
je 0x10057086
cmp dword [0x1014e8dc], 0xffffffff
lea edi, [ebp - 0x2f8]
mov dword [0x1014b560], edx
mov dword [0x1014b55c], eax
mov dword [0x1014b558], esi
mov dword [0x1014b554], ecx
jne 0x10057068
push 1
push edi
lea edi, [ebp - 0x2ec]
push edi
mov edi, dword [ebp - 0x2b4]
push ecx
push esi
push eax
jmp 0x1005712a
push edi
lea edi, [ebp - 0x2ec]
push edi
mov edi, dword [ebp - 0x2b4]
push ecx
push esi
push eax
push edx
mov ecx, edi
call fcn.1006cd60
jmp 0x10057132
cmp byte [0x1014e104], 0
je 0x1005709c
cmp dword [0x1014e108], 0
jne 0x10057112
cmp dword [0x1014e784], 0
jne 0x10057112
cmp byte [edi + 0x108], 0
jne 0x10057112
mov eax, dword [0x1014e794]
cmp eax, dword [0x1014e79c]
jne 0x10057112
mov ecx, dword [ebp - 0x248]
mov eax, dword [ebp - 0x244]
mov dword [edi + 0x120], eax
mov dword [edi + 0x11c], ecx
lea eax, [ecx + edx]
add ecx, dword [ebp - 0x240]
mov dword [edi + 0x124], eax
add ecx, edx
mov eax, dword [ebp - 0x244]
add eax, esi
mov dword [ebp - 0x2ec], ecx
mov dword [edi + 0x128], eax
mov eax, dword [ebp - 0x23c]
add eax, dword [ebp - 0x244]
add eax, esi
mov dword [ebp - 0x2f8], eax
jmp 0x10057138
push 1
lea eax, [ebp - 0x2f8]
push eax
lea eax, [ebp - 0x2ec]
push eax
push ecx
push esi
push dword [ebp - 0x2a4]
push edx
mov ecx, edi
call fcn.10069870
mov ecx, dword [ebp - 0x2ec]
cmp byte [ebp - 0x289], 0
je 0x1005720e
mov eax, dword [0x1014b568]
cmp eax, ecx
cmovl eax, ecx
cmp dword [0x1014b4d4], 0
mov dword [0x1014b564], eax
jne 0x1005720e
mov dword [0x1014b56c], ecx
jmp 0x1005720e
cmp byte [ebx + 8], 0
je 0x10057183
mov eax, dword [edi + 0x128]
sub eax, dword [edi + 0x120]
cmp esi, eax
cmovl esi, eax
mov ecx, 0x1014e624
call fcn.1003c010
test eax, eax
je 0x1005719f
push esi
push dword [ebp - 0x2a8]
mov ecx, edi
call fcn.1006ce70
mov eax, dword [ebp - 0x248]
mov edx, dword [edi + 0x16c]
mov ecx, dword [ebp - 0x244]
mov dword [edi + 0x11c], eax
sub ecx, edx
mov eax, dword [ebp - 0x2a8]
add eax, dword [ebp - 0x248]
mov dword [edi + 0x124], eax
lea eax, [esi + ecx]
mov dword [edi + 0x120], ecx
mov dword [edi + 0x128], eax
mov eax, dword [ebp - 0x248]
add eax, dword [ebp - 0x240]
add eax, dword [ebp - 0x2a8]
mov dword [ebp - 0x2ec], eax
mov eax, dword [ebp - 0x244]
sub eax, dword [edi + 0x170]
sub eax, edx
add eax, dword [ebp - 0x23c]
add eax, esi
mov dword [ebp - 0x2f8], eax
lea ecx, [edi + 0xa0]
xor esi, esi
call fcn.10010310
test eax, eax
je 0x10057297
push esi
lea ecx, [edi + 0xa0]
call fcn.10010300
cmp byte [edi + 0x108], 0
mov edx, eax
mov ecx, dword [edi + 0x11c]
mov eax, dword [edi + 0x120]
mov dword [ebp - 0x288], edx
je 0x10057273
cmp dword [edx + 0x18], 1
jne 0x10057273
push 1
lea ecx, [edi + 0x94]
call fcn.10012120
mov ecx, dword [edi + 0x12c]
mov edx, dword [ebp - 0x288]
sub ecx, dword [eax]
mov eax, dword [edi + 0x130]
push eax
xor eax, eax
cmp dword [edx], 0x26
cmovne eax, ecx
push eax
lea eax, [edx + 0x20]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
lea ecx, [edi + 0xa0]
inc esi
call fcn.10010310
cmp esi, eax
jb 0x10057223
cmp byte [edi + 0x108], 0
je 0x10057a09
lea ecx, [ebp - 0x2d8]
call fcn.10012130
cmp eax, 2
jbe 0x10057a09
xor eax, eax
xor esi, esi
xor ecx, ecx
mov dword [ebp - 0x2a0], eax
mov dword [ebp - 0x29c], esi
mov dword [ebp - 0x2b0], ecx
cmp dword [edi + 0x1c8], eax
jle 0x10057336
nop dword [eax + eax]
push ecx
lea ecx, [edi + 0xa0]
mov dword [ebp - 0x288], eax
call fcn.10010300
cmp dword [eax + 0x18], 0
mov eax, dword [eax + 0x2c]
jne 0x10057310
cmp dword [ebp - 0x288], eax
cmovge eax, dword [ebp - 0x288]
mov dword [ebp - 0x2a0], eax
jmp 0x1005731b
cmp esi, eax
cmovl esi, eax
mov eax, dword [ebp - 0x2a0]
mov ecx, dword [ebp - 0x2b0]
inc ecx
mov dword [ebp - 0x2b0], ecx
cmp ecx, dword [edi + 0x1c8]
jl 0x100572e0
mov dword [ebp - 0x29c], esi
mov edx, dword [ebp - 0x2f8]
mov eax, edx
sub eax, dword [ebp - 0x23c]
sub edx, dword [ebp - 0x22c]
mov esi, eax
sub esi, dword [ebp - 0x2a0]
mov ecx, dword [0x1014b4d4]
cmp ecx, 2
mov dword [edi + 0x138], edx
cmove edx, eax
mov dword [edi + 0x128], eax
sub edx, dword [ebp - 0x29c]
cmp byte [0x1014b4d1], 0
mov dword [ebp - 0x280], esi
mov dword [ebp - 0x27c], edx
jne 0x100573a8
xor eax, eax
test esi, esi
cmovns eax, esi
mov esi, eax
mov dword [ebp - 0x280], esi
test edx, edx
jns 0x100573a8
mov dword [ebp - 0x27c], 0
mov dword [ebp - 0x280], eax
xor eax, eax
mov byte [ebp - 0x289], 0
mov byte [ebp - 0x2ed], 0
mov dword [ebp - 0x2b0], eax
cmp dword [edi + 0x1c8], eax
jle 0x1005747e
nop word [eax + eax]
push eax
lea ecx, [edi + 0xa0]
call fcn.10010300
mov esi, eax
cmp dword [esi + 0x18], 0
jne 0x1005740a
test byte [esi + 0x30], 8
je 0x100573f9
push dword [ebp - 0x280]
mov byte [ebp - 0x289], 1
jmp 0x10057428
cmp byte [ebp - 0x289], 0
je 0x10057434
push dword [ebp - 0x280]
jmp 0x10057428
test byte [esi + 0x30], 8
je 0x10057419
mov byte [ebp - 0x2ed], 1
jmp 0x10057422
cmp byte [ebp - 0x2ed], 0
je 0x10057434
push dword [ebp - 0x27c]
push 0
lea eax, [esi + 0x20]
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
cmp dword [esi], 0x26
jne 0x10057459
mov eax, dword [0x1014e1e4]
add dword [esi + 0x20], eax
mov eax, dword [0x1014e1ec]
sub dword [esi + 0x28], eax
mov eax, dword [0x1014e1e8]
add dword [esi + 0x24], eax
mov eax, dword [0x1014e1f0]
sub dword [esi + 0x2c], eax
mov eax, dword [ebp - 0x2b0]
inc eax
mov dword [ebp - 0x2b0], eax
cmp eax, dword [edi + 0x1c8]
jl 0x100573d0
mov ecx, dword [0x1014b4d4]
mov esi, dword [ebp - 0x280]
test ecx, ecx
je 0x10057490
cmp ecx, 3
je 0x10057490
cmp ecx, 1
jne 0x10057900
neg esi
mov dword [ebp - 0x280], esi
test esi, esi
jle 0x10057900
mov edi, dword [ebp - 0x2c8]
lea eax, [ebp - 0x2bc]
push eax
mov ecx, edi
call fcn.10026750
lea eax, [ebp - 0x298]
mov ecx, edi
push eax
call fcn.10026750
lea eax, [ebp - 0x290]
mov ecx, edi
push eax
call fcn.10026750
lea eax, [ebp - 0x284]
mov ecx, edi
push eax
call fcn.10026750
lea eax, [ebp - 0x278]
mov ecx, edi
push eax
call fcn.10035120
lea eax, [ebp - 0x288]
mov ecx, edi
push eax
call fcn.10026750
mov edx, eax
lea ecx, [ebp - 0x278]
call fcn.10062de0
test al, al
je 0x10057678
nop
lea ecx, [ebp - 0x278]
call fcn.100620c0
cmp dword [eax], 0
jne 0x1005755e
lea ecx, [ebp - 0x278]
call fcn.100620c0
cmp dword [eax + 0x18], 0
jne 0x1005755e
lea eax, [ebp - 0x2e0]
mov ecx, edi
push eax
call fcn.10026750
mov edx, eax
lea ecx, [ebp - 0x2bc]
call fcn.10062df0
test al, al
je 0x100575ad
mov eax, dword [ebp - 0x278]
mov dword [ebp - 0x2bc], eax
jmp 0x100575ad
lea eax, [ebp - 0x2cc]
mov ecx, edi
push eax
call fcn.10026750
mov edx, eax
lea ecx, [ebp - 0x298]
call fcn.10062df0
test al, al
je 0x100575ad
lea eax, [ebp - 0x2b0]
mov ecx, edi
push eax
call fcn.10026750
mov edx, eax
lea ecx, [ebp - 0x2bc]
call fcn.10062de0
mov ecx, dword [ebp - 0x298]
test al, al
cmovne ecx, dword [ebp - 0x278]
mov dword [ebp - 0x298], ecx
lea ecx, [ebp - 0x278]
call fcn.100620c0
cmp dword [eax], 4
jne 0x100575fb
lea ecx, [ebp - 0x278]
call fcn.100620c0
cmp dword [eax + 0x18], 0
jne 0x100575fb
lea eax, [ebp - 0x29c]
mov ecx, edi
push eax
call fcn.10026750
mov edx, eax
lea ecx, [ebp - 0x290]
call fcn.10062df0
test al, al
je 0x1005764a
mov eax, dword [ebp - 0x278]
mov dword [ebp - 0x290], eax
jmp 0x1005764a
lea eax, [ebp - 0x2a0]
mov ecx, edi
push eax
call fcn.10026750
mov edx, eax
lea ecx, [ebp - 0x284]
call fcn.10062df0
test al, al
je 0x1005764a
lea eax, [ebp - 0x2a4]
mov ecx, edi
push eax
call fcn.10026750
mov edx, eax
lea ecx, [ebp - 0x290]
call fcn.10062de0
mov ecx, dword [ebp - 0x284]
test al, al
cmovne ecx, dword [ebp - 0x278]
mov dword [ebp - 0x284], ecx
lea ecx, [ebp - 0x278]
call fcn.100620b0
lea eax, [ebp - 0x288]
mov ecx, edi
push eax
call fcn.10026750
mov edx, eax
lea ecx, [ebp - 0x278]
call fcn.10062de0
test al, al
jne 0x10057510
xor eax, eax
lea edx, [ebp - 0x284]
mov dword [ebp - 0x2a8], eax
lea ecx, [ebp - 0x278]
mov eax, dword [ebp - 0x290]
mov dword [ebp - 0x278], eax
call fcn.10062de0
test al, al
je 0x10057861
lea ecx, [ebp - 0x278]
call fcn.100620c0
lea ecx, [ebp - 0x278]
lea esi, [eax + 0x2c]
call fcn.100620c0
mov edi, dword [esi]
lea ecx, [ebp - 0x278]
sub edi, dword [eax + 0x24]
call fcn.100620c0
lea ecx, [ebp - 0x278]
mov esi, dword [eax + 0x24]
call fcn.100620c0
add dword [ebp - 0x2a8], edi
lea ecx, [ebp - 0x278]
push 1
mov dword [eax + 0x2c], esi
lea eax, [ebp - 0x288]
mov esi, dword [ebp - 0x280]
sub esi, edi
push eax
mov dword [ebp - 0x280], esi
call fcn.10062090
lea edx, [ebp - 0x284]
mov ecx, eax
call fcn.10062df0
test al, al
je 0x1005772d
lea edx, [ebp - 0x298]
lea ecx, [ebp - 0x2bc]
call fcn.10062de0
test al, al
jne 0x1005775e
test esi, esi
jle 0x100577cb
lea ecx, [ebp - 0x278]
call fcn.100620b0
lea edx, [ebp - 0x284]
lea ecx, [ebp - 0x278]
call fcn.10062de0
test al, al
jne 0x100576a5
jmp 0x100577cb
mov ecx, str.RecentProgsTop
call fcn.100aa7f0
mov ecx, dword [ebp - 0x284]
test al, al
cmovne ecx, dword [ebp - 0x298]
mov dword [ebp - 0x278], ecx
lea ecx, [ebp - 0x278]
call fcn.100620c0
lea ecx, [ebp - 0x278]
lea esi, [eax + 0x2c]
call fcn.100620c0
mov edi, dword [esi]
lea ecx, [ebp - 0x278]
sub edi, dword [eax + 0x24]
call fcn.100620c0
lea ecx, [ebp - 0x278]
mov esi, dword [eax + 0x24]
call fcn.100620c0
mov dword [eax + 0x2c], esi
mov esi, dword [ebp - 0x280]
sub esi, edi
add dword [ebp - 0x2a8], edi
mov dword [ebp - 0x280], esi
mov edi, dword [ebp - 0x2a8]
test edi, edi
jle 0x10057861
mov ecx, str.RecentProgsTop
call fcn.100aa7f0
test al, al
je 0x10057861
lea edx, [ebp - 0x298]
lea ecx, [ebp - 0x2bc]
call fcn.10062de0
test al, al
je 0x10057861
mov eax, dword [ebp - 0x2bc]
lea edx, [ebp - 0x290]
lea ecx, [ebp - 0x2a8]
mov dword [ebp - 0x2a8], eax
call fcn.10062de0
test al, al
je 0x10057861
lea ecx, [ebp - 0x2a8]
call fcn.100620c0
lea ecx, [ebp - 0x2a8]
sub dword [eax + 0x24], edi
call fcn.100620c0
lea ecx, [ebp - 0x2a8]
sub dword [eax + 0x2c], edi
call fcn.100620b0
lea edx, [ebp - 0x290]
lea ecx, [ebp - 0x2a8]
call fcn.10062de0
test al, al
jne 0x10057825
mov eax, dword [ebp - 0x2bc]
lea edx, [ebp - 0x298]
lea ecx, [ebp - 0x2b8]
mov dword [ebp - 0x2b8], eax
call fcn.10062de0
test al, al
je 0x100578fa
test esi, esi
jle 0x100578fa
lea ecx, [ebp - 0x2b8]
call fcn.100620c0
lea ecx, [ebp - 0x2b8]
lea esi, [eax + 0x2c]
call fcn.100620c0
mov edi, dword [esi]
lea ecx, [ebp - 0x2b8]
sub edi, dword [eax + 0x24]
call fcn.100620c0
lea ecx, [ebp - 0x2b8]
mov esi, dword [eax + 0x24]
call fcn.100620c0
mov dword [eax + 0x2c], esi
mov esi, dword [ebp - 0x280]
sub esi, edi
mov dword [ebp - 0x280], esi
test esi, esi
jle 0x100578fa
lea ecx, [ebp - 0x2b8]
call fcn.100620b0
lea edx, [ebp - 0x298]
lea ecx, [ebp - 0x2b8]
call fcn.10062de0
test al, al
jne 0x10057886
mov ecx, dword [0x1014b4d4]
test ecx, ecx
je 0x1005790d
cmp ecx, 1
jne 0x10057a09
mov eax, dword [ebp - 0x27c]
neg eax
mov dword [ebp - 0x27c], eax
test eax, eax
jle 0x10057a09
mov esi, dword [ebp - 0x2c8]
lea eax, [ebp - 0x284]
push eax
mov ecx, esi
call fcn.10035120
lea eax, [ebp - 0x288]
mov ecx, esi
push eax
call fcn.10026750
mov edx, eax
lea ecx, [ebp - 0x284]
call fcn.10062de0
test al, al
je 0x10057a09
nop word [eax + eax]
lea ecx, [ebp - 0x284]
call fcn.100620c0
cmp dword [eax], 0x26
je 0x100579db
lea ecx, [ebp - 0x284]
call fcn.100620c0
cmp dword [eax + 0x18], 0
je 0x10057a09
lea ecx, [ebp - 0x284]
call fcn.100620c0
lea ecx, [ebp - 0x284]
lea esi, [eax + 0x2c]
call fcn.100620c0
mov edi, dword [esi]
lea ecx, [ebp - 0x284]
sub edi, dword [eax + 0x24]
call fcn.100620c0
lea ecx, [ebp - 0x284]
mov esi, dword [eax + 0x24]
call fcn.100620c0
mov dword [eax + 0x2c], esi
mov eax, dword [ebp - 0x27c]
sub eax, edi
mov dword [ebp - 0x27c], eax
test eax, eax
jle 0x10057a09
mov esi, dword [ebp - 0x2c8]
lea ecx, [ebp - 0x284]
call fcn.100620b0
lea eax, [ebp - 0x288]
mov ecx, esi
push eax
call fcn.10026750
mov edx, eax
lea ecx, [ebp - 0x284]
call fcn.10062de0
test al, al
jne 0x10057960
mov esi, dword [ebp - 0x2dc]
test esi, esi
js 0x10057cc0
mov edi, dword [ebp - 0x2c8]
mov ecx, edi
push esi
call fcn.10010300
push esi
mov ecx, edi
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x29c], eax
call fcn.10010300
cmp byte [ebp - 0x30a], 0
mov eax, dword [eax + 0x1c]
mov dword [ebp - 0x2a4], eax
je 0x10057a9f
lea eax, [ebp - 0x288]
mov ecx, edi
push eax
call fcn.10026750
push dword [ebp - 0x2fc]
lea ecx, [ebp - 0x2e0]
push ecx
mov ecx, eax
call fcn.100620d0
mov ecx, edi
mov esi, dword [eax]
lea eax, [ebp - 0x2cc]
push eax
call fcn.10026750
push dword [ebp - 0x2dc]
lea ecx, [ebp - 0x2b0]
push ecx
mov ecx, eax
call fcn.100620d0
push dword [ebp - 0x2e4]
push esi
push dword [eax]
call fcn.10062e00
add esp, 0xc
mov ecx, str.RecentProgKeys
call fcn.100aa870
mov dword [ebp - 0x288], eax
cmp eax, 2
jl 0x10057bf2
mov eax, dword [ebp - 0x2dc]
xor esi, esi
mov edx, eax
mov dword [ebp - 0x2a0], esi
mov dword [ebp - 0x2b0], edx
cmp eax, dword [ebp - 0x2fc]
jge 0x10057bf2
nop word [eax + eax]
push edx
mov ecx, edi
call fcn.10010300
mov edi, eax
cmp esi, 0xa
jge 0x10057aff
lea eax, [esi + 1]
mov ecx, 0xa
cdq
idiv ecx
add edx, 0x30
jmp 0x10057b01
xor edx, edx
or byte [edi + 0x31], 0x80
cmp dword [ebp - 0x288], 2
mov word [edi + 0x34], dx
jne 0x10057bbf
lea ecx, [ebp - 0x290]
call fcn.1001fb10
mov byte [ebp - 4], 1
lea esi, [edi + 8]
cmp word [edi + 0x46], 0
jle 0x10057b4b
mov ecx, esi
call fcn.10010330
movsx ecx, word [edi + 0x46]
lea eax, [eax + ecx*2]
push eax
lea ecx, [ebp - 0x290]
call fcn.10021c50
jmp 0x10057b57
push esi
lea ecx, [ebp - 0x290]
call fcn.10021ca0
mov eax, dword [ebp - 0x2a0]
cmp eax, 0xa
jge 0x10057b82
inc eax
mov ecx, 0xa
cdq
idiv ecx
push dword [ebp - 0x290]
push edx
push str._d__s
push esi
call fcn.10020290
add esp, 0x10
jmp 0x10057b90
lea eax, [ebp - 0x290]
mov ecx, esi
push eax
call fcn.10021ca0
mov ecx, esi
call fcn.1001fd60
lea ecx, [ebp - 0x290]
mov esi, eax
call fcn.1001fd60
sub esi, eax
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x290]
mov word [edi + 0x46], si
call fcn.10012170
mov esi, dword [ebp - 0x2a0]
mov edx, dword [ebp - 0x2b0]
lea ecx, [esi + 1]
mov eax, dword [edi + 0x24]
inc edx
cmp dword [edi + 0x2c], eax
mov edi, dword [ebp - 0x2c8]
cmovle ecx, esi
mov dword [ebp - 0x2b0], edx
mov esi, ecx
mov dword [ebp - 0x2a0], esi
cmp edx, dword [ebp - 0x2fc]
jl 0x10057ae0
cmp byte [ebp - 0x309], 0
je 0x10057c4c
lea eax, [ebp - 0x288]
mov ecx, edi
push eax
call fcn.10026750
push dword [ebp - 0x2fc]
lea ecx, [ebp - 0x2e0]
push ecx
mov ecx, eax
call fcn.100620d0
mov ecx, edi
mov esi, dword [eax]
lea eax, [ebp - 0x2cc]
push eax
call fcn.10026750
push dword [ebp - 0x2dc]
lea ecx, [ebp - 0x2b0]
push ecx
mov ecx, eax
call fcn.100620d0
push esi
push dword [eax]
call fcn.10062e30
add esp, 8
mov eax, dword [ebp - 0x2dc]
cmp eax, dword [ebp - 0x2fc]
jge 0x10057cc0
mov esi, dword [ebp - 0x2a4]
sub esi, eax
mov dword [ebp - 0x2a4], esi
nop dword [eax]
push eax
mov ecx, edi
call fcn.10010300
mov edx, dword [ebp - 0x29c]
mov ecx, dword [eax + 0x2c]
sub ecx, dword [eax + 0x24]
mov dword [eax + 0x24], edx
add edx, ecx
mov dword [eax + 0x2c], edx
mov ecx, edi
mov eax, dword [ebp - 0x2dc]
add esi, eax
push eax
mov dword [ebp - 0x29c], edx
call fcn.10010300
mov dword [eax + 0x1c], esi
mov eax, dword [ebp - 0x2dc]
mov esi, dword [ebp - 0x2a4]
inc eax
mov dword [ebp - 0x2dc], eax
cmp eax, dword [ebp - 0x2fc]
jl 0x10057c70
cmp byte [ebp - 0x28a], 0
mov edi, dword [ebp - 0x2b4]
jne 0x10057fa7
mov ecx, dword [ebp - 0x294]
mov edx, dword [ebp - 0x2c0]
cmp ecx, edx
jle 0x10057fa7
mov eax, dword [edi + 0x178]
test eax, eax
jle 0x10057fa7
cmp byte [edi + 0x30], 0
jne 0x10057d08
cmp byte [0x1014b4d1], 0
jne 0x10057fa7
sub ecx, edx
lea esi, [edi + 0xa0]
dec eax
mov dword [ebp - 0x294], ecx
push eax
mov ecx, esi
call fcn.10010300
mov eax, dword [eax + 0x2c]
sub eax, dword [ebp - 0x294]
sub eax, dword [edi + 0x120]
mov dword [edi + 0x17c], eax
test eax, eax
jg 0x10057dda
mov eax, dword [edi + 0x178]
mov ecx, esi
mov dword [ebp - 0x288], eax
call fcn.10010310
mov ecx, dword [ebp - 0x288]
cmp ecx, eax
jge 0x10057d76
push ecx
mov ecx, esi
call fcn.10010300
mov ecx, dword [edi + 0x178]
mov eax, dword [eax + 0x2c]
sub eax, dword [edi + 0x120]
mov dword [ebp - 0x294], eax
xor eax, eax
mov dword [edi + 0x17c], 0
mov dword [edi + 0x180], 0
mov dword [ebp - 0x2a0], eax
test ecx, ecx
jle 0x10057dda
jmp 0x10057da6
lea esi, [edi + 0xa0]
push eax
mov ecx, esi
call fcn.10010300
push dword [ebp - 0x2a0]
lea ecx, [edi + 0xa0]
mov esi, dword [eax + 0x24]
call fcn.10010300
mov dword [eax + 0x2c], esi
mov eax, dword [ebp - 0x2a0]
inc eax
mov dword [ebp - 0x2a0], eax
cmp eax, dword [edi + 0x178]
jl 0x10057da0
mov esi, dword [edi + 0x178]
lea ecx, [edi + 0xa0]
call fcn.10010310
cmp esi, eax
jae 0x10057e32
mov edi, dword [ebp - 0x2c8]
push esi
mov ecx, edi
call fcn.10010300
cmp dword [eax + 0x18], 0
jne 0x10057e20
mov eax, dword [ebp - 0x294]
mov ecx, edi
neg eax
push eax
push 0
push esi
call fcn.10010300
add eax, 0x20
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
mov ecx, edi
inc esi
call fcn.10010310
cmp esi, eax
jb 0x10057df5
mov edi, dword [ebp - 0x2b4]
lea eax, [edi + 0x60]
mov ecx, 0x1014c0b4
push eax
lea eax, [ebp - 0x2b0]
push eax
call fcn.100353d0
lea eax, [ebp - 0x288]
mov ecx, 0x1014c0b4
push eax
call fcn.10026750
push eax
lea ecx, [ebp - 0x2b0]
call fcn.1001fa20
test al, al
je 0x10057e95
lea ecx, [ebp - 0x2b0]
call fcn.10026ad0
mov ecx, dword [ebp - 0x294]
mov eax, dword [eax + 4]
mov dword [edi + 0x180], eax
cmp eax, ecx
jle 0x10057fbb
mov dword [edi + 0x180], ecx
jmp 0x10057fbb
test dword [edi + 0x3c], 0x400000
je 0x10057fb1
cmp byte [ebx + 8], 0
jne 0x10057fb1
cmp dword [edi + 0x1b4], 0
je 0x10057fbb
xor esi, esi
cmp dword [edi + 0x178], esi
jle 0x10057fbb
nop word [eax + eax]
push esi
lea ecx, [edi + 0xa0]
call fcn.10010300
cmp dword [eax], 0x30
jne 0x10057ef8
push esi
lea ecx, [edi + 0xa0]
call fcn.10010300
mov eax, dword [eax + 0x48]
cmp eax, dword [edi + 0x1b4]
je 0x10057f06
inc esi
cmp esi, dword [edi + 0x178]
jl 0x10057ed0
jmp 0x10057fbb
mov eax, esi
mov dword [ebp - 0x29c], esi
inc esi
mov dword [ebp - 0x288], eax
cmp esi, dword [edi + 0x178]
jge 0x10057f4c
nop dword [eax]
push esi
lea ecx, [edi + 0xa0]
call fcn.10010300
mov eax, dword [eax + 0x48]
cmp eax, dword [edi + 0x1b4]
jne 0x10057f46
mov dword [ebp - 0x29c], esi
inc esi
cmp esi, dword [edi + 0x178]
jl 0x10057f20
mov eax, dword [ebp - 0x288]
push eax
lea ecx, [edi + 0xa0]
call fcn.10010300
push dword [ebp - 0x29c]
lea ecx, [edi + 0xa0]
mov eax, dword [eax + 0x24]
mov dword [ebp - 0x288], eax
call fcn.10010300
mov ecx, dword [eax + 0x2c]
mov eax, dword [edi + 0x184]
sub eax, dword [edi + 0x17c]
add ecx, eax
mov eax, dword [edi + 0x180]
cmp eax, ecx
jge 0x10057f95
mov dword [edi + 0x180], ecx
mov eax, ecx
mov ecx, dword [ebp - 0x288]
cmp eax, ecx
jle 0x10057fbb
mov dword [edi + 0x180], ecx
jmp 0x10057fbb
mov dword [edi + 0x17c], 0
mov dword [edi + 0x180], 0
mov ecx, edi
call fcn.10058e40
mov cl, byte [edi + 0x30]
mov word [edi + 0x18e], 0
test cl, cl
jne 0x10058068
mov esi, dword [edi + 0x178]
mov dword [ebp - 0x2a0], esi
cmp esi, dword [edi + 0x1c8]
jge 0x10058068
nop
push esi
lea ecx, [edi + 0xa0]
call fcn.10010300
cmp dword [eax + 0x18], 0
jne 0x1005800a
mov eax, dword [edi + 0x128]
jmp 0x10058010
mov eax, dword [edi + 0x138]
push esi
lea ecx, [edi + 0xa0]
mov dword [ebp - 0x2b0], eax
call fcn.10010300
mov ecx, dword [ebp - 0x2b0]
cmp dword [eax + 0x2c], ecx
jle 0x10058056
push esi
lea ecx, [edi + 0xa0]
call fcn.10010300
push dword [ebp - 0x2a0]
lea ecx, [edi + 0xa0]
mov esi, dword [eax + 0x24]
call fcn.10010300
mov dword [eax + 0x2c], esi
mov esi, dword [ebp - 0x2a0]
inc esi
mov dword [ebp - 0x2a0], esi
cmp esi, dword [edi + 0x1c8]
jl 0x10057ff0
mov cl, byte [edi + 0x30]
mov eax, dword [ebp - 0x2f8]
lea edx, [edi + 0x10c]
mov esi, dword [ebp - 0x2ec]
mov dword [edi + 0x118], eax
mov eax, dword [edi + 0xf4]
mov dword [edi + 0x110], 0
mov dword [edx], 0
mov dword [edi + 0x114], esi
mov dword [ebp - 0x2e0], eax
test cl, cl
jne 0x1005811c
mov dword [edi + 0xf4], 0
cmp byte [0x1014b4d1], cl
je 0x100581fb
cmp dword [0x1014e148], 0
je 0x100581fb
mov edx, dword [edi + 0x3c]
mov eax, 0
mov ecx, dword [0x1014b564]
and edx, 0x800
jne 0x100580f5
cmp byte [0x1014b4f3], al
jne 0x100580f5
mov eax, ecx
sub eax, esi
mov dword [edi + 0xf4], eax
test edx, edx
je 0x10058110
cmp byte [0x1014b4f3], 0
je 0x10058110
mov eax, ecx
sub eax, dword [ebp - 0x2ec]
mov dword [edi + 0xf4], eax
mov dword [ebp - 0x2ec], ecx
lea edx, [edi + 0x10c]
test eax, eax
jle 0x100581fb
mov esi, dword [sym.imp.USER32.dll_OffsetRect]
push 0
push eax
push edx
call esi
push 0
push dword [edi + 0xf4]
lea eax, [edi + 0x11c]
push eax
call esi
push 0
push dword [edi + 0xf4]
lea eax, [edi + 0x12c]
push eax
call esi
mov eax, dword [edi + 0xf8]
test eax, eax
je 0x10058174
cmp byte [0x1014b4f3], 0
jne 0x10058174
push 0
push dword [edi + 0xf4]
push eax
call dword [sym.imp.GDI32.dll_OffsetRgn]
lea eax, [ebp - 0x2c4]
push eax
lea ecx, [edi + 0xa0]
call fcn.10026750
lea eax, [ebp - 0x288]
push eax
lea ecx, [edi + 0xa0]
call fcn.10035120
push eax
lea ecx, [ebp - 0x2c4]
call fcn.1001fa20
test al, al
je 0x100581fb
nop dword [eax + eax]
mov esi, dword [edi + 0xf4]
lea ecx, [ebp - 0x2c4]
call fcn.10010330
push 0
add eax, 0x20
push esi
push eax
call dword [sym.imp.USER32.dll_OffsetRect]
lea ecx, [ebp - 0x2c4]
call fcn.10047740
lea eax, [ebp - 0x288]
push eax
lea ecx, [edi + 0xa0]
call fcn.10035120
push eax
lea ecx, [ebp - 0x2c4]
call fcn.1001fa20
test al, al
jne 0x100581b0
mov eax, dword [edi + 0x198]
test eax, eax
js 0x100583de
mov esi, dword [0x1014e264]
lea ecx, [edi + 0xa0]
push eax
call fcn.10010300
lea ecx, [edi + 0xa0]
add dword [eax + 0x20], esi
push dword [edi + 0x198]
mov esi, dword [0x1014e268]
call fcn.10010300
lea ecx, [edi + 0xa0]
add dword [eax + 0x24], esi
push dword [edi + 0x198]
mov esi, dword [0x1014e270]
call fcn.10010300
lea ecx, [edi + 0xa0]
sub dword [eax + 0x2c], esi
push dword [edi + 0x198]
mov esi, dword [0x1014e26c]
call fcn.10010300
mov ecx, edi
sub dword [eax + 0x28], esi
lea eax, [ebp - 0x228]
push eax
push dword [edi + 0x198]
call fcn.10059640
mov eax, dword [ebp - 0x224]
sub eax, dword [ebp - 0x21c]
mov cl, byte [0x1014e274]
add dword [ebp - 0x220], eax
test cl, cl
jne 0x100582b3
push 0xfffffffffffffffd
push 0xffffffffffffffff
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.USER32.dll_InflateRect]
mov cl, byte [0x1014e274]
cmp dword [edi + 0x1a4], 0
lea eax, [edi + 0x1a4]
mov dword [ebp - 0x288], eax
je 0x100582f1
mov ecx, dword [ebp - 0x2e0]
cmp ecx, dword [edi + 0xf4]
jne 0x100583de
push 4
lea ecx, [ebp - 0x228]
push ecx
push 0
mov ecx, eax
call fcn.10068600
jmp 0x100583de
mov edi, dword [ebp - 0x2e4]
test cl, cl
push 0
push ecx
mov eax, 0x40801080
mov ecx, esp
mov edi, dword [edi]
mov esi, 0x40001080
push 0
cmovne esi, eax
call fcn.100133c0
push 0
push esi
push 0
push ecx
lea eax, [ebp - 0x228]
mov ecx, esp
push eax
call fcn.100133b0
mov ecx, dword [ebp - 0x288]
push edi
push str.EDIT
call fcn.100685b0
mov edi, dword [ebp - 0x2b4]
mov ecx, dword [ebp - 0x288]
push 0
push edi
push 0x1004a1d0
call fcn.10010330
push eax
call dword [sym.imp.COMCTL32.dll_SetWindowSubclass]
cmp byte [edi + 0x108], 0
je 0x100583a0
push dword [edi + 0x198]
lea ecx, [edi + 0xa0]
call fcn.10010300
cmp dword [eax + 0x18], 1
jne 0x100583a0
mov eax, dword [edi + 0x198]
test eax, eax
je 0x10058396
dec eax
lea ecx, [edi + 0xa0]
push eax
call fcn.10010300
cmp dword [eax + 0x18], 0
jne 0x100583a0
push 1
push dword [0x1014c64c]
jmp 0x100583a8
push 1
push dword [0x1014c1ac]
lea ecx, [edi + 0x1a4]
call fcn.10068590
push 0x2000
push 0
push 0
push 0
push 0x6e
push dword [0x1014be3c]
call dword [sym.imp.USER32.dll_LoadImageW]
mov edx, 0xffffff
mov dword [edi + 0x1ac], eax
mov ecx, eax
call fcn.100af670
cmp byte [edi + 0x108], 0
je 0x10058511
cmp dword [0x1014b4d4], 3
jne 0x10058511
mov eax, dword [edi + 0x198]
mov esi, dword [edi + 0x138]
mov dword [ebp - 0x2a0], esi
test eax, eax
js 0x10058434
push eax
lea ecx, [edi + 0xa0]
call fcn.10010300
mov eax, dword [eax + 0x24]
sub eax, dword [0x1014e38c]
sub eax, dword [0x1014e268]
cmp esi, eax
cmovg esi, eax
mov dword [ebp - 0x2a0], esi
mov eax, dword [ebp - 0x310]
test eax, eax
js 0x10058458
push eax
lea ecx, [edi + 0xa0]
call fcn.10010300
mov eax, dword [eax + 0x24]
cmp esi, eax
cmovg esi, eax
mov dword [ebp - 0x2a0], esi
lea eax, [ebp - 0x2e4]
push eax
lea ecx, [edi + 0xa0]
call fcn.10026750
push dword [edi + 0x1c8]
lea ecx, [ebp - 0x290]
push ecx
mov ecx, eax
call fcn.100620d0
lea eax, [ebp - 0x2e4]
push eax
lea ecx, [edi + 0xa0]
call fcn.10035120
push eax
lea ecx, [ebp - 0x290]
call fcn.1001fa20
test al, al
je 0x10058511
mov edi, dword [ebp - 0x2c8]
nop word [eax + eax]
lea ecx, [ebp - 0x290]
call fcn.10010330
cmp dword [eax + 0x2c], esi
jle 0x100584e2
lea ecx, [ebp - 0x290]
call fcn.10010330
lea ecx, [ebp - 0x290]
mov esi, dword [eax + 0x24]
call fcn.10010330
mov dword [eax + 0x2c], esi
mov esi, dword [ebp - 0x2a0]
lea ecx, [ebp - 0x290]
call fcn.10047740
lea eax, [ebp - 0x2e4]
mov ecx, edi
push eax
call fcn.10035120
push eax
lea ecx, [ebp - 0x290]
call fcn.1001fa20
test al, al
jne 0x100584b0
mov edi, dword [ebp - 0x2b4]
cmp byte [edi + 0x30], 0
je 0x100585f4
lea ecx, [edi + 0xa0]
mov dword [edi + 0x160], 0xffffffff
mov dword [edi + 0x168], 0
xor esi, esi
mov dword [edi + 0x164], 0
mov dword [edi + 0x15c], 0
mov dword [ebp - 0x310], 0xffffffff
call fcn.10010310
test eax, eax
je 0x100585d0
push esi
lea ecx, [edi + 0xa0]
call fcn.10010300
cmp dword [eax], 0
jne 0x100585a3
mov ecx, dword [eax + 0x20]
mov dword [edi + 0x15c], ecx
mov ecx, dword [eax + 0x28]
mov dword [edi + 0x164], ecx
mov ecx, dword [eax + 0x2c]
mov dword [edi + 0x160], ecx
mov dword [edi + 0x168], 0xffffffff
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x310], eax
jmp 0x100585c0
cmp dword [edi + 0x168], 0xffffffff
jne 0x100585c0
mov ecx, dword [ebp - 0x310]
cmp ecx, dword [eax + 0x18]
jne 0x100585c0
mov eax, dword [eax + 0x24]
mov dword [edi + 0x168], eax
lea ecx, [edi + 0xa0]
inc esi
call fcn.10010310
cmp esi, eax
jb 0x10058562
cmp dword [edi + 0x160], 0
jl 0x100585f4
cmp dword [edi + 0x168], 0xffffffff
jne 0x100585f4
mov eax, dword [ebp - 0x2f8]
sub eax, dword [ebp - 0x23c]
mov dword [edi + 0x168], eax
mov edx, dword [ebp - 0x2f4]
mov eax, dword [ebp - 0x2ec]
mov dword [edx + 8], eax
mov eax, dword [ebp - 0x2f8]
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 0xc], eax
cmp byte [edi + 0x30], 0
mov eax, dword [0x1014e148]
cmovne eax, dword [0x1014e650]
test eax, eax
jne 0x1005864c
push eax
push 0xfffffffffffffff0
lea ecx, [edi + 0xc]
call fcn.10068630
mov edx, dword [ebp - 0x2f4]
push eax
push edx
call dword [sym.imp.USER32.dll_AdjustWindowRect]
mov edx, dword [ebp - 0x2f4]
mov eax, dword [edi + 0x3c]
test eax, 0x800
je 0x1005865a
mov ecx, dword [edx]
jmp 0x1005865d
mov ecx, dword [edx + 8]
mov esi, dword [ebp - 0x320]
mov esi, dword [esi]
sub esi, ecx
test eax, 0x400000
je 0x100586c5
mov ecx, dword [edi + 0x44]
lea eax, [ebp - 0x228]
push eax
push dword [edi + 0x48]
call fcn.10059640
mov ecx, dword [edi + 0x44]
lea eax, [ebp - 0x228]
push eax
add ecx, 0xc
push 0
call fcn.10010380
test dword [edi + 0x3c], 0x1000
mov edx, dword [ebp - 0x2f4]
je 0x100586b4
mov ecx, dword [ebp - 0x224]
sub ecx, dword [ebp - 0x244]
sub ecx, dword [edx + 4]
jmp 0x100586df
mov ecx, dword [ebp - 0x23c]
sub ecx, dword [edx + 0xc]
add ecx, dword [ebp - 0x21c]
jmp 0x100586df
test eax, 0x1000
je 0x100586d1
mov eax, dword [edx + 4]
jmp 0x100586d4
mov eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x320]
mov ecx, dword [ecx + 4]
sub ecx, eax
push ecx
push esi
push edx
call dword [sym.imp.USER32.dll_OffsetRect]
cmp byte [edi + 0x30], 0
mov esi, dword [ebp - 0x2f4]
je 0x1005872b
mov eax, dword [esi + 0xc]
xor ecx, ecx
mov edx, dword [0x1014b524]
cmp eax, edx
jle 0x10058707
mov ecx, edx
sub ecx, eax
mov edx, dword [esi + 4]
mov esi, dword [0x1014b51c]
lea eax, [ecx + edx]
cmp eax, esi
jge 0x1005871b
mov ecx, esi
sub ecx, edx
mov esi, dword [ebp - 0x2f4]
push ecx
push 0
push esi
call dword [sym.imp.USER32.dll_OffsetRect]
cmp dword [0x1013fb2c], 0
je 0x10058826
cmp dword [0x1014b4d4], 2
je 0x10058781
lea ecx, [ebp - 0x2d8]
call fcn.10012130
cmp eax, 2
jbe 0x10058781
push 1
lea ecx, [ebp - 0x2d8]
call fcn.10012120
cmp dword [eax], 0
jne 0x10058781
mov ecx, 0x1013fb28
call fcn.10013330
mov dword [0x1014b550], 0
mov dword [0x1014b548], 0
cmp dword [0x1013fb2c], 0
je 0x10058826
cmp byte [0x1014e770], 0
mov eax, dword [0x1014e774]
mov ecx, dword [0x1014e75c]
mov dword [0x1014b550], eax
je 0x100587b0
test dword [edi + 0x3c], 0x1000
je 0x100587c3
mov eax, dword [edi + 0x130]
add eax, dword [0x1014e78c]
add eax, ecx
mov dword [0x1014b550], eax
add eax, dword [esi + 4]
mov esi, dword [0x1014e758]
mov dword [0x1014b550], eax
sub eax, ecx
cmp byte [0x1014b4f3], 0
mov dword [0x1014b548], eax
mov eax, dword [edi + 0x134]
je 0x10058801
add eax, esi
add eax, dword [edi + 0x12c]
cdq
sub eax, edx
mov edx, dword [ebp - 0x2f4]
sar eax, 1
mov ecx, dword [edx + 8]
sub ecx, eax
jmp 0x10058818
sub eax, esi
add eax, dword [edi + 0x12c]
cdq
sub eax, edx
mov edx, dword [ebp - 0x2f4]
mov ecx, eax
sar ecx, 1
add ecx, dword [edx]
lea eax, [ecx + esi]
mov dword [0x1014b544], ecx
mov dword [0x1014b54c], eax
mov eax, dword [edi + 0x1d0]
cmp eax, dword [edi + 0x1d4]
jle 0x1005895a
cmp dword [edi + 0x1dc], 0
lea esi, [edi + 0x1dc]
jne 0x100588b8
mov esi, dword [edi + 0xc]
push 0
push ecx
mov ecx, esp
push 0
call fcn.100133c0
push 0
push 0x40000001
push 0
push ecx
mov ecx, esp
push 0
call fcn.100133b0
push esi
lea esi, [edi + 0x1dc]
push str.ScrollBar
mov ecx, esi
call fcn.100685b0
push 0
push edi
push 0x1004aba0
mov ecx, esi
call fcn.10010330
push eax
call dword [sym.imp.COMCTL32.dll_SetWindowSubclass]
cmp byte [0x1014e858], 0
je 0x100588b8
push str.scrollbar
mov ecx, esi
call fcn.10010330
push eax
call dword [sym.imp.UxTheme.dll_OpenThemeData]
mov dword [edi + 0x1e0], eax
movups xmm0, xmmword [edi + 0x11c]
mov edx, dword [edi + 0x1d4]
mov ecx, dword [0x1014dd20]
movups xmmword [ebp - 0x228], xmm0
push 0
imul ecx, edx
psrldq xmm0, 4
movd eax, xmm0
xorps xmm0, xmm0
mov dword [ebp - 0x274], 0x1c
mov dword [ebp - 0x270], 0x17
add ecx, eax
mov dword [ebp - 0x26c], 0
mov eax, dword [ebp - 0x220]
sub eax, dword [ebp - 0x2e8]
mov dword [ebp - 0x228], eax
mov eax, dword [edi + 0x1d0]
dec eax
mov dword [ebp - 0x21c], ecx
mov dword [ebp - 0x268], eax
mov ecx, esi
lea eax, [ebp - 0x274]
mov dword [ebp - 0x264], edx
push eax
push 2
movq qword [ebp - 0x260], xmm0
call fcn.10068570
push 0x44
lea eax, [ebp - 0x228]
mov ecx, esi
push eax
push 0
call fcn.10068600
jmp 0x10058970
cmp dword [edi + 0x1dc], 0
lea ecx, [edi + 0x1dc]
je 0x10058970
push 0
call fcn.10049240
push 0xffffffffffffffff
mov ecx, edi
mov byte [edi + 0x32], 0
mov word [edi + 0x190], 0
mov dword [edi + 0x58], 0xffffffff
mov dword [edi + 0x54], 0xffffffff
mov byte [edi + 0x5d], 0
call fcn.10059d50
cmp byte [edi + 0x30], 0
mov dword [edi + 0x188], 0
jne 0x10058b8e
xor eax, eax
mov dword [ebp - 0x258], 0x30
cmp byte [0x1014b4f3], al
xorps xmm0, xmm0
movups xmmword [ebp - 0x250], xmm0
setne al
mov ecx, 0x1014c168
movq qword [ebp - 0x230], xmm0
movups xmmword [ebp - 0x240], xmm0
mov dword [ebp - 0x24c], 2
lea eax, [eax*4 + 0x110]
mov dword [ebp - 0x254], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x250], eax
lea eax, [ebp - 0x258]
push eax
push 0
push 0x433
call fcn.10013340
lea eax, [ebp - 0x258]
mov dword [ebp - 0x24c], 3
push eax
push 0
push 0x433
mov ecx, 0x1014c168
call fcn.10013340
mov eax, dword [0x1013fb2c]
mov ecx, 0x1014c168
mov dword [ebp - 0x24c], eax
lea eax, [ebp - 0x258]
push eax
push 0
push 0x433
call fcn.10013340
mov eax, dword [edi + 0x13c]
cmp eax, dword [edi + 0x144]
jl 0x10058a80
mov eax, dword [edi + 0x14c]
cmp eax, dword [edi + 0x154]
jl 0x10058a80
cmp dword [0x1013fb2c], 0
je 0x10058b8e
push 0x200
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.100d6eb0
add esp, 0xc
mov dword [ebp - 0x2e4], 0x100
lea eax, [ebp - 0x2e4]
push eax
lea eax, [ebp - 0x218]
push eax
push 3
call dword [sym.imp.Secur32.dll_GetUserNameExW]
test al, al
jne 0x10058ad8
lea eax, [ebp - 0x288]
mov dword [ebp - 0x288], 0x100
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
lea eax, [ebp - 0x218]
mov dword [ebp - 0x234], eax
mov eax, dword [edi + 0x13c]
cmp eax, dword [edi + 0x144]
jge 0x10058b22
movups xmm0, xmmword [edi + 0x13c]
lea eax, [ebp - 0x258]
mov dword [ebp - 0x24c], 2
push eax
push 0
push 0x432
mov ecx, 0x1014c168
movups xmmword [ebp - 0x248], xmm0
call fcn.10013340
mov eax, dword [edi + 0x14c]
cmp eax, dword [edi + 0x154]
jge 0x10058b60
movups xmm0, xmmword [edi + 0x14c]
lea eax, [ebp - 0x258]
mov dword [ebp - 0x24c], 3
push eax
push 0
push 0x432
mov ecx, 0x1014c168
movups xmmword [ebp - 0x248], xmm0
call fcn.10013340
mov eax, dword [0x1013fb2c]
test eax, eax
je 0x10058b8e
or dword [ebp - 0x254], 1
mov ecx, 0x1014c168
mov dword [ebp - 0x24c], eax
lea eax, [ebp - 0x258]
push eax
push 0
push 0x432
call fcn.10013340
mov ecx, dword [edi + 0x44]
test ecx, ecx
je 0x10058c8a
push dword [edi + 0x48]
add ecx, 0xa0
call fcn.10010300
cmp dword [eax], 9
je 0x10058bc6
mov ecx, dword [edi + 0x44]
push dword [edi + 0x48]
add ecx, 0xa0
call fcn.10010300
cmp dword [eax], 0xa
jne 0x10058c8a
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
push 0
lea ecx, [ebp - 0x308]
call fcn.10013310
push 0x20006
push str.Software360WallPaperOpenShellStartMenu
push SysReAllocString
lea ecx, [ebp - 0x308]
mov byte [ebp - 4], 2
call fcn.10013210
test eax, eax
je 0x10058c24
push 0
push 0
push 0x2001f
push 0
push 0
push str.Software360WallPaperOpenShellStartMenu
push SysReAllocString
lea ecx, [ebp - 0x308]
call fcn.100380f0
mov ecx, dword [edi + 0x44]
push dword [edi + 0x48]
add ecx, 0xa0
call fcn.10010300
cmp dword [eax], 9
jne 0x10058c4d
push dword [ebp - 0x21c]
push dword [ebp - 0x220]
push str.LastProgramsTime
jmp 0x10058c74
mov ecx, dword [edi + 0x44]
push dword [edi + 0x48]
add ecx, 0xa0
call fcn.10010300
cmp dword [eax], 0xa
jne 0x10058c7f
push dword [ebp - 0x21c]
push dword [ebp - 0x220]
push str.LastAppsTime
lea ecx, [ebp - 0x308]
call fcn.10068550
lea ecx, [ebp - 0x308]
call fcn.100132f0
lea ecx, [ebp - 0x2d8]
call fcn.10010820
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100d4906
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0xc