Function at 0x588a60
Capabilities:
Capture screenshot
Get graphical window text
Resolve function by parsing pe exports

Disassembly:
mov eax, dword [0x69f74c]
sub esp, 0x6a4
push ebx
push ebp
push esi
push edi
xor edi, edi
cmp eax, edi
je 0x588a82
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x6a4
ret
mov ebx, dword [esp + 0x6b8]
push ebx
mov dword [0x69f74c], 1
mov dword [esp + 0x28], edi
mov dword [esp + 0x30], edi
call fcn.0058ee70
mov ebp, dword [sym.imp.USER32.dll_IsZoomed]
add esp, 4
test eax, eax
je 0x588ac2
push ebx
call ebp
test eax, eax
je 0x588ac2
mov ebx, dword [0x6a0f40]
mov dword [esp + 0x6b8], ebx
push ebx
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x58965d
cmp ebx, dword [0x6a0f40]
mov dword [esp + 0x44], edi
jne 0x588b20
mov eax, dword [0x6a0f44]
push eax
call dword [sym.imp.USER32.dll_GetTopWindow]
mov esi, eax
test esi, esi
je 0x588b05
push esi
call ebp
test eax, eax
je 0x588b05
push esi
call fcn.0058ea30
mov edi, eax
add esp, 4
mov dword [esp + 0x44], edi
mov eax, dword [0x61b5c4]
test eax, eax
jne 0x588b65
test edi, edi
je 0x58965d
mov eax, dword [edi + 0x18a4]
test eax, eax
jmp 0x588b5f
push ebx
call fcn.0058ea30
add esp, 4
cmp eax, edi
mov dword [esp + 0x44], eax
je 0x58965d
mov ecx, dword [eax + 0x1314]
cmp ecx, edi
jl 0x58965d
cmp ecx, 3
jle 0x588b51
cmp ecx, 9
jne 0x58965d
cmp dword [0x61b5c4], edi
jne 0x588b65
cmp dword [eax + 0x18a4], edi
je 0x58965d
lea ecx, [esp + 0x280]
push 0x432
push ecx
call fcn.004232e0
lea edx, [esp + 0x288]
push 0x432
push edx
call fcn.00423310
add esp, 0x10
push eax
lea eax, [esp + 0x284]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetWindowTextA]
lea ecx, [esp + 0x280]
push ecx
call fcn.005868a0
add esp, 4
cmp eax, 2
jne 0x58965d
mov esi, dword [sym.imp.USER32.dll_GetWindowLongA]
push 0xfffffffffffffff0
push ebx
call esi
mov edi, eax
test edi, 0xc00000
je 0x58965d
push 0xffffffffffffffec
push ebx
call esi
test al, al
js 0x58965d
mov eax, dword [0x676ea0]
test eax, eax
je 0x588bff
call dword [0x69f704]
test eax, eax
je 0x588bff
mov eax, dword [0x69f738]
test eax, eax
mov dword [esp + 0x24], eax
je 0x58965d
and edi, 0x40000
je 0x588c17
push ebx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
mov eax, 0x20
je 0x588c1c
mov eax, 7
mov esi, dword [sym.imp.USER32.dll_GetSystemMetrics]
push eax
call esi
test edi, edi
mov ebp, eax
je 0x588c3b
push ebx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
mov eax, 0x21
je 0x588c40
mov eax, 8
push eax
call esi
push 0x1e
mov dword [esp + 0x34], eax
call esi
push 0x31
mov edi, eax
call esi
push 5
mov dword [esp + 0x2c], eax
call esi
push 6
mov ebx, eax
call esi
push 4
mov dword [esp + 0x24], eax
call esi
mov esi, eax
mov eax, dword [esp + 0x6b8]
lea edx, [esp + 0x50]
push edx
push eax
mov dword [esp + 0x50], esi
call dword [sym.imp.USER32.dll_GetWindowRect]
mov edx, dword [esp + 0x6b8]
push 2
lea ecx, [esp + 0x54]
push ecx
push edx
push 0
call dword [sym.imp.USER32.dll_MapWindowPoints]
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x50]
neg eax
push eax
neg ecx
push ecx
lea edx, [esp + 0x58]
push edx
call dword [sym.imp.USER32.dll_OffsetRect]
mov eax, dword [esp + 0x28]
lea ecx, [ebx + eax]
xor eax, eax
lea edx, [ecx + ebp + 3]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x24]
test edx, edx
mov edx, dword [esp + 0x30]
setne al
lea ecx, [edi + edi*2]
mov edi, dword [esp + 0x50]
add eax, 2
sub eax, ecx
mov ecx, dword [esp + 0x20]
sub eax, edi
sub eax, ebx
mov ebx, dword [esp + 0x58]
sub eax, ebp
add eax, ebx
mov dword [esp + 0x18], eax
lea eax, [ecx + edx]
mov dword [esp + 0x14], eax
add ecx, ecx
sub eax, ecx
add eax, esi
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x6bc]
cmp eax, 0x86
jne 0x588d89
mov eax, dword [esp + 0x6cc]
cmp eax, 1
jne 0x588d49
mov edx, dword [esp + 0x6c4]
mov eax, dword [esp + 0x6c0]
mov ecx, dword [esp + 0x6b8]
push edx
push eax
push 0x86
push ecx
call dword [sym.imp.USER32.dll_DefMDIChildProcA]
mov dword [esp + 0x2c], 1
jmp 0x588ea0
cmp eax, 2
jne 0x588ea0
mov edx, dword [esp + 0x6c4]
mov eax, dword [esp + 0x6c0]
mov ecx, dword [0x6a0f44]
push edx
mov edx, dword [esp + 0x6bc]
push eax
push 0x86
push ecx
push edx
call dword [sym.imp.USER32.dll_DefFrameProcA]
mov dword [esp + 0x2c], 1
jmp 0x588ea0
cmp eax, 0x85
jne 0x588ea0
mov ecx, dword [esp + 0x6b8]
lea eax, [esp + 0x60]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowRect]
mov eax, dword [esp + 0x10]
mov edi, dword [esp + 0x60]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x34], eax
add eax, edi
add edx, edi
mov edi, dword [esp + 0x6c0]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x64]
add ecx, eax
add esi, eax
cmp edi, 1
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x40], esi
je 0x588dfb
lea ecx, [esp + 0x34]
push ecx
push edi
call dword [sym.imp.GDI32.dll_RectInRegion]
test eax, eax
je 0x58965d
mov ebx, dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
lea edx, [esp + 0x34]
push edx
call ebx
mov ebp, eax
lea eax, [esp + 0x34]
push eax
call ebx
cmp edi, 1
mov esi, eax
je 0x588e2b
push 4
push ebp
push edi
push esi
call dword [sym.imp.GDI32.dll_CombineRgn]
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
jmp 0x588e48
lea ecx, [esp + 0x60]
push ecx
call ebx
push 4
push ebp
mov edi, eax
push edi
push esi
call dword [sym.imp.GDI32.dll_CombineRgn]
push edi
mov edi, dword [sym.imp.GDI32.dll_DeleteObject]
call edi
mov eax, dword [esp + 0x6cc]
cmp eax, 1
jne 0x588e72
mov edx, dword [esp + 0x6c4]
mov eax, dword [esp + 0x6b8]
push edx
push esi
push 0x85
push eax
call dword [sym.imp.USER32.dll_DefMDIChildProcA]
jmp 0x588e9a
cmp eax, 2
jne 0x588e9a
mov ecx, dword [esp + 0x6c4]
mov edx, dword [0x6a0f44]
mov eax, dword [esp + 0x6b8]
push ecx
push esi
push 0x85
push edx
push eax
call dword [sym.imp.USER32.dll_DefFrameProcA]
push ebp
call edi
push esi
call edi
mov ecx, dword [esp + 0x6b8]
push ecx
call dword [sym.imp.USER32.dll_GetWindowDC]
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x28], ebx
je 0x58965d
push ebx
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov esi, eax
xor ebp, ebp
cmp esi, ebp
je 0x58964e
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
cmp edx, ecx
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], edi
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
jle 0x589647
add eax, edi
add ecx, edx
push eax
push ecx
push ebx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
cmp eax, ebp
mov dword [esp + 0x90], eax
je 0x589647
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
push ebp
push esi
mov dword [esp + 0x9c], eax
call dword [sym.imp.GDI32.dll_SetBkColor]
push ebp
push ebp
push 0x5f4c90
lea edx, [esp + 0x8c]
push edx
push 6
push ebp
push ebp
push esi
mov dword [esp + 0xa0], ebp
mov dword [esp + 0xa4], ebp
call dword [sym.imp.GDI32.dll_ExtTextOutA]
mov edi, dword [esp + 0x6c8]
cmp edi, 1
je 0x588fcb
cmp edi, ebp
je 0x588fcb
cmp dword [0x6a0f48], ebp
mov ebx, dword [esp + 0x6b8]
je 0x58904e
cmp ebx, dword [0x6a0f40]
jne 0x588f9e
mov edi, 1
jmp 0x588fd2
cmp ebx, dword [0x6a0f4c]
jne 0x588fad
mov edi, 1
jmp 0x588fd2
mov eax, dword [0x6a0f44]
push ebp
push ebp
push 0x229
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
xor ecx, ecx
cmp ebx, eax
sete cl
mov edi, ecx
jmp 0x588fd2
mov ebx, dword [esp + 0x6b8]
cmp dword [0x6a0f48], ebp
je 0x589050
test edi, edi
je 0x589050
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov ebp, eax
mov eax, dword [0x6a0f40]
cmp ebp, eax
jne 0x589030
cmp ebx, eax
je 0x589050
mov ebp, dword [sym.imp.USER32.dll_GetFocus]
call ebp
cmp eax, ebx
je 0x589050
call ebp
push eax
call dword [sym.imp.USER32.dll_GetParent]
cmp eax, ebx
je 0x589050
mov edx, dword [0x6a0f44]
push 0
push 0
push 0x229
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, ebx
je 0x589050
call dword [sym.imp.USER32.dll_GetForegroundWindow]
cmp eax, ebx
jmp 0x58904c
push ebx
call fcn.0058ea30
add esp, 4
test eax, eax
je 0x58904e
push ebx
call fcn.0058ee70
add esp, 4
test eax, eax
jne 0x58904e
cmp ebp, ebx
je 0x589050
xor edi, edi
mov eax, dword [esp + 0x24]
xor ebp, ebp
cmp eax, ebp
je 0x58913e
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x6c], ecx
lea ecx, [edx + eax*2]
add eax, ecx
add eax, dword [esp + 0x30]
push ebx
mov ebp, 1
mov dword [esp + 0x3c], 0
mov dword [esp + 0x44], eax
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x5890d2
mov ebp, 3
jmp 0x5890d7
sub dword [esp + 0x40], 3
mov edx, dword [esp + 0x6b8]
mov ebx, dword [sym.imp.USER32.dll_IsZoomed]
push edx
call ebx
test eax, eax
je 0x589107
mov eax, dword [0x6a0f40]
push eax
call ebx
test eax, eax
je 0x589107
mov eax, dword [esp + 0x38]
add eax, 4
mov ebp, 5
mov dword [esp + 0x38], eax
mov ebx, dword [esp + 0x24]
xor eax, eax
test edi, edi
sete al
lea ecx, [esp + 0x60]
push ecx
lea edx, [esp + 0x38]
push edx
inc eax
push eax
push ebp
push esi
push ebx
call dword [0x69f720]
neg edi
sbb edi, edi
and edi, 0xfffffff6
add edi, 0x13
push edi
push ebx
call dword [0x69f718]
jmp 0x5891d6
push ebp
lea ecx, [esp + 0x24]
push ecx
push ebp
push 0x1008
mov dword [esp + 0x30], ebp
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
cmp dword [esp + 0x20], ebp
je 0x589190
mov eax, dword [0x676e98]
cmp eax, ebp
je 0x589180
cmp dword [0x69f734], ebp
jne 0x589451
push str.GradientFill
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x69f734], eax
cmp dword [0x69f734], ebp
jne 0x589451
mov dword [esp + 0x20], ebp
mov ebp, dword [sym.imp.USER32.dll_GetSysColor]
mov eax, edi
neg eax
sbb eax, eax
add eax, 3
push eax
call ebp
push eax
push esi
call dword [sym.imp.GDI32.dll_SetBkColor]
push 0
push 0
push 0x5f4c90
lea ecx, [esp + 0x1c]
push ecx
push 6
push 0
push 0
push esi
call dword [sym.imp.GDI32.dll_ExtTextOutA]
neg edi
sbb edi, edi
and edi, 0xfffffff6
add edi, 0x13
push edi
call ebp
mov ebx, dword [esp + 0x24]
push eax
push esi
call dword [sym.imp.GDI32.dll_SetTextColor]
push 1
push esi
call dword [sym.imp.GDI32.dll_SetBkMode]
xor eax, eax
push eax
lea edx, [esp + 0xf8]
push edx
push 0x154
mov ecx, 0x55
lea edi, [esp + 0x100]
rep stosd dword es:[edi], eax
push 0x29
mov dword [esp + 0x104], 0x154
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
test ebx, ebx
je 0x589324
xor eax, eax
mov ecx, 0x17
lea edi, [esp + 0x98]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x98]
push eax
push 0x321
push ebx
call dword [0x69f71c]
test eax, eax
jne 0x589626
mov cl, byte [esp + 0xaf]
mov dl, byte [esp + 0xb1]
mov eax, dword [esp + 0xa0]
push 0
push 0
push 0x20
mov byte [esp + 0x12f], cl
lea ecx, [esp + 0x134]
push ecx
push 0xffffffffffffffff
mov byte [esp + 0x139], dl
lea edx, [esp + 0xc8]
push edx
push 0
push 0
mov dword [esp + 0x134], eax
call dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0xa4]
mov cl, byte [esp + 0xac]
mov dword [esp + 0x10c], eax
mov al, byte [esp + 0xb0]
mov byte [esp + 0x120], cl
mov cl, byte [esp + 0xb3]
mov dword [esp + 0x118], edx
mov dl, byte [esp + 0xb2]
mov byte [esp + 0x124], al
mov al, byte [esp + 0xae]
mov byte [esp + 0x127], cl
mov cl, byte [esp + 0xad]
mov byte [esp + 0x126], dl
mov edx, dword [esp + 0xa8]
mov byte [esp + 0x122], al
mov eax, dword [esp + 0x9c]
mov byte [esp + 0x121], cl
mov dword [esp + 0x11c], edx
mov dword [esp + 0x110], eax
lea ecx, [esp + 0x10c]
push ecx
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
test eax, eax
mov dword [esp + 0x30], eax
je 0x589626
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [esp + 0x11c]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10c]
cdq
xor eax, edx
push 1
sub eax, edx
movzx edx, byte [esp + 0x127]
push 1
push edx
push ecx
push eax
lea edx, [esp + 0x13c]
push edx
mov dword [esp + 0x124], eax
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x29c]
push ecx
push esi
call fcn.005887a0
movzx edx, byte [esp + 0x147]
mov eax, dword [esp + 0x140]
mov ecx, dword [esp + 0x130]
push 0
push 0
push 1
push 6
push edx
push eax
push ecx
lea edx, [esp + 0x168]
push edx
lea eax, [esp + 0x2c4]
push eax
call fcn.00488340
mov ecx, eax
mov eax, dword [esp + 0x64]
sub eax, ecx
sub eax, dword [esp + 0x5c]
mov ecx, eax
add esp, 0x48
and ecx, reloc.WSOCK32.dll_accept
jns 0x5893e2
dec ecx
or ecx, 0xfffffffe
inc ecx
je 0x5893e5
inc eax
cdq
sub eax, edx
lea edx, [esp + 0x248]
mov edi, eax
push edx
sar edi, 1
push esi
dec edi
xor ebp, ebp
call dword [sym.imp.GDI32.dll_GetTextMetricsA]
xor eax, eax
mov al, byte [esp + 0x27b]
and eax, 0xf0
test al, 0x50
je 0x589415
mov ebp, 1
test ebx, ebx
je 0x589525
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
add eax, 2
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x6b8]
inc ebx
push eax
mov dword [esp + 0x18], ebx
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x589525
mov eax, dword [esp + 0x14]
inc eax
jmp 0x589529
cmp dword [esp + 0x20], ebp
je 0x589190
mov ebp, dword [sym.imp.USER32.dll_GetSysColor]
mov edx, edi
neg edx
sbb edx, edx
add edx, 3
push edx
call ebp
mov ebx, eax
mov eax, edi
neg eax
sbb eax, eax
add eax, 0x1c
push eax
call ebp
xor edx, edx
mov dh, bl
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x60], ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x64], ecx
mov dword [esp + 0x4c], 1
mov word [esp + 0x68], dx
xor edx, edx
mov dh, bh
shr ebx, 0x10
mov word [esp + 0x6a], dx
xor edx, edx
mov dh, bl
xor ebx, ebx
mov word [esp + 0x6e], bx
mov word [esp + 0x7e], bx
mov dword [esp + 0x48], ebx
mov word [esp + 0x6c], dx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x70], edx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x74], edx
xor edx, edx
mov dh, al
mov word [esp + 0x78], dx
xor edx, edx
mov dh, ah
shr eax, 0x10
mov word [esp + 0x7a], dx
xor edx, edx
mov dh, al
mov eax, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x1c]
inc eax
mov word [esp + 0x80], dx
mov edx, dword [esp + 0x5c]
push edx
push ecx
push eax
push esi
call dword [sym.imp.GDI32.dll_ExcludeClipRect]
push ebx
push 1
lea ecx, [esp + 0x50]
push ecx
push 2
lea edx, [esp + 0x70]
push edx
push esi
call dword [0x69f734]
jmp 0x5891c5
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x44]
push 2
push edx
movzx edx, byte [esp + 0x12b]
push 1
push 4
mov ecx, dword [esp + 0x20]
push 1
push 1
push 0
push edx
mov edx, dword [esp + 0x13c]
push edx
mov edx, dword [esp + 0x130]
mov ebx, dword [esp + 0x3c]
push edx
lea edx, [esp + 0x150]
push edx
push 0
push 0
sub esp, 0x10
mov edx, esp
add ecx, ebp
add eax, edi
mov dword [edx], ecx
push eax
mov dword [edx + 4], eax
mov dword [esp + 0x5c], eax
push ecx
lea eax, [esp + 0x2cc]
mov dword [edx + 8], ebx
mov ebx, dword [esp + 0x68]
push eax
push esi
mov dword [esp + 0x64], ecx
mov dword [edx + 0xc], ebx
call fcn.004872b0
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x68]
mov eax, dword [esp + 0x78]
sub edx, ebp
sub ecx, edi
add esp, 0x54
test eax, eax
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], ecx
je 0x5895dc
mov ebx, edx
mov edi, ecx
mov ecx, dword [esp + 0x6b8]
sub ebx, 2
dec edi
push ecx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], edi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x5895dc
dec dword [esp + 0x14]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x1c]
push 0xcc0020
push eax
push ecx
push esi
sub edx, eax
push edx
mov edx, dword [esp + 0x2c]
sub edx, ecx
push edx
push eax
mov eax, dword [esp + 0x44]
push ecx
push eax
call dword [sym.imp.GDI32.dll_BitBlt]
mov ecx, dword [esp + 0x48]
push ecx
push esi
mov dword [esp + 0x34], 1
call dword [sym.imp.GDI32.dll_SelectObject]
mov edx, dword [esp + 0x30]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [esp + 0x94]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov ecx, dword [esp + 0x90]
push ecx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ebx, dword [esp + 0x28]
push esi
call dword [sym.imp.GDI32.dll_DeleteDC]
mov edx, dword [esp + 0x6b8]
push ebx
push edx
call dword [sym.imp.USER32.dll_ReleaseDC]
mov eax, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
mov dword [0x69f74c], 0
pop ebx
add esp, 0x6a4
ret