Function at 0x469150
Capabilities:
Enumerate gui resources

Disassembly:
mov eax, 0x895c
call 0x10488480
mov eax, dword [esp + 0x8960]
mov eax, dword [eax + 8]
push ebx
xor ebx, ebx
cmp eax, ebx
je 0x46d5fd
mov dword [eax + 0x84824], eax
add byte [ebp + 0x50082444], cl
push 0x429880
mov dword [esp + 0x10], ebx
mov dword [esp + 0x81c], 0x2049588a
cwde
pushfd
and al, 0x38
or byte [eax], al
or byte [ecx + 0x83c249c], 0
add byte [ecx + 0x840249c], cl
add byte [eax], al
mov dword [esp + 0x944], ebx
mov dword [esp + 0x8000848], ebx
mov dword [esp + 0x84c], ebx
mov dword [esp + 0x85c], ebx
mov dword [esp + 0x860], ebx
mov cl, byte [esp + 0x854]
mov dword [esp + 0x858], edx
call dword [sym.imp.USER32.dll_EnumWindows]
cmp dword [esp + 0x838], ebx
je 0x4691fd
mov ecx, dword [0x49d3c8]
mov eax, dword [ecx + 0x54]
cmp eax, 0xffffffff
jle 0x4691fd
push 1
push eax
call 0xf0401b60
add esp, 8
mov eax, 1
pop ebx
add esp, 0x895c
ret 4
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
mov dword [esp + 0x18], eax
cmp dword [esp + 0x100], edx
je 0x46bdc8
mov ecx, dword [esp + 0xfc]
mov edx, dword [ecx + 0x10]
add edx, 0xf9c
cmp ebx, edx
ja 0x46e724
mov ecx, dword [esp + 0x90]
cmp ebx, ecx
jae 0x46bd4b
mov dword [esp + 0x14], ecx
mov ebx, ecx
mov eax, dword [esp + 0x100]
mov eax, dword [eax]
mov edx, ebx
sub edx, ecx
mov ecx, 0x7fffffeb
sub ecx, eax
cmp ecx, edx
jl 0x46e747
sub eax, dword [esp + 0x90]
mov edx, dword [esp + 0x100]
add eax, ebx
mov dword [edx], eax
xor edx, edx
cmp ebp, edx
je 0x46bdb5
cmp ebp, esi
jbe 0x46bdbb
mov eax, ebx
sub eax, ebp
push eax
push ebp
push esi
call fcn.004777f0
mov edi, dword [esp + 0x1c]
mov ecx, esi
sub ecx, ebp
add ebx, ecx
mov ecx, dword [esp + 0x68]
mov ebp, esi
add esp, 0xc
mov dword [esp + 0x14], ebx
mov dword [esp + 0x24], ebp
xor edx, edx
mov dword [esp + 0x90], ebx
jmp 0x46bde1
mov dword [esp + 0x14], esi
mov ebx, esi
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x90], ebx
jmp 0x46bde1
mov eax, dword [esp + 0xfc]
mov esi, dword [eax + 0x10]
add esi, 0xf9c
cmp dword [eax + 0x24], esi
ja 0x46e76a
cmp dword [esp + 0x50], edx
je 0x46bed2
cmp dword [esp + 0x18], edx
je 0x46bed2
cmp dword [esp + 0x18], 0x5c
jne 0x46be1e
cmp byte [edi + 1], 0x45
jne 0x46be1e
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
mov dword [esp + 0x50], edx
inc edi
xor edx, edx
jmp 0x46bd0a
cmp ecx, edx
je 0x46be5b
cmp dword [esp + 0x100], edx
jne 0x46be57
movzx edx, byte [ecx + 6]
movzx eax, byte [ecx + 7]
shl edx, 8
or edx, eax
mov eax, edi
sub eax, edx
mov edx, dword [esp + 0xfc]
sub eax, dword [edx + 0x18]
mov edx, eax
sar edx, 8
mov byte [ecx + 8], dl
mov byte [ecx + 9], al
mov edi, dword [esp + 0x10]
xor edx, edx
mov dword [esp + 0x5c], edx
test dword [esp + 0x2c], 0x4000
je 0x46be98
mov esi, dword [esp + 0xfc]
mov word [ebx], 0xff53
mov dword [ebx + 2], edx
mov eax, edi
mov ecx, eax
sub ecx, dword [esi + 0x18]
mov dword [esp + 0x5c], ebx
sar ecx, 8
mov byte [ebx + 6], cl
sub al, byte [esi + 0x18]
mov word [ebx + 8], 0
mov byte [ebx + 7], al
add ebx, 0xa
mov dword [esp + 0x14], ebx
mov al, byte [esp + 0x18]
mov dl, byte [esp + 0x2c]
and dl, 1
or dl, 0x1c
mov byte [ebx], dl
mov dword [esp + 0x24], ebx
mov byte [ebx + 1], al
add ebx, 2
mov dword [esp + 0x14], ebx
cmp al, 0xd
je 0x46bec2
cmp al, 0xa
jne 0x46e6a6
mov edx, dword [esp + 0xfc]
or dword [edx + 0x48], 0x20
jmp 0x46e6ad
mov eax, dword [esp + 0x18]
cmp eax, 0x2a
je 0x46bff5
cmp eax, 0x2b
je 0x46bff5
cmp eax, 0x3f
je 0x46bff5
cmp eax, 0x7b
jne 0x46bf06
lea eax, [edi + 1]
call fcn.00469fa0
test eax, eax
jne 0x46bff5
mov esi, dword [esp + 0x5c]
xor ecx, ecx
mov dword [esp + 0x1c], ecx
cmp esi, ecx
je 0x46bf60
mov eax, dword [esp + 0xa4]
mov edx, eax
dec eax
mov dword [esp + 0xa4], eax
test edx, edx
jg 0x46bf60
cmp dword [esp + 0x100], ecx
jne 0x46bf5c
movzx edx, byte [esi + 6]
movzx eax, byte [esi + 7]
shl edx, 8
or edx, eax
mov eax, edi
sub eax, edx
mov edx, dword [esp + 0xfc]
sub eax, dword [edx + 0x18]
mov edx, eax
sar edx, 8
mov byte [esi + 8], dl
mov byte [esi + 9], al
mov edi, dword [esp + 0x10]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0x2c]
test dl, 8
je 0x46c040
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 0xc]
mov edx, dword [esp + 0x18]
test byte [edx + ecx], 1
jne 0x46c0d6
cmp edx, 0x23
jne 0x46c049
inc edi
mov dword [esp + 0x10], edi
mov cl, byte [edi]
test cl, cl
je 0x46bfe4
lea esp, [esp]
mov edx, dword [eax + 0x58]
test edx, edx
je 0x46c002
mov eax, dword [eax + 0x1c]
cmp edi, eax
jae 0x46c029
mov esi, dword [esp + 0xfc]
push edx
add esi, 0x5c
mov edx, eax
mov ecx, edi
call fcn.004758c0
add esp, 4
test eax, eax
je 0x46c029
mov eax, dword [esp + 0xfc]
mov ecx, dword [eax + 0x5c]
lea edi, [edi + ecx - 1]
mov dword [esp + 0x10], edi
cmp byte [edi], 0
jne 0x46c0d6
mov esi, dword [esp + 0xfc]
mov dword [esp + 0x18], 0
jmp 0x46c04b
mov dword [esp + 0x1c], 1
jmp 0x46bf60
mov edx, dword [eax + 0x5c]
mov eax, dword [eax + 0x1c]
sub eax, edx
cmp edi, eax
ja 0x46c029
stosd dword es:[edi], eax
test byte [esp + edi*8], ah
and byte [eax], al
add byte [edx], bh
dec eax
pushal
jne 0x46c029
cmp edx, 1
je 0x46bfc9
mov cl, byte [edi + 1]
mov edx, eax
cmp cl, byte [edx + 0x61]
je 0x46bfc9
inc edi
mov dword [esp + 0x10], edi
mov cl, byte [edi]
test cl, cl
je 0x46bfe4
mov eax, dword [esp + 0xfc]
jmp 0x46bfa0
mov esi, dword [esp + 0xfc]
jmp 0x46c053
mov esi, eax
mov edx, dword [esp + 0x2c]
mov ch, byte [esp + 0x24]
xor ecx, ecx
test edx, 0x4000
je 0x46c095
cmp dword [esp + 0x1c], ecx
jne 0x46c095
mov dword fs:[ebx], 0x4b89ff53
add cl, byte [ebx + 0x2bd08bc7]
salc
sbb byte [ecx - 0x3ea3dba4], cl
cli
or byte [eax + 0x462a0653], cl
sbb byte [ebx - 0x77d3dbac], cl
inc ebx
pop es
mov word [ebx + 8], cx
mov edi, dword [esp + 0x10]
add ebx, 0xa
mov dword [esp + 0x14], ebx
cmp dword [esp + 0x18], 0x7c
ja 0x46be98
mov al, byte [esp + 0x18]
movzx eax, al
mov esp, gs
inc esi
add bh, bh
and al, 0x85
pop eax
in al, dx
inc esi
add dh, dh
ret 0x7402
mov dword [esp + 0x14], ebx
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
xor edx, edx
jmp 0x3ebd0a
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
cmp al, 0x2d
je 0x46d605
cmp al, 0x2b
jne 0x46d611
inc edi
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
mov dword [esp + 0x34], eax
movzx ecx, byte [edi + 1]
mov edx, dword [esi + 0xc]
inc edi
test byte [ecx + edx], 0x10
je 0x46e97c
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
xor ecx, ecx
test byte [edx + eax], 0x10
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], edi
je 0x46d66a
lea ebx, [ebx]
test ecx, ecx
js 0x46d658
test byte [eax + 0x4979a8], 4
je 0x46d656
lea ecx, [ecx + ecx*4]
lea ecx, [eax + ecx*2 - 0x30]
jmp 0x46d658
mov ecx, ebp
inc edi
mov dword [esp + 0x10], edi
movzx eax, byte [edi]
test byte [edx + eax], 0x10
jne 0x46d640
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x20]
mov ebp, edi
sub ebp, dword [esp + 0x24]
test eax, eax
jle 0x46d688
movzx edx, byte [edi]
inc edi
mov dword [esp + 0x10], edi
cmp edx, eax
jne 0x46e99f
mov al, byte [edi]
inc edi
mov dword [esp + 0x10], edi
cmp al, 0x29
jne 0x46e99f
cmp dword [esp + 0x100], 0
jne 0x46e03b
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x46d6e8
test ecx, ecx
jle 0x46e9c3
cmp eax, 0x2d
jne 0x46d6c4
mov edx, dword [esi + 0x34]
sub edx, ecx
lea ecx, [edx + 1]
jmp 0x46d6c7
add ecx, dword [esi + 0x34]
test ecx, ecx
jle 0x46e2c0
cmp ecx, dword [esi + 0x38]
jg 0x46e2c0
mov eax, ecx
sar eax, 8
mov byte [ebx + 4], al
mov byte [ebx + 5], cl
jmp 0x46e03b
mov edi, dword [esp + 0xfc]
cmp dword [edi + 0x2c], 0
mov esi, dword [edi + 0x28]
mov dword [esp + 0x28], 0
jle 0x46d727
mov edx, dword [esp + 0x24]
push ebp
lea ecx, [esi + 2]
push ecx
push edx
call fcn.0047b9c1
add esp, 0xc
test eax, eax
je 0x46d727
mov eax, dword [esp + 0x28]
add esi, dword [edi + 0x30]
inc eax
mov dword [esp + 0x28], eax
cmp eax, dword [edi + 0x2c]
jl 0x46d700
mov eax, dword [esp + 0x28]
cmp eax, dword [edi + 0x2c]
jge 0x46d751
movzx ecx, byte [esi]
movzx eax, byte [esi + 1]
shl ecx, 8
or eax, ecx
mov edx, eax
sar edx, 8
inc byte [ebx + 3]
mov byte [ebx + 4], dl
mov byte [ebx + 5], al
mov esi, edi
jmp 0x46e03b
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x24]
shr eax, 3
and eax, 1
push eax
push ebp
push esi
push edi
call fcn.0046a430
add esp, 0x10
test eax, eax
jle 0x46d784
mov ecx, eax
sar ecx, 8
inc byte [ebx + 3]
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
mov esi, edi
jmp 0x46e03b
cmp dword [esp + 0x20], 0
jne 0x46e9e6
cmp byte [esi], 0x52
jne 0x46d7dc
xor eax, eax
lea ecx, [eax + 1]
cmp ebp, ecx
jle 0x46d7c1
lea ecx, [ecx]
movzx edx, byte [ecx + esi]
test byte [edx + 0x4979a8], 4
je 0x46e9f8
inc ecx
lea eax, [eax + eax*4]
lea eax, [edx + eax*2 - 0x30]
cmp ecx, ebp
jl 0x46d7a0
test eax, eax
jne 0x46d7c6
mov eax, 0xffff
mov ecx, eax
sar ecx, 8
mov byte [ebx + 3], 0x66
mov byte [ebx + 4], cl
mov byte [ebx + 5], al
mov esi, edi
jmp 0x46e03b
cmp ebp, 6
jne 0x46d807
push ebp
push str.DEFINE
push esi
call fcn.0047b9c1
add esp, 0xc
test eax, eax
jne 0x46d807
mov byte [ebx + 3], 0x68
mov dword [esp + 0x1c], 1
mov esi, edi
jmp 0x46e03b
mov eax, dword [esp + 0x14]
test eax, eax
jle 0x46ea0a
cmp eax, dword [edi + 0x38]
jg 0x46ea0a
mov edx, eax
sar edx, 8
mov byte [ebx + 4], dl
mov byte [ebx + 5], al
mov esi, edi
jmp 0x46e03b
mov eax, dword [esp + 0x18]
xor ecx, ecx
cmp eax, 0x5d
setl cl
mov byte [ebx], al
mov ebp, dword [esi + 0x4c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x64], 0
dec ecx
and ecx, ebx
mov dword [esp + 0x24], ecx
cmp eax, 0x5a
je 0x46e06d
cmp eax, 0x5b
je 0x46e06d
xor eax, eax
jmp 0x46e072
mov eax, 1
mov edi, dword [esp + 0x100]
mov edx, edi
neg edx
sbb edx, edx
lea ecx, [esp + 0x64]
and edx, ecx
push edx
mov edx, dword [esp + 0xfc]
push esi
push edx
lea ecx, [esp + 0xa0]
push ecx
mov ecx, dword [esp + 0x2c]
lea edx, [esp + 0xac]
push edx
mov edx, dword [esp + 0x54]
push ecx
push edx
push eax
mov eax, dword [esp + 0x10c]
push eax
mov eax, dword [esp + 0x50]
lea ecx, [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x88]
lea edx, [esp + 0x64]
push edx
and eax, 7
push eax
push ecx
call fcn.0046eeb0
add esp, 0x34
test eax, eax
je 0x46d4b6
mov edx, dword [esp + 0x18]
cmp edx, 0x60
jne 0x46e119
test edi, edi
jne 0x46e119
mov eax, ebx
xor ecx, ecx
lea ecx, [ecx]
movzx esi, byte [eax + 1]
movzx edi, byte [eax + 2]
shl esi, 8
or esi, edi
add eax, esi
inc ecx
cmp byte [eax], 0x55
jne 0x46e0f0
cmp byte [ebx + 3], 0x68
jne 0x46e176
cmp ecx, 1
jg 0x46eb3c
mov edx, 0x68
mov eax, dword [esp + 0x9c]
mov ecx, dword [esp + 0x94]
mov edi, dword [esp + 0x10]
cmp byte [edi], 0x29
jne 0x46eb60
mov esi, dword [esp + 0x100]
test esi, esi
je 0x46e199
mov eax, dword [esi]
mov ecx, dword [esp + 0x64]
mov edx, 0x7fffffeb
sub edx, eax
lea ebp, [ecx - 6]
cmp edx, ebp
jl 0x46e912
lea eax, [eax + ecx - 6]
mov dword [esi], eax
mov word [ebx], 0x5e
mov word [ebx + 2], 0x5503
mov word [ebx + 4], 0x300
add ebx, 6
jmp 0x46c0ce
cmp ecx, 2
jg 0x46eb4e
cmp ecx, 1
jne 0x46e119
or ecx, 0xffffffff
or eax, ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x9c], eax
jmp 0x46e127
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x14], esi
cmp edx, 0x68
je 0x46e241
mov esi, dword [esp + 0x48]
mov dword [esp + 0x4c], esi
mov esi, dword [esp + 0x30]
mov dword [esp + 0x54], esi
mov dword [esp + 0xa0], 0
cmp edx, 0x5d
jl 0x46e234
cmp esi, 0xfffffffe
jne 0x46e1fe
test eax, eax
js 0x46e1ec
mov dword [esp + 0x30], eax
mov dword [esp + 0xa0], 1
mov dword [esp + 0x54], 0xffffffff
jmp 0x46e211
mov dword [esp + 0x30], 0xffffffff
mov dword [esp + 0x54], 0xffffffff
jmp 0x46e211
test eax, eax
js 0x46e211
test ecx, ecx
jns 0x46e215
or eax, ebp
mov ecx, eax
mov dword [esp + 0x94], ecx
test ecx, ecx
js 0x46e241
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x5c]
inc edi
xor edx, edx
jmp 0x46bd0a
cmp edx, 0x58
jne 0x46e241
test ecx, ecx
js 0x46e241
mov dword [esp + 0x48], ecx
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0xb8]
mov ecx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x24]
inc edi
xor edx, edx
jmp 0x46bd0a
mov edx, dword [esp + 0xec]
mov dword [edx], 0xf
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xfc]
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
cmp ecx, 0xfffffffe
jne 0x46e6ef
mov ecx, dword [esp + 0x48]
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x24]
movzx eax, al
or eax, dword [esp + 0x98]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x5c]
inc edi
mov dword [esp + 0x54], 0xffffffff
mov dword [esp + 0x30], eax
xor edx, edx
jmp 0x46bd0a
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0xb8]
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x54], ecx
movzx ecx, byte [ebx - 1]
or ecx, dword [edx + 0x4c]
inc edi
or ecx, dword [esp + 0x98]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], ecx
mov ecx, dword [esp + 0x5c]
xor edx, edx
jmp 0x46bd0a
mov edx, dword [esp + 0xec]
mov dword [edx], 0x34
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x14
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x34
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x14
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xec]
mov dword [edx], 0x1c
mov edx, dword [esp + 0xe8]
mov dword [edx], edi
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xec]
dec edi
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [eax], 0x1a
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0x3a
xor eax, eax
pop ebx
add esp, 0xcc
ret
mov eax, dword [esp + 0xec]
mov dword [eax], 0xf
jmp 0x46d4b6
mov ecx, dword [esp + 0xec]
mov dword [ecx], 0xf
jmp 0x46d4b6
mov edx, dword [esp + 0xec]
neg eax
sbb eax, eax
and eax, 0xffffffec
add eax, 0x23
mov dword [edx], eax
jmp 0x46d4b6
mov edx, dword [esp + 0xec]
mov dword [edx], 0x36
jmp 0x46d4b6
mov eax, dword [esp + 0xec]
mov dword [eax], 0x1b
jmp 0x46d4b6
mov edx, dword [esp + 0xe8]
mov ecx, dword [esp + 0xec]
mov dword [edx], edi
pop edi
pop esi
pop ebp
mov dword [ecx], 0xe
xor eax, eax
pop ebx
add esp, 0xcc
ret