Function at 0x20004030
Capabilities:
Get graphical window text
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x20031c00
mov eax, dword fs:[0]
push eax
sub esp, 0x64
push ebx
push ebp
push esi
push edi
mov eax, dword [0x20043b94]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov ebx, dword [esp + 0x88]
mov esi, ecx
push 0x2005cec8
call fcn.20004c00
xor edi, edi
cmp dword [0x2005cb74], edi
je 0x20004761
push ebx
call fcn.200137aa
push eax
lea ecx, [esp + 0x68]
call fcn.20011264
lea eax, [esp + 0x54]
push eax
push ebx
mov dword [esp + 0x88], edi
call dword [sym.imp.USER32.dll_GetWindowRect]
push 0xfffffffffffffff0
push ebx
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, eax
shr ecx, 0x12
and ecx, 1
mov dword [esi + 0x18], ecx
mov ecx, eax
shr ecx, 0x13
and ecx, 1
mov dword [esi + 0x28], ecx
je 0x200040ca
test eax, 0x20000
je 0x200040ca
mov edx, 1
jmp 0x200040cc
xor edx, edx
cmp ecx, edi
mov dword [esi + 0x20], edx
je 0x200040e1
test eax, 0x10000
je 0x200040e1
mov eax, 1
jmp 0x200040e3
xor eax, eax
xor ebx, ebx
cmp dword [esi + 8], edi
mov dword [esi + 0x24], eax
sete bl
cmp dword [0x20058b84], edi
je 0x2000410d
mov edx, dword [0x20058b60]
imul edx, ebx
mov dword [0x20058b78], edx
mov dword [0x20058b7c], edi
jmp 0x20004137
mov eax, dword [0x20058b80]
cmp eax, edi
mov dword [0x20058b78], edi
jle 0x2000412a
mov ecx, dword [0x20058b64]
cmp eax, ecx
jl 0x2000412f
mov eax, ecx
jmp 0x2000412f
mov eax, dword [0x20058b64]
imul eax, ebx
mov dword [0x20058b7c], eax
cmp dword [0x20058bb8], edi
je 0x20004154
mov eax, dword [0x20058b94]
imul eax, ebx
mov dword [0x20058bac], eax
mov dword [0x20058bb0], edi
jmp 0x2000417e
mov eax, dword [0x20058bb4]
cmp eax, edi
mov dword [0x20058bac], edi
jle 0x20004171
mov ecx, dword [0x20058b98]
cmp eax, ecx
jl 0x20004176
mov eax, ecx
jmp 0x20004176
mov eax, dword [0x20058b98]
imul eax, ebx
mov dword [0x20058bb0], eax
cmp dword [0x20058bec], edi
je 0x2000419d
mov ecx, dword [0x20058bc8]
imul ecx, ebx
mov dword [0x20058be0], ecx
mov dword [0x20058be4], edi
jmp 0x200041c7
mov eax, dword [0x20058be8]
cmp eax, edi
mov dword [0x20058be0], edi
jle 0x200041ba
mov ecx, dword [0x20058bcc]
cmp eax, ecx
jl 0x200041bf
mov eax, ecx
jmp 0x200041bf
mov eax, dword [0x20058bcc]
imul eax, ebx
mov dword [0x20058be4], eax
cmp dword [0x20058c20], edi
je 0x200041e6
mov edx, dword [0x20058bfc]
imul edx, ebx
mov dword [0x20058c14], edx
mov dword [0x20058c18], edi
jmp 0x20004210
mov eax, dword [0x20058c1c]
cmp eax, edi
mov dword [0x20058c14], edi
jle 0x20004203
mov ecx, dword [0x20058c00]
cmp eax, ecx
jl 0x20004208
mov eax, ecx
jmp 0x20004208
mov eax, dword [0x20058c00]
imul eax, ebx
mov dword [0x20058c18], eax
cmp dword [0x20058c54], edi
mov ebp, dword [0x20058c50]
mov edx, dword [0x20058c34]
je 0x20004239
mov eax, dword [0x20058c30]
imul eax, ebx
mov dword [0x20058c48], eax
mov dword [0x20058c4c], edi
jmp 0x20004253
cmp ebp, edi
mov dword [0x20058c48], edi
jle 0x20004249
cmp ebp, edx
mov eax, ebp
jl 0x2000424b
mov eax, edx
imul eax, ebx
mov dword [0x20058c4c], eax
cmp dword [0x20058c88], edi
je 0x20004272
mov ecx, dword [0x20058c64]
imul ecx, ebx
mov dword [0x20058c7c], ecx
mov dword [0x20058c80], edi
jmp 0x2000429c
mov eax, dword [0x20058c84]
cmp eax, edi
mov dword [0x20058c7c], edi
jle 0x2000428f
mov ecx, dword [0x20058c68]
cmp eax, ecx
jl 0x20004294
mov eax, ecx
jmp 0x20004294
mov eax, dword [0x20058c68]
imul eax, ebx
mov dword [0x20058c80], eax
cmp dword [0x20058cbc], edi
je 0x200042b9
mov eax, dword [0x20058c98]
imul eax, ebx
mov dword [0x20058cb0], eax
mov dword [0x20058cb4], edi
jmp 0x200042e3
mov eax, dword [0x20058cb8]
cmp eax, edi
mov dword [0x20058cb0], edi
jle 0x200042d6
mov ecx, dword [0x20058c9c]
cmp eax, ecx
jl 0x200042db
mov eax, ecx
jmp 0x200042db
mov eax, dword [0x20058c9c]
imul eax, ebx
mov dword [0x20058cb4], eax
cmp dword [0x20058cf0], edi
je 0x20004302
mov ecx, dword [0x20058ccc]
imul ecx, ebx
mov dword [0x20058ce4], ecx
mov dword [0x20058ce8], edi
jmp 0x2000432c
mov eax, dword [0x20058cec]
cmp eax, edi
mov dword [0x20058ce4], edi
jle 0x2000431f
mov ecx, dword [0x20058cd0]
cmp eax, ecx
jl 0x20004324
mov eax, ecx
jmp 0x20004324
mov eax, dword [0x20058cd0]
imul eax, ebx
mov dword [0x20058ce8], eax
cmp ebp, edi
jle 0x20004338
cmp ebp, edx
mov dword [esp + 0x1c], ebp
jl 0x2000433c
mov dword [esp + 0x1c], edx
mov eax, dword [0x20058be8]
cmp eax, edi
mov edx, dword [0x20058bcc]
jle 0x20004351
cmp eax, edx
jge 0x20004351
mov edx, eax
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x58]
mov ebx, dword [0x2005cf08]
mov ecx, eax
sub eax, dword [0x2005cf14]
sub ecx, edx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x54]
mov dword [esp + 0x34], ecx
mov ebp, eax
sub ebp, dword [0x2005cf10]
mov dword [esi + 0x48], eax
mov eax, dword [esi + 0x2c]
mov dword [esi + 0x44], eax
mov dword [esi + 0x40], edi
mov edx, dword [0x2005cf0c]
add eax, edx
lea ecx, [esp + 0x44]
mov dword [esp + 0x24], ebx
mov dword [esi + 0x4c], eax
call fcn.20010e01
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], vtable.CBitmap.0
mov byte [esp + 0x80], 2
mov eax, dword [esp + 0x68]
push eax
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
push eax
lea ecx, [esp + 0x48]
call fcn.200111e7
mov ecx, dword [0x2005cf0c]
mov edx, dword [esp + 0x68]
mov edi, ebp
push ecx
sub edi, ebx
push edi
push edx
mov dword [esp + 0x34], edi
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
push eax
lea ecx, [esp + 0x40]
call fcn.20011375
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x48]
push eax
push ecx
call fcn.200113fa
push 4
lea ecx, [esp + 0x48]
mov dword [esp + 0x34], eax
call fcn.20010ced
mov edx, dword [0x2005cf0c]
push edx
push 0
push 0
lea ebx, [esp + 0x50]
mov ecx, 0x20058b54
call fcn.20009950
mov eax, dword [esi + 0x8c]
test eax, eax
je 0x200044a7
mov ecx, dword [esp + 0x88]
push 0
push 2
push 0x7f
push ecx
call eax
mov edi, eax
test edi, edi
je 0x20004473
mov eax, dword [0x2005cf0c]
push 3
push 0
add eax, 0xfffffff0
push 0
cdq
push 0x10
sub eax, edx
push 0x10
sar eax, 1
push edi
add eax, 1
push eax
mov eax, dword [esp + 0x64]
push 0
push eax
call dword [sym.imp.USER32.dll_DrawIconEx]
mov ecx, dword [esp + 0x88]
push ecx
call dword [sym.imp.USER32.dll_GetWindowTextLengthW]
test eax, eax
mov dword [esp + 0x18], eax
je 0x200045ca
call fcn.2000e120
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x200044cf
push 0x80004005
call fcn.20001720
mov eax, dword [esi + 0x88]
test eax, eax
je 0x200044cb
mov edx, dword [esp + 0x88]
push 0
push 2
push 0x7f
push edx
push eax
call dword [sym.imp.USER32.dll_CallWindowProcW]
jmp 0x20004444
xor edi, edi
jmp 0x20004473
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebx, [eax + 0x10]
mov dword [esp + 0x20], ebx
mov edx, dword [esp + 0x18]
mov byte [esp + 0x80], 3
mov eax, dword [ebx - 8]
add edx, 1
mov ecx, 1
sub ecx, dword [ebx - 4]
sub eax, edx
or eax, ecx
jge 0x20004514
mov eax, dword [esp + 0x18]
add eax, 1
push eax
lea ecx, [esp + 0x24]
call fcn.200017a0
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x88]
add eax, 1
push eax
push ebx
push ecx
call dword [sym.imp.USER32.dll_GetWindowTextW]
mov edx, dword [esp + 0x18]
push edx
lea ecx, [esp + 0x24]
call fcn.20004b30
mov eax, dword [esi + 8]
mov ecx, dword [esp + 0x48]
neg eax
sbb eax, eax
and eax, 0x333333
add eax, 0xaaaaaa
push eax
push ecx
call dword [sym.imp.GDI32.dll_SetTextColor]
mov edx, dword [esp + 0x48]
push 1
push edx
call dword [sym.imp.GDI32.dll_SetBkMode]
lea eax, [esi + 0x80]
push eax
lea ecx, [esp + 0x48]
call fcn.2001144d
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x48]
push 0
push ecx
push ebx
push 0
neg edi
push 0
sbb edi, edi
push 2
and edi, 0x15
push edi
push edx
mov dword [esp + 0x4c], eax
call dword [sym.imp.GDI32.dll_ExtTextOutW]
mov eax, dword [esp + 0x2c]
push eax
lea ecx, [esp + 0x48]
call fcn.2001144d
add ebx, 0xfffffff0
mov byte [esp + 0x80], 2
lea ecx, [ebx + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x200045ca
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push ebx
call edx
mov eax, dword [0x2005cf08]
mov edi, dword [esp + 0x88]
push 0
neg eax
push eax
lea ecx, [esp + 0x4c]
push ecx
push edi
call fcn.20004780
mov edx, dword [esp + 0x48]
mov ecx, dword [0x2005cf0c]
mov eax, dword [esi + 0x2c]
push 0xcc0020
push 0
push 0
push edx
mov edx, dword [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x7c]
push edx
push eax
mov eax, dword [esp + 0x40]
push eax
push ecx
call dword [sym.imp.GDI32.dll_BitBlt]
mov eax, dword [esp + 0x30]
test eax, eax
je 0x2000461f
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x48]
push eax
push edx
call fcn.200113fa
cmp dword [esp + 0x8c], 0
jne 0x20004718
push 4
lea ecx, [esp + 0x68]
call fcn.20010ced
push edi
call dword [sym.imp.USER32.dll_IsZoomed]
test eax, eax
lea edi, [esp + 0x64]
mov ecx, 0x20058c24
je 0x20004685
mov eax, dword [0x2005cf0c]
mov dword [0x20058c50], eax
mov dword [0x20058cec], eax
mov eax, dword [esi + 0x2c]
push eax
push 0
call fcn.20009830
mov ecx, dword [esi + 0x2c]
push ecx
push ebp
mov ecx, 0x20058cc0
call fcn.20009830
jmp 0x20004718
xor ebx, ebx
push ebx
push ebx
mov dword [0x20058c50], ebx
mov dword [0x20058cec], ebx
call fcn.20009830
mov esi, dword [esp + 0x34]
push esi
push ebx
lea edi, [esp + 0x6c]
mov ecx, 0x20058bbc
call fcn.20009830
push ebx
push ebp
mov ecx, 0x20058cc0
call fcn.20009830
push esi
push ebp
mov ecx, 0x20058c58
call fcn.20009830
mov eax, dword [esp + 0x1c]
mov edi, dword [0x2005cf08]
sub esi, eax
push esi
push eax
push ebx
lea ebx, [esp + 0x70]
mov ecx, 0x20058bf0
call fcn.20009950
mov edx, dword [esp + 0x1c]
mov edi, dword [0x2005cf10]
push esi
push edx
push ebp
mov ecx, 0x20058c8c
call fcn.20009950
mov eax, dword [0x2005cf14]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
push eax
push ecx
push edx
mov ecx, 0x20058b88
call fcn.20009950
push 0x2005ced0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [esp + 0x80], 1
lea ecx, [esp + 0x3c]
mov dword [esp + 0x3c], vtable.CGdiObject.0
call fcn.200113c8
lea ecx, [esp + 0x44]
mov byte [esp + 0x80], 0
call fcn.2001124b
lea ecx, [esp + 0x64]
mov dword [esp + 0x80], 0xffffffff
call fcn.200112b8
xor eax, eax
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret 8