Function at 0x405640
Capabilities:
Enumerate gui resources

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push ebx
push esi
mov esi, dword [ebp + 0x14]
push edi
call fcn.00409113
mov edi, dword [ebp + 8]
lea esi, [edi + 0xb0]
mov dword [ebp - 8], esi
call fcn.00409113
mov al, byte [ebp + 0x24]
mov ebx, dword [ebp + 0xc]
mov byte [edi + 4], al
mov al, byte [ebp + 0x20]
lea esi, [edi + 0x14]
mov byte [edi + 5], al
mov eax, esi
mov dword [ebp + 0x24], esi
call fcn.00410163
mov ebx, dword [ebp + 0x10]
lea eax, [edi + 0x20]
mov dword [ebp - 4], eax
call fcn.00410163
lea eax, [edi + 0x84]
push 0x46bf80
mov dword [ebp + 0xc], eax
call fcn.0041018f
mov eax, dword [ebp + 0x18]
xor ebx, ebx
mov dword [edi + 0x10], eax
xor eax, eax
inc ebx
lea ecx, [ebp - 0x14]
mov dword [edi + 0x90], ebx
mov byte [edi + 0xc], bl
mov dword [edi + 8], eax
mov dword [edi + 0x94], eax
mov dword [edi + 0xa8], eax
call fcn.0040ff82
lea ecx, [ebp - 0x20]
call fcn.0040ff82
mov eax, dword [edi + 0x10]
test eax, eax
jge 0x4056e7
push eax
call fcn.00451c28
pop ecx
mov dword [edi + 0x10], eax
mov byte [edi + 0xc], 0
cmp dword [edi + 0x10], 4
jne 0x4056f7
mov eax, esi
call fcn.00405358
mov dword [edi + 0x10], ebx
mov ebx, dword [edi + 0x18]
test ebx, ebx
jne 0x405740
cmp dword [edi + 0x24], ebx
jne 0x405740
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push eax
mov esi, edi
call fcn.00404995
mov eax, dword [edi]
mov eax, dword [eax]
mov esi, dword [ebp + 0x14]
mov dword [ebp + 0x24], eax
lea eax, [ebp + 0x24]
push eax
call fcn.00442e13
push dword [ebp - 0x20]
call fcn.0044f951
push dword [ebp - 0x14]
call fcn.0044f951
pop ecx
xor eax, eax
pop ecx
inc eax
pop edi
pop esi
pop ebx
leave
ret 0x20
xor edx, edx
mov eax, esi
call fcn.00410152
cmp word [eax], 0x5b
jne 0x4059d3
lea edx, [ebx - 1]
mov eax, esi
call fcn.00410152
cmp word [eax], 0x5d
jne 0x4059d3
add ebx, 0xfffffffe
push ebx
lea eax, [ebp - 0x20]
push eax
push esi
lea edi, [ebp + 0x20]
lea eax, [ebp - 0x14]
mov dword [ebp + 0x20], 1
mov dword [ebp + 0x10], ebx
call fcn.0040551d
test al, al
je 0x4059d0
push 0x46c3ac
lea esi, [ebp - 0x14]
call fcn.004102ff
test al, al
pop ecx
jne 0x405a2f
push 0x46c3c4
call fcn.004102ff
test al, al
pop ecx
jne 0x405a80
push 0x46c474
call fcn.004102ff
test al, al
pop ecx
jne 0x405aa5
push 0x46c484
call fcn.004102ff
test al, al
pop ecx
je 0x4057f1
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 8]
test al, 1
jne 0x405ac2
or eax, 2
mov dword [ecx + 8], eax
lea esi, [ecx + 0x2c]
jmp 0x40582e
push 0x46c328
lea esi, [ebp - 0x14]
call fcn.004102ff
test al, al
pop ecx
je 0x405812
mov eax, dword [ebp + 8]
or dword [eax + 8], 8
mov eax, dword [ebp + 0xc]
jmp 0x405990
push 0x46c344
lea esi, [ebp - 0x14]
call fcn.004102ff
test al, al
pop ecx
je 0x40584c
mov eax, dword [ebp + 8]
or dword [eax + 8], 0x10
lea esi, [eax + 0x58]
call fcn.004077a7
lea eax, [ebp - 0x20]
mov ecx, esi
call fcn.004077fa
test eax, eax
je 0x4059b0
push 0xfffffffffffffffe
jmp 0x405ac4
push 0x46c364
lea esi, [ebp - 0x14]
call fcn.004102ff
test al, al
pop ecx
je 0x40587c
mov esi, dword [ebp + 8]
push dword [ebp - 0x20]
or dword [esi + 8], 0x80
call fcn.0045192d
pop ecx
mov dword [esi + 0x98], eax
jmp 0x4059b0
push 0x46c368
lea esi, [ebp - 0x14]
call fcn.004102ff
test al, al
pop ecx
je 0x4058ac
mov esi, dword [ebp + 8]
push dword [ebp - 0x20]
or dword [esi + 8], 0x100
call fcn.0045192d
pop ecx
mov dword [esi + 0x9c], eax
jmp 0x4059b0
push 0x46c36c
lea esi, [ebp - 0x14]
call fcn.004102ff
test al, al
pop ecx
je 0x4058dc
mov esi, dword [ebp + 8]
push dword [ebp - 0x20]
or dword [esi + 8], 0x200
call fcn.0045192d
pop ecx
mov dword [esi + 0xa0], eax
jmp 0x4059b0
push 0x46c370
lea esi, [ebp - 0x14]
call fcn.004102ff
test al, al
pop ecx
je 0x40590c
mov esi, dword [ebp + 8]
push dword [ebp - 0x20]
or dword [esi + 8], 0x400
call fcn.0045192d
pop ecx
mov dword [esi + 0xa4], eax
jmp 0x4059b0
push 0x46c374
lea esi, [ebp - 0x14]
call fcn.004102ff
test al, al
pop ecx
je 0x405936
mov esi, dword [ebp + 8]
push dword [ebp - 0x20]
or dword [esi + 8], 0x20
call fcn.0045192d
pop ecx
mov dword [esi + 0x90], eax
jmp 0x4059b0
push 0x46c45c
lea esi, [ebp - 0x14]
call fcn.004102ff
test al, al
pop ecx
je 0x405967
push 0x46bf80
lea esi, [ebp - 0x20]
call fcn.004102ff
test al, al
pop ecx
je 0x405a7b
mov eax, dword [ebp + 8]
or dword [eax + 8], 0x40
jmp 0x4059b0
push 0x46c49c
lea esi, [ebp - 0x14]
call fcn.004102ff
test al, al
pop ecx
je 0x40599a
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 8]
test al, 2
jne 0x405ac7
or eax, 1
mov dword [ecx + 8], eax
mov eax, dword [ebp + 0x24]
lea ebx, [ebp - 0x20]
call fcn.00410163
jmp 0x4059b0
push 0x46bf80
lea esi, [ebp - 0x14]
call fcn.004102ff
test al, al
pop ecx
je 0x405a7b
push dword [ebp + 0x10]
lea eax, [ebp - 0x20]
push eax
push dword [ebp + 0x24]
lea edi, [ebp + 0x20]
lea eax, [ebp - 0x14]
call fcn.0040551d
test al, al
jne 0x40578d
mov esi, dword [ebp + 0x24]
mov edi, dword [ebp + 8]
cmp dword [edi + 8], 0
jne 0x4059e0
mov dword [edi + 8], 1
or dword [edi + 8], 4
cmp byte [edi + 0xc], 0
mov ebx, dword [sym.imp.USER32.dll_CharUpperBuffW]
jne 0x4059fa
mov eax, dword [ebp - 4]
push dword [eax + 4]
push dword [eax]
call ebx
test byte [edi + 8], 1
je 0x405a0d
cmp byte [edi + 0xc], 0
jne 0x405a0d
push dword [esi + 4]
push dword [esi]
call ebx
cmp byte [ebp + 0x1c], 0
push edi
push 0x405b08
je 0x405acb
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.USER32.dll_EnumChildWindows]
jmp 0x405ad1
push 0x46bf80
lea esi, [ebp - 0x20]
call fcn.004102ff
test al, al
pop ecx
je 0x405a7b
mov eax, dword [ebp + 8]
mov eax, dword [eax]
test eax, eax
je 0x405a77
mov eax, dword [eax]
mov esi, dword [ebp + 0x14]
mov dword [ebp + 0x24], eax
lea eax, [ebp + 0x24]
push eax
call fcn.00442e13
xor edi, edi
inc edi
push dword [ebp - 0x20]
call fcn.0044f951
push dword [ebp - 0x14]
call fcn.0044f951
pop ecx
pop ecx
mov eax, edi
jmp 0x405739
xor edi, edi
jmp 0x405a5e
or edi, 0xffffffff
jmp 0x405a5e
push 0x46bf80
lea esi, [ebp - 0x20]
call fcn.004102ff
test al, al
pop ecx
je 0x405a7b
call dword [sym.imp.USER32.dll_GetForegroundWindow]
push eax
mov esi, dword [ebp + 8]
call fcn.00404995
mov eax, dword [esi]
jmp 0x405a4a
mov edi, dword [ebp - 0x20]
lea esi, [ebp + 0x24]
call fcn.0040f9d2
push dword [ebp + 0x24]
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x405a77
push dword [ebp + 0x24]
jmp 0x405a99
push 0xfffffffffffffffd
pop edi
jmp 0x405a5e
push 0xfffffffffffffffc
jmp 0x405ac4
call dword [sym.imp.USER32.dll_EnumWindows]
mov esi, dword [ebp - 8]
mov eax, dword [ebp + 0x14]
mov ebx, esi
call fcn.00405f1a
call fcn.00409113
cmp dword [edi + 0xa8], 1
jl 0x405afd
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 4]
mov eax, dword [eax]
push dword [eax]
mov esi, edi
call fcn.00404995
mov edi, dword [edi + 0xa8]
jmp 0x405a5e