Function at 0x56bc40
Capabilities:
Enumerate gui resources

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5b0bad
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 0x56c183
cmp dword [ecx + 0xfc], 0
lea eax, [ecx + 0xfc]
mov dword [esp + 0x28], eax
jne 0x56c183
call fcn.0055eef0
call fcn.00566ef0
push dword [edi]
call fcn.00566e10
test al, al
je 0x56c183
mov ecx, dword [edi]
call fcn.005621b0
mov ecx, dword [edi]
call fcn.00562f20
test eax, eax
je 0x56c183
push 0
push dword [edi]
call fcn.00567190
push dword [edi]
call fcn.0055dd40
test al, al
je 0x56c183
push 1
push dword [edi]
call fcn.00567190
mov ecx, dword [edi]
call fcn.00561ea0
push 0x1001f
push dword [edi]
call fcn.00567370
xor dl, dl
mov ecx, eax
call fcn.00569a50
mov edx, dword [edi]
xor bl, bl
push ecx
mov ecx, esp
push 0xa0009
call fcn.0058f590
add esp, 4
mov cl, bl
call fcn.00567780
add esp, 4
push 0x10002
push dword [edi]
call fcn.00567370
mov edx, dword [edi]
lea ecx, [esp + 0x20]
push 0x20001
mov ebx, eax
call fcn.0058f590
add esp, 4
mov dword [esp + 0x540], 0
cmp ebx, 0xd03
jg 0x56bdc4
je 0x56bd86
mov eax, ebx
sub eax, 0xce4
je 0x56bd86
sub eax, 6
je 0x56bd86
sub eax, 0x12
jne 0x56bddc
xor esi, esi
lea eax, [esp + 0x20]
push 0x5ead80
push eax
call fcn.00403c30
add esp, 8
test al, al
je 0x56bda3
mov esi, 2
cmp ebx, 0xcfc
jne 0x56bdfa
push str.MIG_Scan
lea ecx, [esp + 0x24]
call fcn.00403940
test eax, eax
jne 0x56bde3
mov ebx, 0x16c8c
jmp 0x56bdfa
cmp ebx, 0xd04
je 0x56bd86
cmp ebx, 0xe30
je 0x56bd86
cmp ebx, 0x1fb0
je 0x56bd86
mov esi, 1
jmp 0x56bd88
push str.MIG_WorkShop
lea ecx, [esp + 0x24]
call fcn.00403940
test eax, eax
jne 0x56bdfa
mov ebx, 0x1457c
push 0x50021
push dword [edi]
call fcn.00567370
cmp eax, 0xb
jl 0x56beba
mov byte [esp + 0x13], 1
cmp esi, 1
jne 0x56bea9
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 0x56be91
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 0x56be91
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 0x56beba
mov eax, dword [esp + 0x20]
cmp dword [eax - 0xc], 0
jne 0x56beba
mov ecx, dword [edi]
call fcn.00567400
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 0x56bff7
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 0x56bf90
push 0
push 0x588e80
call dword [sym.imp.USER32.dll_EnumWindows]
lea eax, [esp + 0x1c]
push eax
call esi
mov dword [esp + 0x1c], 0
jmp 0x56c168
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 0x56bfcf
mov edx, 0x98a00
xor ecx, ecx
call fcn.00547e40
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x10]
jmp 0x56bfdc
push 0
push 0x588e80
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 0x56c168
test esi, esi
jne 0x56c0e5
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 0x56c058
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx]
call dword [eax + 0x10]
jmp 0x56c0b4
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 0x56c097
mov edx, 0x98a00
xor ecx, ecx
call fcn.00547e40
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx]
call dword [eax + 0x10]
jmp 0x56c0a4
push 0
push 0x588e80
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 0x56c171
jmp 0x56c0eb
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.00567370
mov esi, eax
cmp esi, 0xd04
jg 0x56c1a9
cmp esi, 0xd03
jge 0x56c1c1
cmp esi, 0xce5
jl 0x56c15e
cmp esi, 0xce9
jle 0x56c1c1
cmp esi, 0xceb
je 0x56c1c1
push dword [edi]
push esi
push 0
call fcn.00560520
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.00527e2c
mov esp, ebp
pop ebp
ret 4
cmp esi, 0xd08
jl 0x56c15e
cmp esi, 0xd0a
jle 0x56c1c1
cmp esi, 0x1faf
jne 0x56c15e
push 0
lea ecx, [esp + 0x30]
call fcn.00555e50
mov byte [esp + 0x540], 6
lea ecx, [esp + 0x2c]
mov dword [esp + 0x478], esi
call fcn.005559a0
lea ecx, [esp + 0x2c]
mov byte [esp + 0x540], 5
call fcn.00555af0
jmp 0x56c168