Function at 0x417800
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xb4
push ebx
push esi
push edi
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x7c], 0
lea eax, [ebp - 0x70]
push eax
push 0
push 0xb2
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
push ebx
call dword [sym.imp.USER32.dll_GetDC]
mov esi, eax
push esi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 0x4c], eax
push esi
call dword [sym.imp.GDI32.dll_CreateCompatibleDC]
mov dword [ebp - 0x50], eax
lea eax, [ebp - 0x2c]
push eax
push 0x18
mov eax, dword [ebp + 0x74]
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
lea eax, [ebp - 0x48]
push eax
push 0x18
mov eax, dword [ebp + 0x78]
push eax
call dword [sym.imp.GDI32.dll_GetObjectA]
mov eax, dword [ebp + 0x74]
push eax
mov eax, dword [ebp - 0x4c]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 0x78]
push eax
mov eax, dword [ebp - 0x50]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x84], eax
cmp dword [ebp + 0x40], 0
je 0x417936
cmp dword [ebp + 0x48], 0
je 0x4178e2
cmp dword [ebp + 0x64], 0xffffffff
jne 0x4178b6
mov eax, dword [ebp + 0x60]
push eax
push 1
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
mov dword [ebp - 0x88], eax
jmp 0x4178d1
mov eax, dword [ebp + 0x64]
push eax
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push 1
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp - 0x88]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x7c], eax
cmp dword [ebp + 0x4c], 0
je 0x417936
cmp dword [ebp + 0x6c], 0xffffffff
jne 0x417904
mov eax, dword [ebp + 0x68]
push eax
push 1
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
mov dword [ebp - 0x9c], eax
jmp 0x41791f
mov eax, dword [ebp + 0x6c]
push eax
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push 1
push 0
call dword [sym.imp.GDI32.dll_CreatePen]
mov dword [ebp - 0x9c], eax
cmp dword [ebp - 0x7c], 0
jne 0x417936
mov eax, dword [ebp - 0x9c]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x7c], eax
add dword [ebp - 0x6c], 2
lea eax, [ebp - 0x70]
push eax
call dword [sym.imp.GDI32.dll_CreateRectRgnIndirect]
mov dword [ebp - 0x78], eax
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectClipRgn]
cmp dword [ebp + 0xc], 0
jne 0x417a2f
lea eax, [ebp - 0x60]
push eax
push 0
push 0xb2
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
lea eax, [ebp - 0x60]
push eax
push 0
push 0xd7
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x14], eax
push eax
lea eax, [ebp - 8]
push eax
push 0xd6
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x60], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x5c], eax
lea eax, [ebp - 0x60]
push eax
push 0
push 0xd7
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x74]
push eax
push 0
push 0x436
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov dword [ebp - 0x90], eax
push 0
push 0
push 0xba
push ebx
call dword [sym.imp.USER32.dll_SendMessageA]
mov dword [ebp - 0x8c], eax
sub eax, dword [ebp - 0x90]
cmp eax, 2
jne 0x4179f4
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0x10]
sub eax, dword [ebp - 0x14]
mov dword [ebp - 0x94], eax
inc eax
add eax, eax
push eax
push 0
mov eax, dword [0x44019c]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x98], eax
lea eax, [ebp - 0x14]
push eax
push 0
push 0x44b
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x417a56
mov dword [ebp - 0x14], 0
mov edx, str._t_Well___thought_Alice_to_herself__After_such_a_fall_as_this__I_shall_think_nothing_of_tumbling_down_stairs___rHow_brave_theyll_all_think_me_at_home___rWhy__I_wouldnt_say_anything_about_it__even_if_I_fell_off_the_top_of_the_house____which_was_very_likely_true.___r_tDown__down__down._Would_the_fall_never_come_to_an_end___r_I_wonder_how_many_miles_Ive_fallen_by_this_time___she_said_aloud.__r_I_must_be_getting_somewhere_near_the_centre_of_the_earth._Let_me_see:_that_would_be_four_thousand_miles_down__I_think____r_for__you_see__Alice_had_learnt_several_things_of_this_sort_in_her_lessons_in_the_school_room__and_though_this_was_not_a_very_good_opportunity_for_showing_off_her_knowledge__as_there_was_no_one_to_listen_to_her__still_it_was_good_practice_to_say_it_over______yes_thats_about_the_right_distance____but_then_I_wonder_what_Latitude_or_Longitude_Ive_got_to____Alice_had_not_the_slightest_idea_what_Latitude_was__or_Longitude_either__but_she_thought_they_were_nice_grand_words_to_say._
mov eax, 0xfffffffe
add eax, 2
cmp word [edx + eax], 0
jne 0x417a40
shr eax, 1
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], str._t_Well___thought_Alice_to_herself__After_such_a_fall_as_this__I_shall_think_nothing_of_tumbling_down_stairs___rHow_brave_theyll_all_think_me_at_home___rWhy__I_wouldnt_say_anything_about_it__even_if_I_fell_off_the_top_of_the_house____which_was_very_likely_true.___r_tDown__down__down._Would_the_fall_never_come_to_an_end___r_I_wonder_how_many_miles_Ive_fallen_by_this_time___she_said_aloud.__r_I_must_be_getting_somewhere_near_the_centre_of_the_earth._Let_me_see:_that_would_be_four_thousand_miles_down__I_think____r_for__you_see__Alice_had_learnt_several_things_of_this_sort_in_her_lessons_in_the_school_room__and_though_this_was_not_a_very_good_opportunity_for_showing_off_her_knowledge__as_there_was_no_one_to_listen_to_her__still_it_was_good_practice_to_say_it_over______yes_thats_about_the_right_distance____but_then_I_wonder_what_Latitude_or_Longitude_Ive_got_to____Alice_had_not_the_slightest_idea_what_Latitude_was__or_Longitude_either__but_she_thought_they_were_nice_grand_words_to_say._
mov edi, dword [ebp - 0x14]
jmp 0x417e03
mov eax, dword [ebp - 0xc]
cmp word [eax], 0xd
jne 0x417b17
cmp dword [ebp + 0x40], 0
je 0x417b17
cmp dword [ebp + 0x44], 0
je 0x417b17
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x30], eax
push edi
lea eax, [ebp - 8]
push eax
push 0xd6
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp + 0x70]
sub eax, dword [ebp - 0x24]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp - 4]
add eax, edx
mov dword [ebp - 4], eax
inc dword [ebp - 8]
mov eax, dword [ebp - 0x30]
add eax, 0xfffffffe
mov dword [ebp - 0x30], eax
cmp word [eax], 0xa
jne 0x417aee
lea eax, [edi - 1]
push eax
lea eax, [ebp - 8]
push eax
push 0xd6
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x44]
inc eax
mov edx, dword [ebp - 8]
add eax, edx
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x70]
sub eax, dword [ebp - 0x24]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp - 4]
add eax, edx
mov dword [ebp - 4], eax
push 0xcc0020
push 0
push 0
mov eax, dword [ebp - 0x4c]
push eax
mov eax, dword [ebp - 0x24]
push eax
mov eax, dword [ebp - 0x28]
push eax
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 8]
push eax
push esi
call dword [sym.imp.GDI32.dll_BitBlt]
jmp 0x417df9
mov eax, dword [ebp - 0xc]
cmp word [eax], 0xa
jne 0x417bd0
cmp dword [ebp + 0x40], 0
je 0x417bd0
cmp dword [ebp + 0x44], 0
je 0x417bd0
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x30], eax
push edi
lea eax, [ebp - 8]
push eax
push 0xd6
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp + 0x70]
sub eax, dword [ebp - 0x40]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp - 4]
add eax, edx
mov dword [ebp - 4], eax
inc dword [ebp - 8]
mov eax, dword [ebp - 0x30]
add eax, 0xfffffffe
mov dword [ebp - 0x30], eax
cmp word [eax], 0xd
jne 0x417ba7
lea eax, [edi - 1]
push eax
lea eax, [ebp - 8]
push eax
push 0xd6
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp - 0x28]
inc eax
mov edx, dword [ebp - 8]
add eax, edx
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0x70]
sub eax, dword [ebp - 0x40]
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp - 4]
add eax, edx
mov dword [ebp - 4], eax
push 0xcc0020
push 0
push 0
mov eax, dword [ebp - 0x50]
push eax
mov eax, dword [ebp - 0x40]
push eax
mov eax, dword [ebp - 0x44]
push eax
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 8]
push eax
push esi
call dword [sym.imp.GDI32.dll_BitBlt]
jmp 0x417df9
mov eax, dword [ebp - 0xc]
cmp word [eax], 9
jne 0x417ccd
cmp dword [ebp + 0x40], 0
je 0x417ccd
cmp dword [ebp + 0x48], 0
je 0x417ccd
push edi
lea eax, [ebp - 8]
push eax
push 0xd6
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp + 0x70]
dec eax
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp - 4]
add eax, edx
mov dword [ebp - 4], eax
cmp edi, dword [ebp - 0x10]
jge 0x417df9
mov eax, dword [ebp - 0x88]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
lea eax, [edi + 1]
push eax
lea eax, [ebp - 0xa4]
push eax
push 0xd6
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 8]
inc eax
push eax
push esi
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0xa4]
dec eax
push eax
push esi
call dword [sym.imp.GDI32.dll_LineTo]
push 0
mov eax, dword [ebp - 4]
sub eax, 2
push eax
mov eax, dword [ebp - 0xa4]
sub eax, 4
push eax
push esi
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [ebp - 4]
add eax, 3
push eax
mov eax, dword [ebp - 0xa4]
sub eax, 4
push eax
push esi
call dword [sym.imp.GDI32.dll_LineTo]
push 0
mov eax, dword [ebp - 4]
dec eax
push eax
mov eax, dword [ebp - 0xa4]
sub eax, 3
push eax
push esi
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [ebp - 4]
add eax, 2
push eax
mov eax, dword [ebp - 0xa4]
sub eax, 3
push eax
push esi
call dword [sym.imp.GDI32.dll_LineTo]
jmp 0x417df9
mov eax, dword [ebp - 0xc]
cmp word [eax], 0x20
jne 0x417df9
cmp dword [ebp + 0x40], 0
je 0x417df9
cmp dword [ebp + 0x4c], 0
je 0x417df9
push edi
lea eax, [ebp - 8]
push eax
push 0xd6
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [ebp + 0x70]
dec eax
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp - 4]
add eax, edx
mov dword [ebp - 4], eax
cmp edi, dword [ebp - 0x10]
jge 0x417df9
mov eax, dword [ebp - 0x9c]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
lea eax, [edi + 1]
push eax
lea eax, [ebp - 0xa4]
push eax
push 0xd6
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
mov eax, dword [ebp - 4]
dec eax
push eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0xa8], eax
mov edx, dword [ebp - 0xa4]
neg eax
add eax, edx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp - 0xa8]
lea eax, [edx + eax - 1]
push eax
push esi
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0xac], eax
mov edx, dword [ebp - 0xa4]
neg eax
add eax, edx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp - 0xac]
lea eax, [edx + eax + 1]
push eax
push esi
call dword [sym.imp.GDI32.dll_LineTo]
push 0
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0xb0], eax
mov edx, dword [ebp - 0xa4]
neg eax
add eax, edx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp - 0xb0]
add eax, edx
push eax
push esi
call dword [sym.imp.GDI32.dll_MoveToEx]
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 8]
mov dword [ebp - 0xb4], eax
mov edx, dword [ebp - 0xa4]
neg eax
add eax, edx
cdq
sub eax, edx
sar eax, 1
mov edx, dword [ebp - 0xb4]
lea eax, [edx + eax - 2]
push eax
push esi
call dword [sym.imp.GDI32.dll_LineTo]
mov eax, dword [ebp - 0xc]
add eax, 2
mov dword [ebp - 0xc], eax
inc edi
cmp edi, dword [ebp - 0x10]
jle 0x417a5e
cmp dword [ebp + 0xc], 0
jne 0x417e27
mov eax, dword [ebp - 0x98]
push eax
push 0
mov eax, dword [0x44019c]
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
cmp dword [ebp + 0x40], 0
je 0x417e5e
mov eax, dword [ebp - 0x7c]
push eax
push esi
call dword [sym.imp.GDI32.dll_SelectObject]
cmp dword [ebp + 0x48], 0
je 0x417e4b
mov eax, dword [ebp - 0x88]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
cmp dword [ebp + 0x4c], 0
je 0x417e5e
mov eax, dword [ebp - 0x9c]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov eax, dword [ebp - 0x80]
push eax
mov eax, dword [ebp - 0x4c]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [ebp - 0x84]
push eax
mov eax, dword [ebp - 0x50]
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
mov eax, dword [ebp - 0x4c]
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
mov eax, dword [ebp - 0x50]
push eax
call dword [sym.imp.GDI32.dll_DeleteDC]
push 0
push esi
call dword [sym.imp.GDI32.dll_SelectClipRgn]
mov eax, dword [ebp - 0x78]
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
push ebx
call dword [sym.imp.USER32.dll_ReleaseDC]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x74