Function at 0x410590
Capabilities:
Create thread
Enumerate gui resources

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x2770
call fcn.00481770
mov eax, dword [0x572c40]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push esi
push edi
xor edi, edi
mov dword [ebp - 0x2754], eax
mov esi, 0x64
test eax, eax
je 0x411098
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_TryEnterCriticalSection]
push 0x57bf8c
call ebx
mov dword [ebp - 0x276c], eax
test eax, eax
jne 0x41060f
nop dword [eax]
mov eax, esi
dec esi
test eax, eax
jle 0x411097
push 0x3e7
push 0xa
mov ecx, 0xb64288
call fcn.0042aaa0
push 0x57bf8c
call ebx
mov ecx, eax
mov dword [ebp - 0x276c], ecx
test ecx, ecx
je 0x4105e0
mov eax, dword [0x57bae8]
cmp eax, dword [0xb63938]
jne 0x410643
mov eax, dword [0x57baec]
cmp eax, dword [0xb6393c]
jne 0x410643
mov eax, dword [0x57baf0]
cmp eax, dword [0xb63940]
jne 0x410643
mov eax, dword [0x57baf4]
cmp eax, dword [0xb63944]
je 0x410678
push 0x57bae8
call fcn.00415730
mov eax, dword [0xb63938]
add esp, 4
mov dword [0x57bae8], eax
mov eax, dword [0xb6393c]
mov dword [0x57baec], eax
mov eax, dword [0xb63940]
mov dword [0x57baf0], eax
mov eax, dword [0xb63944]
mov dword [0x57baf4], eax
mov edx, dword [0xb63dd8]
xor eax, eax
test edx, edx
jle 0x4106c8
nop dword [eax]
nop dword [eax + eax]
mov ecx, dword [eax*4 + 0xb63b58]
cmp dword [eax*4 + 0x57bd08], ecx
jne 0x4106a7
inc eax
cmp eax, edx
jl 0x410690
jmp 0x4106c8
push ecx
push 0x57bae8
call fcn.00414a50
mov ecx, 0x129
mov esi, 0xb63938
mov edi, 0x57bae8
add esp, 8
rep movsd dword es:[edi], dword [esi]
xor edi, edi
cmp dword [ebp + 0xc], 0
jle 0x410717
mov ebx, dword [ebp - 0x2754]
xor ecx, ecx
mov eax, dword [ebx + 0xe98]
cmp dword [eax], ecx
jle 0x41070b
xor edx, edx
mov eax, dword [eax + 4]
cmp byte [eax + edx + 0x273e], 0
jne 0x4106fa
mov dword [eax + edx + 0x104], 0
mov eax, dword [ebx + 0xe98]
inc ecx
add edx, 0x2740
cmp ecx, dword [eax]
jl 0x4106e2
mov dword [0x57c8fc], 0
jmp 0x410747
mov ecx, dword [0x57c8fc]
test ecx, ecx
jle 0x410741
mov eax, 0x57cb58
nop word [eax + eax]
mov dword [eax], 0
lea eax, [eax + 0x5d0]
sub ecx, 1
jne 0x410730
mov ebx, dword [ebp - 0x2754]
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push 0
push 0x4119d0
mov dword [0x57bfa8], eax
call dword [sym.imp.USER32.dll_EnumWindows]
cmp byte [0x57c914], 0
mov eax, dword [0x57bfa8]
mov dword [0x57bfac], eax
mov byte [0x57c7d2], 0
mov byte [ebp - 0x2749], 0
mov byte [ebp - 0x274a], 0
je 0x41104d
push 0xb63938
push ebx
call fcn.00415940
add esp, 8
test al, al
je 0x41104d
xor ebx, ebx
mov dword [ebp - 0x2750], ebx
cmp dword [0x57c8fc], ebx
jle 0x41104d
nop word [eax + eax]
mov esi, dword [ebp - 0x2750]
imul edx, ebx, 0x5d0
cmp dword [edx + 0x57cb58], 4
mov dword [ebp - 0x275c], edx
lea ebx, [edx + 0x57cb58]
jne 0x41081b
cmp dword [edx + 0x57d10c], 1
jne 0x41081b
push esi
push 0
push 0x8003
push dword [0x57c7d4]
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, 1
jne 0x41081b
mov ecx, dword [ebp - 0x275c]
mov dword [ebx], 1
mov eax, dword [ecx + 0x57d110]
mov dword [ecx + 0x57d10c], eax
mov ecx, dword [ebp - 0x2754]
or eax, 0xffffffff
mov byte [0x57bfa4], 0
mov dword [ebp - 0x2748], eax
cmp byte [ecx + 0x104], 0
je 0x410e53
cmp dword [ebx], 1
je 0x4108d1
push eax
push ebx
push ecx
call fcn.00412020
mov edi, eax
add esp, 0xc
mov dword [ebp - 0x2760], edi
test edi, edi
jne 0x4108d9
cmp dword [ebx], 2
jne 0x4108d9
mov ecx, dword [ebp - 0x2754]
cmp byte [ecx + 0xea4], al
je 0x4108d9
push 1
push ebx
lea eax, [ebp - 0x2744]
push eax
push ecx
call fcn.00413d70
add esp, 0x10
cmp eax, 0xffffffff
je 0x4108d9
mov edi, dword [ebp - 0x2754]
imul eax, eax, 0x4e80
push 1
push 0
mov ecx, dword [edi + 0xeac]
add eax, 0x109
add eax, dword [ecx + 4]
push eax
lea eax, [ebp - 0x2744]
push eax
push ebx
push edi
call fcn.00411330
mov ecx, dword [edi + 0xe98]
add esp, 0x18
imul edi, eax, 0x2740
mov byte [ebp - 0x274a], 1
add edi, dword [ecx + 4]
jmp 0x4108d3
xor edi, edi
mov dword [ebp - 0x2760], edi
mov eax, dword [0x57c7ec]
test eax, eax
je 0x4108f7
mov ecx, dword [ebp - 0x275c]
cmp dword [ecx + 0x57cb5c], eax
je 0x4108f7
xor edi, edi
jmp 0x410e53
test edi, edi
je 0x410e53
cmp byte [0x57c7d1], 0
jne 0x410e53
mov eax, dword [ebx]
cmp eax, 0xa
ja case.0x410917.1
jmp dword [eax*4 + 0x4110a8]
push 0
push 0
push edi
push ebx
mov byte [ebp - 0x2749], 1
call fcn.00412420
mov eax, dword [ebp - 0x275c]
push dword [eax + 0x57cb5c]
push edi
call fcn.00413c60
xor ecx, ecx
add esp, 0x18
cmp byte [edi + 0x718], cl
setne cl
lea ecx, [ecx*2 - 1]
mov dword [ebp - 0x2748], ecx
jmp 0x410da3
push 0
mov byte [ebp - 0x2749], 1
call fcn.0048e759
mov esi, dword [ebp + 0x10]
push 0x1f
push esi
push edi
push ebx
mov dword [edi + 0x210], eax
mov dword [edi + 0x214], edx
call fcn.00412740
add esp, 0x14
mov byte [0x57bfa4], 1
mov eax, esi
neg eax
sbb eax, eax
and eax, 7
cmp byte [eax + edi + 0x717], 0
je case.0x410917.1
mov ecx, eax
mov dword [ebp - 0x2748], ecx
jmp 0x410da3
cmp byte [edi + 0x6cc], 0
je case.0x410917.1
cmp dword [edi + 0x6d0], 0
je 0x4109fb
call dword [sym.imp.KERNEL32.dll_GetTickCount64]
imul ecx, esi, 0x5d0
sub eax, dword [ecx + 0x57d120]
sbb edx, dword [ecx + 0x57d124]
test edx, edx
ja case.0x410917.1
jb 0x4109fb
cmp eax, dword [edi + 0x6d0]
ja case.0x410917.1
push 0
call fcn.0048e759
push 0x1f
push 0
push edi
push ebx
mov dword [edi + 0x210], eax
mov dword [edi + 0x214], edx
call fcn.00412740
imul eax, esi, 0x5d0
add esp, 0x14
mov byte [0x57bfa4], 1
mov byte [ebp - 0x2749], 1
mov dword [ebp - 0x2758], 0
mov dword [eax + 0x57d120], 0
mov dword [eax + 0x57d124], 0
mov eax, dword [ebp - 0x2754]
mov eax, dword [eax + 0xe98]
cmp dword [eax], 0
jle 0x410b0b
imul ecx, esi, 0x5d0
xor ebx, ebx
mov dword [ebp - 0x2768], ebx
mov esi, ebx
mov dword [ebp - 0x2764], ecx
nop dword [eax]
add ebx, dword [eax + 4]
cmp ebx, edi
je 0x410ade
test byte [ebx + 0x108], 1
jne 0x410ade
mov edx, dword [ebx + 0x104]
xor ecx, ecx
test edx, edx
jle 0x410ade
mov eax, dword [ebp - 0x2764]
mov esi, dword [eax + 0x57cb5c]
lea eax, [ebx + 4]
nop dword [eax + eax]
cmp dword [eax], esi
je 0x410abe
inc ecx
add eax, 4
cmp ecx, edx
jl 0x410ab0
jmp 0x410ad8
cmp ecx, 0xffffffff
je 0x410ad8
mov eax, dword [ebp - 0x2764]
push dword [eax + 0x57cb5c]
push ebx
call fcn.00413c60
add esp, 8
mov esi, dword [ebp - 0x2758]
mov eax, dword [ebp - 0x2754]
inc esi
mov ebx, dword [ebp - 0x2768]
add ebx, 0x2740
mov dword [ebp - 0x2758], esi
mov dword [ebp - 0x2768], ebx
mov eax, dword [eax + 0xe98]
cmp esi, dword [eax]
jl 0x410a80
cmp byte [edi + 0x717], 0
je case.0x410917.1
xor ecx, ecx
mov dword [ebp - 0x2748], ecx
jmp 0x410da3
cmp byte [edi + 0x706], 0
je 0x410b9a
cmp byte [edi + 0x703], 0
je 0x410b9a
cmp byte [edi + 0x6f0], 0
mov esi, 4
je 0x410b54
cmp byte [edi + 0x6e5], 0
mov eax, 5
cmovne esi, eax
cmp byte [edi + 0x700], 0
je 0x410b69
cmp byte [edi + 0x6f3], 0
je 0x410b69
or esi, 2
push 0
call fcn.0048e759
push esi
mov dword [edi + 0x210], eax
mov eax, dword [ebp + 0x10]
push eax
push edi
push ebx
mov dword [edi + 0x214], edx
call fcn.00412740
mov esi, dword [ebp - 0x2750]
add esp, 0x14
mov byte [0x57bfa4], 1
jmp 0x410ba8
push 0
push 0
push edi
push ebx
call fcn.00412420
add esp, 0x10
imul eax, esi, 0x5d0
mov eax, dword [eax + 0x57d10c]
cmp eax, 1
jne 0x410bd6
cmp byte [edi + 0x719], 0
je case.0x410917.1
mov ecx, 2
mov dword [ebp - 0x2748], ecx
jmp 0x410da3
or ecx, 0xffffffff
mov dword [ebp - 0x2748], ecx
cmp eax, 2
jne 0x410c01
cmp byte [edi + 0x71a], 0
je 0x410da3
mov ecx, 3
mov dword [ebp - 0x2748], ecx
jmp 0x410da3
test eax, eax
jne 0x410da3
or ecx, 0xffffffff
mov dword [ebp - 0x2748], ecx
cmp byte [edi + 0x71b], al
je 0x410da3
mov ecx, 4
mov dword [ebp - 0x2748], ecx
jmp 0x410da3
cmp byte [edi + 0x6f0], 0
je 0x410ca0
cmp byte [edi + 0x6e5], 0
je 0x410ca0
cmp byte [edi + 0x700], 0
mov esi, 1
je 0x410c5d
cmp byte [edi + 0x6f3], 0
mov eax, 3
cmovne esi, eax
cmp byte [edi + 0x706], 0
je 0x410c72
cmp byte [edi + 0x703], 0
je 0x410c72
or esi, 4
push 0
call fcn.0048e759
push esi
mov dword [edi + 0x210], eax
mov eax, dword [ebp + 0x10]
push eax
push edi
push ebx
mov dword [edi + 0x214], edx
call fcn.00412740
add esp, 0x14
mov byte [0x57bfa4], 1
jmp case.0x410917.1
push 0
push 0
push edi
push ebx
call fcn.00412420
add esp, 0x10
jmp case.0x410917.1
cmp byte [edi + 0x700], 0
je 0x410cc5
cmp byte [edi + 0x6f3], 0
jne 0x410cce
cmp byte [edi + 0x701], 0
je 0x410ca0
imul eax, esi, 0x5d0
imul ecx, esi, 0x5d0
mov esi, 0x42
mov eax, dword [eax + 0x57d0f8]
cmp eax, dword [ecx + 0x57d100]
mov eax, 0x22
cmovne esi, eax
jmp 0x410c72
cmp byte [edi + 0x6f0], 0
je 0x410d0a
cmp byte [edi + 0x6e5], 0
jne 0x410d1c
cmp byte [edi + 0x700], 0
je 0x410ca0
cmp byte [edi + 0x6f3], 0
je 0x410ca0
push 0
call fcn.0048e759
push 7
jmp 0x410c7a
cmp byte [edi + 0x71c], 0
mov ecx, 5
mov eax, 0xffffffff
cmove ecx, eax
mov dword [ebp - 0x2748], ecx
jmp 0x410da3
cmp byte [edi + 0x71d], 0
mov ecx, 6
mov eax, 0xffffffff
cmove ecx, eax
mov dword [ebp - 0x2748], ecx
jmp 0x410da3
cmp byte [edi + 0x272f], 0
je 0x410d82
cmp byte [edi + 0x272c], 0
je 0x410d82
push 0
call fcn.0048e759
push 0x10
jmp 0x410c7a
cmp byte [edi + 0x272d], 1
jne case.0x410917.1
imul eax, esi, 0x5d0
mov al, byte [eax + 0x57d114]
mov byte [edi + 0x272e], al
mov ecx, dword [ebp - 0x2748]
cmp dword [ebp + 0x10], 0
je 0x410dbe
cmp byte [edi + 0x71e], 0
je 0x410dbe
mov dword [ebp - 0x2748], 7
jmp 0x410dc7
cmp ecx, 0xffffffff
je 0x410e53
push 0x2d20
call fcn.004817a0
push 0x2740
mov ebx, eax
push edi
push ebx
call fcn.00482d10
imul esi, dword [ebp - 0x2750], 0x5d0
lea edi, [ebx + 0x2740]
mov eax, dword [ebp - 0x2748]
add esp, 0x10
mov ecx, 0x174
add esi, 0x57cb58
rep movsd dword es:[edi], dword [esi]
mov byte [ebx + 0x2d1c], al
lea eax, [ebp - 0x2770]
push eax
push 0
push ebx
push 0x401840
push 0
push 0
mov dword [ebx + 0x2d10], 2
mov dword [ebx + 0x2d14], 0
mov dword [ebx + 0x2d18], 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
test eax, eax
je 0x410e4d
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edi, dword [ebp - 0x2760]
mov ebx, dword [ebp - 0x2750]
imul eax, ebx, 0x5d0
mov edx, dword [eax + 0x57cb58]
cmp byte [edx*4 + 0x5661b0], 0
je 0x410ff1
test edi, edi
je 0x410eb5
xor edx, edx
cmp dword [0x5664cc], edx
jle 0x410e9c
xor ecx, ecx
mov eax, dword [0x5664d0]
lea ecx, [ecx + 0xeb8]
inc edx
mov byte [ecx + eax - 4], 1
cmp edx, dword [0x5664cc]
jl 0x410e83
mov eax, dword [ebp - 0x2754]
mov byte [eax + 0xeb4], 1
imul eax, ebx, 0x5d0
mov edx, dword [eax + 0x57cb58]
imul eax, ebx, 0x5d0
cmp byte [eax + 0x57cb60], 0
lea esi, [eax + 0x57cb60]
jne 0x410ed7
cmp byte [0x57c911], 0
je 0x410ff1
cmp dword [0x579b28], 0
jne 0x410eed
cmp byte [0x57c910], 0
je 0x410ff1
imul eax, ebx, 0x5d0
mov eax, dword [eax + 0x57d10c]
test eax, eax
jne 0x410f04
mov ecx, str.Restored
jmp 0x410f14
cmp eax, 1
mov ecx, str.Minimized
mov eax, str.Maximized
cmovne ecx, eax
mov eax, dword [ebp - 0x275c]
imul ebx, ebx, 0x5d0
lea eax, [eax + 0x57cfe8]
push eax
mov eax, dword [ebp - 0x275c]
lea eax, [eax + 0x57cf64]
push eax
push ecx
mov ecx, dword [ebp - 0x2750]
imul eax, ecx, 0x5d0
push dword [eax + 0x57d0fc]
imul eax, ecx, 0x5d0
push dword [eax + 0x57d0f8]
imul eax, ecx, 0x5d0
push dword [eax + 0x57d0f4]
imul eax, ecx, 0x5d0
push dword [eax + 0x57d0f0]
imul eax, ecx, 0x5d0
push dword [eax + 0x57d114]
lea eax, [edx*4 + 0x5661b0]
push esi
push dword [ebx + 0x57cb5c]
push eax
push str._s:_HWND__08X___TITLE__s___DTP__d___POS__d__d___DIM__d__d___STATE__s___CLASS__s___PROGRAM__s_
call fcn.004133e0
add esp, 0x30
cmp byte [0x57bfa4], 0
je 0x410fb7
push esi
lea eax, [edi + 0x109]
push eax
push dword [ebx + 0x57cb5c]
push str.RUL:_HWND__08X___RULE__s___TITLE__s_
call fcn.004133e0
add esp, 0x10
mov eax, dword [ebp - 0x2748]
cmp eax, 0xffffffff
je 0x410feb
push esi
push eax
push 0x55
mov ecx, 0xb657b8
call fcn.00427790
push eax
lea eax, [edi + 0x109]
push eax
push dword [ebx + 0x57cb5c]
push str.ADV:_HWND__08X___RULE__s___COMMAND__s___TITLE__s_
call fcn.004133e0
add esp, 0x14
mov ebx, dword [ebp - 0x2750]
imul eax, ebx, 0x5d0
cmp dword [eax + 0x57cb58], 0
jne 0x41103a
mov eax, dword [0x57c8fc]
sub eax, ebx
imul eax, eax, 0x5d0
sub eax, 0x5d0
push eax
imul eax, ebx, 0x5d0
add eax, 0x57d128
push eax
imul eax, ebx, 0x5d0
add eax, 0x57cb58
push eax
call fcn.00482d10
dec dword [0x57c8fc]
add esp, 0xc
dec ebx
inc ebx
mov dword [ebp - 0x2750], ebx
cmp ebx, dword [0x57c8fc]
jl 0x4107c0
cmp dword [ebp - 0x276c], 0
je 0x411061
push 0x57bf8c
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [0x57c7d8]
test ecx, ecx
je 0x411097
cmp byte [0x5661e0], 0
je 0x411097
cmp byte [ebp - 0x2749], 0
je 0x411097
xor eax, eax
cmp byte [ebp - 0x274a], al
push 0xffffffffffffffff
setne al
push eax
push 0x405
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
pop ebx
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00481761
mov esp, ebp
pop ebp
ret