Function at 0x516d09
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffbc4
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
push dword [ebx]
call fcn.0051dd0a
mov edi, eax
test edi, edi
je 0x51746c
cmp dword [ebp + 0xc], 2
jne 0x516d49
push 0x76
push dword [ebx]
call sub.USER32.dll_GetDlgItem
mov esi, eax
push 0x56ca4f
push 0
push 0xc
push esi
call sub.USER32.dll_SendMessageA
cmp dword [ebp + 0x1c], 0
je 0x516df0
push 0x76
push dword [ebx]
call sub.USER32.dll_GetDlgItem
mov esi, eax
push 0x7d000
push 0x7d000
push 1
push esi
call fcn.00478c58
push 0x3e7
lea eax, [ebp - 0x41c]
push eax
push esi
call sub.USER32.dll_GetWindowTextA
push dword [ebp + 0x1c]
lea edx, [ebp - 0x41c]
push edx
call fcn.0054c5e4
add esp, 8
test eax, eax
jne 0x516df0
mov byte [ebp - 0x41c], 0
push esi
call sub.USER32.dll_GetWindowTextLengthA
test eax, eax
jle 0x516dbd
push 0x56ca53
lea ecx, [ebp - 0x41c]
push ecx
call fcn.0054c1f4
add esp, 8
push dword [ebp + 0x1c]
lea eax, [ebp - 0x41c]
push eax
call fcn.0054c1f4
add esp, 8
lea edx, [ebp - 0x41c]
push edx
push 0
push 0xc2
push esi
call sub.USER32.dll_SendMessageA
push esi
call sub.USER32.dll_UpdateWindow
push dword [ebx]
call fcn.00516b10
push dword [ebx]
call sub.USER32.dll_GetDC
mov esi, eax
test esi, esi
je 0x51746c
push dword [edi + 0x924]
push esi
call sub.GDI32.dll_SelectObject
mov dword [ebp - 0x10], eax
push dword [0x55f8ec]
push esi
call sub.GDI32.dll_SetTextColor
mov dword [ebp - 4], eax
push dword [0x55f8d8]
push esi
call sub.GDI32.dll_SetBkColor
mov dword [ebp - 8], eax
cmp dword [ebp + 0xc], 0
je 0x516fd4
push 0x67
push dword [ebx]
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_GetWindowTextLengthA
push eax
lea edi, [ebx + 0x234]
push edi
call fcn.0054c2d0
pop ecx
pop edx
cmp edx, eax
je 0x516e68
push edi
push 0
push 0xc
push 0x67
push dword [ebx]
call sub.USER32.dll_SendDlgItemMessageA
mov eax, dword [ebx + 0x360]
test eax, eax
jbe 0x516ea6
push 1
push 0
push 1
push 1
push 0
push 0
lea ecx, [ebp - 0x41c]
push ecx
mov dword [ebp - 0x434], eax
xor eax, eax
mov dword [ebp - 0x430], eax
fild qword [ebp - 0x434]
add esp, 0xfffffff4
fstp xword [esp]
call fcn.004e5ac5
jmp 0x516eb6
push esi
mov esi, 0x56ca57
lea edi, [ebp - 0x41c]
mov eax, edi
movsd dword es:[edi], dword [esi]
pop esi
push 0x69
push dword [ebx]
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_GetWindowTextLengthA
mov edi, eax
lea eax, [ebp - 0x41c]
push eax
call fcn.0054c2d0
pop ecx
cmp edi, eax
je 0x516eec
lea edx, [ebp - 0x41c]
push edx
push 0
push 0xc
push 0x69
push dword [ebx]
call sub.USER32.dll_SendDlgItemMessageA
lea ecx, [ebx + 4]
push esi
mov edi, ecx
lea esi, [ebp - 0x41c]
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop esi
cmp dword [ebx + 0x374], 0
je 0x516f6e
lea eax, [ebx + 0x68]
push eax
lea edx, [ebx + 4]
push edx
call fcn.0054c494
add esp, 8
test eax, eax
je 0x516f6e
push 0x56ca5c
lea ecx, [ebp - 0x41c]
push ecx
call fcn.0054c1f4
add esp, 8
lea eax, [ebx + 0x68]
push eax
lea edx, [ebp - 0x41c]
push edx
call fcn.0054c1f4
add esp, 8
push 0x56ca60
lea ecx, [ebp - 0x41c]
push ecx
call fcn.0054c1f4
add esp, 8
push 0x6b
push dword [ebx]
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_GetWindowTextLengthA
mov edi, eax
lea eax, [ebp - 0x41c]
push eax
call fcn.0054c2d0
pop ecx
cmp edi, eax
je 0x516fa4
lea edx, [ebp - 0x41c]
push edx
push 0
push 0xc
push 0x6b
push dword [ebx]
call sub.USER32.dll_SendDlgItemMessageA
push 0x6d
push dword [ebx]
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_GetWindowTextLengthA
push eax
lea edi, [ebx + 0x130]
push edi
call fcn.0054c2d0
pop ecx
pop edx
cmp edx, eax
je 0x516fd4
push edi
push 0
push 0xc
push 0x6d
push dword [ebx]
call sub.USER32.dll_SendDlgItemMessageA
cmp dword [ebp + 0x18], 0
jne 0x516fe4
cmp dword [ebp + 0xc], 0
je 0x5172f2
xor eax, eax
mov dword [ebp - 0x14], eax
xor ecx, ecx
mov dword [ebp - 0xc], ecx
xor edi, edi
mov eax, dword [ebx + 0x37c]
test eax, eax
jle 0x517002
mov edi, dword [ebx + 0x380]
sub edi, eax
mov byte [ebp - 0x41c], 0
test edi, edi
jbe 0x5171b8
cmp dword [ebx + 0x354], 0
jbe 0x5171b8
cmp dword [ebx + 0x33c], 2
jne 0x51715d
call fcn.0042e52c
sub eax, dword [ebx + 0x388]
sbb edx, dword [ebx + 0x38c]
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x30], 0
jne 0x517056
cmp dword [ebp - 0x34], 0x7d0
ja 0x51705c
jmp 0x51715d
jle 0x51715d
fild qword [ebp - 0x34]
fld xword [0x517475]
fmulp st(1)
fstp xword [ebp - 0x20]
wait
fld xword [ebp - 0x20]
fcomp dword [0x517481]
fnstsw ax
sahf
jae 0x51708b
xor edx, edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x1c], 0x80000000
mov word [ebp - 0x18], 0x3fff
mov ecx, dword [ebx + 0x354]
mov dword [ebp - 0x434], ecx
xor eax, eax
mov dword [ebp - 0x430], eax
fild qword [ebp - 0x434]
mov edx, dword [ebx + 0x390]
mov dword [ebp - 0x43c], edx
xor ecx, ecx
mov dword [ebp - 0x438], ecx
fild qword [ebp - 0x43c]
fsubp st(1)
fstp xword [ebp - 0x2c]
wait
fld xword [ebp - 0x2c]
fcomp dword [0x517485]
fnstsw ax
sahf
jae 0x5170df
xor edx, edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x28], edx
mov word [ebp - 0x24], dx
fld xword [ebp - 0x2c]
fld xword [ebp - 0x20]
fdivp st(1)
call fcn.00554a2c
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
ja 0x517106
cmp dword [ebx + 0x394], 2
jae 0x517106
inc dword [ebx + 0x394]
jmp 0x517139
xor edx, edx
mov dword [ebx + 0x394], edx
mov eax, dword [ebx + 0x368]
cmp eax, dword [ebp - 0xc]
ja 0x517128
mov edx, dword [ebp - 0xc]
sub edx, eax
shr edx, 1
add dword [ebx + 0x368], edx
jmp 0x517139
mov ecx, dword [ebx + 0x368]
sub ecx, dword [ebp - 0xc]
shr ecx, 1
sub dword [ebx + 0x368], ecx
call fcn.0042e52c
mov dword [ebx + 0x388], eax
mov dword [ebx + 0x38c], edx
mov eax, dword [ebx + 0x354]
mov dword [ebx + 0x390], eax
mov dword [ebp - 0x14], 1
mov edx, dword [ebx + 0x368]
mov dword [ebp - 0xc], edx
push 1
push 0
push 1
push 1
push 0
push 0
lea ecx, [ebp - 0x41c]
push ecx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x434], eax
xor edx, edx
mov dword [ebp - 0x430], edx
fild qword [ebp - 0x434]
add esp, 0xfffffff4
fstp xword [esp]
call fcn.004e5ac5
cmp byte [ebp - 0x41c], 0
je 0x5171b8
push 0x56ca63
lea ecx, [ebp - 0x41c]
push ecx
call fcn.0054c1f4
add esp, 8
lea eax, [ebp - 0x42c]
push eax
push 0x74
push dword [ebx]
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_GetWindowRect
push 2
lea edx, [ebp - 0x42c]
push edx
push dword [ebx]
push 0
call sub.USER32.dll_MapWindowPoints
push 0
lea ecx, [ebp - 0x41c]
push ecx
call fcn.0054c2d0
pop ecx
push eax
lea eax, [ebp - 0x41c]
push eax
lea edx, [ebp - 0x42c]
push edx
push 6
push dword [ebp - 0x428]
push dword [ebp - 0x42c]
push esi
call sub.GDI32.dll_ExtTextOutA
mov byte [ebp - 0x41c], 0
test edi, edi
jbe 0x517298
cmp dword [ebp - 0xc], 0
jbe 0x517298
cmp dword [ebx + 0x344], 0
je 0x517230
xor edi, edi
jmp 0x517262
cmp dword [ebp - 0x14], 0
je 0x51725c
mov edi, dword [ebx + 0x360]
sub edi, dword [ebx + 0x34c]
mov eax, edi
xor edx, edx
div dword [ebp - 0xc]
mov edi, eax
test edi, edi
ja 0x517254
mov edi, 1
mov dword [ebx + 0x398], edi
jmp 0x517262
mov edi, dword [ebx + 0x398]
push 3
push edi
push 0x56ca69
call fcn.00511048
push esi
push edi
mov edi, eax
lea esi, [ebp - 0x41c]
xor eax, eax
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
xchg edi, esi
mov eax, edi
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
pop esi
lea eax, [ebp - 0x42c]
push eax
push 0x72
push dword [ebx]
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_GetWindowRect
push 2
lea edx, [ebp - 0x42c]
push edx
push dword [ebx]
push 0
call sub.USER32.dll_MapWindowPoints
push 0
lea ecx, [ebp - 0x41c]
push ecx
call fcn.0054c2d0
pop ecx
push eax
lea eax, [ebp - 0x41c]
push eax
lea edx, [ebp - 0x42c]
push edx
push 6
push dword [ebp - 0x428]
push dword [ebp - 0x42c]
push esi
call sub.GDI32.dll_ExtTextOutA
cmp dword [ebp + 0x10], 0
jne 0x517302
cmp dword [ebp + 0xc], 0
je 0x5173eb
mov byte [ebp - 0x41c], 0
cmp dword [ebx + 0x354], 0
jbe 0x517391
push 1
push 0
push 1
push 1
push 0
push 0
lea ecx, [ebp - 0x41c]
push ecx
mov eax, dword [ebx + 0x34c]
mov dword [ebp - 0x434], eax
xor edx, edx
mov dword [ebp - 0x430], edx
fild qword [ebp - 0x434]
add esp, 0xfffffff4
fstp xword [esp]
call fcn.004e5ac5
mov eax, dword [ebx + 0x37c]
test eax, eax
jle 0x517391
mov edi, dword [ebx + 0x380]
sub edi, eax
test edi, edi
jbe 0x517391
push 0x56ca6d
lea eax, [ebp - 0x41c]
push eax
call fcn.0054c1f4
add esp, 8
push 3
push edi
push 0x56ca73
call fcn.00511048
push eax
lea edx, [ebp - 0x41c]
push edx
call fcn.0054c1f4
add esp, 8
lea ecx, [ebp - 0x42c]
push ecx
push 0x70
push dword [ebx]
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_GetWindowRect
push 2
lea eax, [ebp - 0x42c]
push eax
push dword [ebx]
push 0
call sub.USER32.dll_MapWindowPoints
push 0
lea edx, [ebp - 0x41c]
push edx
call fcn.0054c2d0
pop ecx
push eax
lea ecx, [ebp - 0x41c]
push ecx
lea eax, [ebp - 0x42c]
push eax
push 6
push dword [ebp - 0x428]
push dword [ebp - 0x42c]
push esi
call sub.GDI32.dll_ExtTextOutA
cmp dword [ebp + 0x14], 0
jne 0x5173f7
cmp dword [ebp + 0xc], 0
je 0x517449
lea edx, [ebp - 0x42c]
push edx
push 0x6e
push dword [ebx]
call sub.USER32.dll_GetDlgItem
push eax
call sub.USER32.dll_GetWindowRect
push 2
lea ecx, [ebp - 0x42c]
push ecx
push dword [ebx]
push 0
call sub.USER32.dll_MapWindowPoints
push dword [ebx + 0x358]
push dword [ebx + 0x35c]
push dword [ebp - 0x420]
push dword [ebp - 0x424]
push dword [ebp - 0x428]
push dword [ebp - 0x42c]
push esi
call fcn.00516b79
push dword [ebp - 4]
push esi
call sub.GDI32.dll_SetTextColor
push dword [ebp - 8]
push esi
call sub.GDI32.dll_SetBkColor
push dword [ebp - 0x10]
push esi
call sub.GDI32.dll_SelectObject
push esi
push dword [ebx]
call sub.USER32.dll_ReleaseDC
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18