Function at 0x56bc00
Capabilities:
Enumerate gui resources

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5b0f7d
mov eax, dword fs:[0]
push eax
sub esp, 0x528
mov eax, dword [0x616040]
xor eax, esp
mov dword [esp + 0x520], eax
push ebx
push esi
push edi
mov eax, dword [0x616040]
xor eax, esp
push eax
lea eax, [esp + 0x538]
mov dword fs:[0], eax
mov edi, dword [ebp + 8]
lea eax, [ecx + 0xf8]
mov dword [esp + 0x18], eax
mov dword [edi], 0x1e240
cmp dword [eax], 0
jne 0x56c143
cmp dword [ecx + 0xfc], 0
lea eax, [ecx + 0xfc]
mov dword [esp + 0x28], eax
jne 0x56c143
call fcn.0055eeb0
call fcn.00566eb0
push dword [edi]
call fcn.00566dd0
test al, al
je 0x56c143
mov ecx, dword [edi]
call fcn.00562170
mov ecx, dword [edi]
call fcn.00562ee0
test eax, eax
je 0x56c143
push 0
push dword [edi]
call fcn.00567150
push dword [edi]
call fcn.0055dd00
test al, al
je 0x56c143
push 1
push dword [edi]
call fcn.00567150
mov ecx, dword [edi]
call fcn.00561e60
push 0x1001f
push dword [edi]
call fcn.00567330
xor dl, dl
mov ecx, eax
call fcn.00569a10
mov edx, dword [edi]
xor bl, bl
push ecx
mov ecx, esp
push 0xa0009
call fcn.0058f8e0
add esp, 4
mov cl, bl
call fcn.00567740
add esp, 4
push 0x10002
push dword [edi]
call fcn.00567330
mov edx, dword [edi]
lea ecx, [esp + 0x20]
push 0x20001
mov ebx, eax
call fcn.0058f8e0
add esp, 4
mov dword [esp + 0x540], 0
cmp ebx, 0xd03
jg 0x56bd84
je 0x56bd46
mov eax, ebx
sub eax, 0xce4
je 0x56bd46
sub eax, 6
je 0x56bd46
sub eax, 0x12
jne 0x56bd9c
xor esi, esi
lea eax, [esp + 0x20]
push 0x5ead7c
push eax
call fcn.00403c30
add esp, 8
test al, al
je 0x56bd63
mov esi, 2
cmp ebx, 0xcfc
jne 0x56bdba
push str.MIG_Scan
lea ecx, [esp + 0x24]
call fcn.00403940
test eax, eax
jne 0x56bda3
mov ebx, 0x16c8c
jmp 0x56bdba
cmp ebx, 0xd04
je 0x56bd46
cmp ebx, 0xe30
je 0x56bd46
cmp ebx, 0x1fb0
je 0x56bd46
mov esi, 1
jmp 0x56bd48
push str.MIG_WorkShop
lea ecx, [esp + 0x24]
call fcn.00403940
test eax, eax
jne 0x56bdba
mov ebx, 0x1457c
push 0x50021
push dword [edi]
call fcn.00567330
cmp eax, 0xb
jl 0x56be7a
mov byte [esp + 0x13], 1
cmp esi, 1
jne 0x56be69
lea ecx, [esp + 0x1c]
mov dword [esp + 0x14], 0
call fcn.00402b30
push 0
lea eax, [esp + 0x20]
mov byte [esp + 0x544], 1
push str.jp.co.canon.scangear.scanutility.mutexByCat_d
push eax
call fcn.00402d50
add esp, 0xc
lea eax, [esp + 0x14]
push dword [esp + 0x1c]
push 0x5e9af0
push eax
call dword [sym.imp.SUCMLIB.dll_Ordinal_83]
mov ecx, dword [esp + 0x14]
test ecx, ecx
je 0x56be51
mov eax, dword [ecx]
push 0
call dword [eax + 0xc]
neg eax
sbb al, al
not al
and byte [esp + 0x13], al
cmp dword [esp + 0x14], 0
je 0x56be51
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.SUCMLIB.dll_Ordinal_84]
mov dword [esp + 0x14], 0
lea ecx, [esp + 0x1c]
mov byte [esp + 0x540], 0
call fcn.00402b60
cmp byte [esp + 0x13], 0
je 0x56be7a
mov eax, dword [esp + 0x20]
cmp dword [eax - 0xc], 0
jne 0x56be7a
mov ecx, dword [edi]
call fcn.005673c0
lea ecx, [esp + 0x24]
mov byte [esp + 0x13], 1
call fcn.00402b30
push esi
lea eax, [esp + 0x28]
mov byte [esp + 0x544], 2
push str.jp.co.canon.scangear.scanutility.mutexByCat_d
push eax
call fcn.00402d50
add esp, 0xc
push dword [esp + 0x24]
push 0x5e9af0
push dword [esp + 0x20]
call dword [sym.imp.SUCMLIB.dll_Ordinal_83]
mov eax, dword [esp + 0x18]
push 0
mov ecx, dword [eax]
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x56bfb7
mov edi, dword [esp + 0x18]
mov esi, dword [sym.imp.SUCMLIB.dll_Ordinal_84]
push edi
call esi
lea ecx, [esp + 0x18]
mov dword [edi], 0
mov dword [esp + 0x1c], 0
call fcn.00402b30
push ebx
lea eax, [esp + 0x1c]
mov byte [esp + 0x544], 3
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 + 0x28]
add esp, 0xc
push dword [esp + 0x18]
push 0x5e9af0
push eax
call ebx
mov ecx, dword [esp + 0x1c]
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
je 0x56bf50
push 0
push 0x589150
call dword [sym.imp.USER32.dll_EnumWindows]
lea eax, [esp + 0x1c]
push eax
call esi
mov dword [esp + 0x1c], 0
jmp 0x56c128
push str.jp.co.canon.scangear.scanutility.Exclusive
push 0x5e9af0
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], 0
push eax
call ebx
mov ecx, dword [esp + 0x14]
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
jne 0x56bf8f
mov edx, 0x98a00
xor ecx, ecx
call fcn.00547e70
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x10]
jmp 0x56bf9c
push 0
push 0x589150
call dword [sym.imp.USER32.dll_EnumWindows]
lea eax, [esp + 0x14]
push eax
call esi
lea eax, [esp + 0x1c]
push eax
call esi
mov dword [esp + 0x1c], 0
jmp 0x56c128
test esi, esi
jne 0x56c0a5
lea ecx, [esp + 0x18]
call fcn.00402b30
push 1
lea eax, [esp + 0x1c]
mov byte [esp + 0x544], 4
push str.jp.co.canon.scangear.scanutility.mutexByCat_d
push eax
call fcn.00402d50
add esp, 0xc
mov dword [esp + 0x14], esi
mov esi, dword [sym.imp.SUCMLIB.dll_Ordinal_83]
lea eax, [esp + 0x14]
push dword [esp + 0x18]
push 0x5e9af0
push eax
call esi
mov ecx, dword [esp + 0x14]
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
jne 0x56c018
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x10]
jmp 0x56c074
push str.jp.co.canon.scangear.scanutility.Exclusive
push 0x5e9af0
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0
push eax
call esi
mov ecx, dword [esp + 0x1c]
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
test eax, eax
jne 0x56c057
mov edx, 0x98a00
xor ecx, ecx
call fcn.00547e70
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
call dword [eax + 0x10]
jmp 0x56c064
push 0
push 0x589150
call dword [sym.imp.USER32.dll_EnumWindows]
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.SUCMLIB.dll_Ordinal_84]
mov byte [esp + 0x13], 0
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.SUCMLIB.dll_Ordinal_84]
lea ecx, [esp + 0x18]
mov dword [esp + 0x14], 0
mov byte [esp + 0x540], 2
call fcn.00402b60
cmp byte [esp + 0x13], 0
je 0x56c131
jmp 0x56c0ab
mov esi, dword [sym.imp.SUCMLIB.dll_Ordinal_83]
lea ecx, [esp + 0x18]
call fcn.00402b30
push ebx
lea eax, [esp + 0x1c]
mov byte [esp + 0x544], 5
push str.jp.co.canon.scangear.scanutility.mutexByCtrlID_d
push eax
call fcn.00402d50
mov ebx, dword [esp + 0x34]
add esp, 0xc
push dword [esp + 0x18]
push 0x5e9af0
push ebx
call esi
mov ecx, dword [ebx]
push 0
mov eax, dword [ecx]
call dword [eax + 0xc]
push 0x10002
push dword [edi]
call fcn.00567330
mov esi, eax
cmp esi, 0xd04
jg 0x56c169
cmp esi, 0xd03
jge 0x56c181
cmp esi, 0xce5
jl 0x56c11e
cmp esi, 0xce9
jle 0x56c181
cmp esi, 0xceb
je 0x56c181
push dword [edi]
push esi
push 0
call fcn.005604e0
lea ecx, [esp + 0x18]
call fcn.00402b60
lea ecx, [esp + 0x24]
call fcn.00402b60
lea ecx, [esp + 0x20]
call fcn.00402b60
mov ecx, dword [esp + 0x538]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x520]
xor ecx, esp
call fcn.00527e5c
mov esp, ebp
pop ebp
ret 4
cmp esi, 0xd08
jl 0x56c11e
cmp esi, 0xd0a
jle 0x56c181
cmp esi, 0x1faf
jne 0x56c11e
push 0
lea ecx, [esp + 0x30]
call fcn.00555e80
mov byte [esp + 0x540], 6
lea ecx, [esp + 0x2c]
mov dword [esp + 0x478], esi
call fcn.005559d0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x540], 5
call fcn.00555b20
jmp 0x56c128