Function at 0x56ae50
Capabilities:
Enumerate gui resources

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5ae942
mov eax, dword fs:[0]
push eax
sub esp, 0x520
mov eax, dword [0x614040]
xor eax, esp
mov dword [esp + 0x518], eax
push ebx
push esi
push edi
mov eax, dword [0x614040]
xor eax, esp
push eax
lea eax, [esp + 0x530]
mov dword fs:[0], eax
mov ebx, dword [ebp + 8]
lea eax, [ecx + 0xf8]
mov dword [esp + 0x10], eax
mov dword [ebx], 0x1e240
cmp dword [eax], 0
jne 0x56b289
cmp dword [ecx + 0xfc], 0
lea eax, [ecx + 0xfc]
mov dword [esp + 0x28], eax
jne 0x56b289
call fcn.0055eac0
call fcn.00566810
push dword [ebx]
call fcn.00566730
test al, al
je 0x56b289
mov ecx, dword [ebx]
call fcn.00561d10
mov ecx, dword [ebx]
call fcn.00562a80
test eax, eax
je 0x56b289
push 0
push dword [ebx]
call fcn.00566aa0
push dword [ebx]
call fcn.0055d930
test al, al
je 0x56b289
push 1
push dword [ebx]
call fcn.00566aa0
mov ecx, dword [ebx]
call fcn.00561a30
push 0x10002
push dword [ebx]
call fcn.00566c40
mov edx, dword [ebx]
lea ecx, [esp + 0x24]
push 0x20001
mov esi, eax
call fcn.0058d5b0
add esp, 4
mov dword [esp + 0x538], 0
cmp esi, 0xd03
jg 0x56af67
je 0x56afbe
mov eax, esi
sub eax, 0xce4
je 0x56afbe
sub eax, 6
je 0x56afbe
sub eax, 0x12
jne 0x56af7f
xor edi, edi
jmp 0x56af8c
cmp esi, 0xd04
je 0x56afbe
cmp esi, 0xe30
je 0x56afbe
cmp esi, 0x1fb0
je 0x56afbe
mov edi, 1
cmp esi, 0xcfc
jne 0x56afc0
push str.MIG_Scan
lea ecx, [esp + 0x28]
call fcn.00403940
test eax, eax
jne 0x56afa5
mov esi, 0x16c8c
jmp 0x56afc0
push str.MIG_WorkShop
lea ecx, [esp + 0x28]
call fcn.00403940
test eax, eax
jne 0x56afc0
mov esi, 0x1457c
jmp 0x56afc0
xor edi, edi
lea ecx, [esp + 0x20]
mov byte [esp + 0x1b], 1
call fcn.00402b30
push edi
lea eax, [esp + 0x24]
mov byte [esp + 0x53c], 1
push str.jp.co.canon.scangear.scanutility.mutexByCat_d
push eax
call fcn.00402d50
add esp, 0xc
push dword [esp + 0x20]
push 0x5e7af0
push dword [esp + 0x18]
call dword [sym.imp.SUCMLIB.dll_Ordinal_83]
mov eax, dword [esp + 0x10]
push 0
mov ecx, dword [eax]
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x56b0fd
mov ebx, dword [esp + 0x10]
mov edi, dword [sym.imp.SUCMLIB.dll_Ordinal_84]
push ebx
call edi
lea ecx, [esp + 0x14]
mov dword [ebx], 0
mov dword [esp + 0x10], 0
call fcn.00402b30
push esi
lea eax, [esp + 0x18]
mov byte [esp + 0x53c], 2
push str.jp.co.canon.scangear.scanutility.mutexByCtrlID_d
push eax
call fcn.00402d50
mov ebx, dword [sym.imp.SUCMLIB.dll_Ordinal_83]
lea eax, [esp + 0x1c]
add esp, 0xc
push dword [esp + 0x14]
push 0x5e7af0
push eax
call ebx
mov ecx, dword [esp + 0x10]
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x56b096
push 0
push 0x587210
call dword [sym.imp.USER32.dll_EnumWindows]
lea eax, [esp + 0x10]
push eax
call edi
mov dword [esp + 0x10], 0
jmp 0x56b26e
push str.jp.co.canon.scangear.scanutility.Exclusive
push 0x5e7af0
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
push eax
call ebx
mov ecx, dword [esp + 0x1c]
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
jne 0x56b0d5
mov edx, 0x98a00
xor ecx, ecx
call fcn.00547e20
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
call dword [eax + 0x10]
jmp 0x56b0e2
push 0
push 0x587210
call dword [sym.imp.USER32.dll_EnumWindows]
lea eax, [esp + 0x1c]
push eax
call edi
lea eax, [esp + 0x10]
push eax
call edi
mov dword [esp + 0x10], 0
jmp 0x56b26e
test edi, edi
jne 0x56b1eb
lea ecx, [esp + 0x14]
call fcn.00402b30
push 1
lea eax, [esp + 0x18]
mov byte [esp + 0x53c], 3
push str.jp.co.canon.scangear.scanutility.mutexByCat_d
push eax
call fcn.00402d50
add esp, 0xc
mov dword [esp + 0x1c], edi
mov edi, dword [sym.imp.SUCMLIB.dll_Ordinal_83]
lea eax, [esp + 0x1c]
push dword [esp + 0x14]
push 0x5e7af0
push eax
call edi
mov ecx, dword [esp + 0x1c]
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
jne 0x56b15e
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
call dword [eax + 0x10]
jmp 0x56b1ba
push str.jp.co.canon.scangear.scanutility.Exclusive
push 0x5e7af0
lea eax, [esp + 0x18]
mov dword [esp + 0x18], 0
push eax
call edi
mov ecx, dword [esp + 0x10]
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
jne 0x56b19d
mov edx, 0x98a00
xor ecx, ecx
call fcn.00547e20
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx]
call dword [eax + 0x10]
jmp 0x56b1aa
push 0
push 0x587210
call dword [sym.imp.USER32.dll_EnumWindows]
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.SUCMLIB.dll_Ordinal_84]
mov byte [esp + 0x1b], 0
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.SUCMLIB.dll_Ordinal_84]
lea ecx, [esp + 0x14]
mov dword [esp + 0x1c], 0
mov byte [esp + 0x538], 1
call fcn.00402b60
cmp byte [esp + 0x1b], 0
je 0x56b277
jmp 0x56b1f1
mov edi, dword [sym.imp.SUCMLIB.dll_Ordinal_83]
lea ecx, [esp + 0x14]
call fcn.00402b30
push esi
lea eax, [esp + 0x18]
mov byte [esp + 0x53c], 4
push str.jp.co.canon.scangear.scanutility.mutexByCtrlID_d
push eax
call fcn.00402d50
mov esi, dword [esp + 0x34]
add esp, 0xc
push dword [esp + 0x14]
push 0x5e7af0
push esi
call edi
mov ecx, dword [esi]
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
push 0x10002
push dword [ebx]
call fcn.00566c40
mov esi, eax
cmp esi, 0xd04
jg 0x56b2af
cmp esi, 0xd03
jge 0x56b2c7
cmp esi, 0xce5
jl 0x56b264
cmp esi, 0xce9
jle 0x56b2c7
cmp esi, 0xceb
je 0x56b2c7
push dword [ebx]
push esi
push 0
call fcn.005600f0
lea ecx, [esp + 0x14]
call fcn.00402b60
lea ecx, [esp + 0x20]
call fcn.00402b60
lea ecx, [esp + 0x24]
call fcn.00402b60
mov ecx, dword [esp + 0x530]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x518]
xor ecx, esp
call fcn.00527e2c
mov esp, ebp
pop ebp
ret 4
cmp esi, 0xd08
jl 0x56b264
cmp esi, 0xd0a
jle 0x56b2c7
cmp esi, 0x1faf
jne 0x56b264
push 0
lea ecx, [esp + 0x30]
call fcn.00555a90
mov byte [esp + 0x538], 5
lea ecx, [esp + 0x2c]
mov dword [esp + 0x478], esi
call fcn.005555f0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x538], 4
call fcn.00555740
jmp 0x56b26e