Function at 0x404158
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x4f8
cmp dword [ebp + 0x10], 0x401
jb 0x404171
mov dword [ebp + 0x10], 0x400
mov eax, dword [ebp + 0x10]
push eax
mov ecx, dword [ebp + 0xc]
push ecx
lea edx, [ebp - 0x484]
push edx
call fcn.00406ea0
add esp, 0xc
mov eax, dword [ebp + 0x10]
mov byte [ebp + eax - 0x484], 0
mov ecx, dword [ebp + 0x10]
mov dl, byte [ebp + ecx - 0x484]
mov byte [ebp - 0x80], dl
mov eax, dword [ebp + 0x10]
mov cl, byte [ebp + eax - 0x484]
mov byte [ebp - 0x4a4], cl
push 0xa
lea edx, [ebp - 0x484]
push edx
call fcn.00407640
add esp, 8
mov dword [ebp - 0x4f0], eax
cmp dword [ebp - 0x4f0], 0
je 0x4042be
mov eax, dword [ebp - 0x4f0]
add eax, 1
mov dword [ebp - 0x4f0], eax
push 4
push str.for
mov ecx, dword [ebp - 0x4f0]
push ecx
call fcn.00407520
add esp, 0xc
test eax, eax
jne 0x40420c
mov edx, dword [ebp - 0x4f0]
add edx, 4
mov dword [ebp - 0x4f0], edx
mov dword [ebp - 0x4ac], 0
jmp 0x404227
mov eax, dword [ebp - 0x4ac]
add eax, 1
mov dword [ebp - 0x4ac], eax
mov ecx, dword [ebp - 0x4f0]
add ecx, dword [ebp - 0x4ac]
movsx edx, byte [ecx]
cmp edx, 0xd
je 0x404261
cmp dword [ebp - 0x4ac], 0x3f
jae 0x404261
mov eax, dword [ebp - 0x4f0]
add eax, dword [ebp - 0x4ac]
mov ecx, dword [ebp - 0x4ac]
mov dl, byte [eax]
mov byte [ebp + ecx - 0x4ec], dl
jmp 0x404218
mov eax, dword [ebp - 0x4ac]
mov ecx, dword [ebp + 0x10]
mov dl, byte [ebp + ecx - 0x484]
mov byte [ebp + eax - 0x4ec], dl
mov eax, dword [0x41371c]
movsx ecx, byte [eax + 8]
cmp ecx, 0x44
jne 0x4042bc
push str._bit
lea edx, [ebp - 0x4ec]
push edx
call fcn.00406b90
add esp, 8
mov dword [ebp - 0x4f0], eax
cmp dword [ebp - 0x4f0], 0
je 0x4042bc
mov eax, dword [ebp - 0x4f0]
mov byte [eax], 0x2d
mov ecx, dword [ebp - 0x4f0]
mov byte [ecx + 1], 0x42
jmp 0x4042ce
mov edx, dword [ebp + 0x10]
mov al, byte [ebp + edx - 0x484]
mov byte [ebp - 0x4ec], al
mov dword [ebp - 0x4ac], 0
jmp 0x4042e9
mov ecx, dword [ebp - 0x4ac]
add ecx, 1
mov dword [ebp - 0x4ac], ecx
cmp dword [ebp - 0x4ac], 0x401
jae 0x4043f2
mov edx, dword [ebp - 0x4ac]
movsx eax, byte [ebp + edx - 0x484]
mov dword [ebp - 0x4f8], eax
cmp dword [ebp - 0x4f8], 0x5b
ja case.0x404328.1
mov edx, dword [ebp - 0x4f8]
xor ecx, ecx
mov cl, byte [edx + 0x4045a9]
jmp dword [ecx*4 + 0x4045a1]
cmp dword [ebp - 0x4ac], 0
je 0x4043e3
mov eax, dword [ebp - 0x4ac]
movsx ecx, byte [ebp + eax - 0x485]
cmp ecx, 0x20
jne 0x40435e
mov edx, dword [ebp - 0x4ac]
sub edx, 1
mov dword [ebp - 0x4ac], edx
mov eax, dword [ebp - 0x4ac]
mov byte [ebp + eax - 0x484], 0
push str._Version
lea ecx, [ebp - 0x484]
push ecx
call fcn.00406b90
add esp, 8
mov dword [ebp - 0x4f0], eax
cmp dword [ebp - 0x4f0], 0
je 0x4043cb
mov edx, dword [ebp - 0x4f0]
mov byte [edx], 0
push str._Version
call fcn.00406c90
add esp, 4
mov ecx, dword [ebp - 0x4f0]
add ecx, eax
mov dword [ebp - 0x4f0], ecx
push 0x20
lea edx, [ebp - 0x4a4]
push edx
mov eax, dword [ebp - 0x4f0]
push eax
call fcn.00401aa0
add esp, 0xc
push 0x80
lea ecx, [ebp - 0x80]
push ecx
lea edx, [ebp - 0x484]
push edx
call fcn.00401aa0
add esp, 0xc
mov dword [ebp - 0x4ac], 0x401
jmp 0x4042da
push 0x401
lea eax, [ebp - 0x484]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_GetWindowTextA]
push 0x401
lea edx, [ebp - 0x484]
push edx
push 0x410c10
call fcn.00401aa0
add esp, 0xc
push 0x401
lea eax, [ebp - 0x484]
push eax
lea ecx, [ebp - 0x80]
push ecx
call fcn.00401aa0
add esp, 0xc
push 0x401
lea edx, [ebp - 0x484]
push edx
push 0x410c10
call fcn.00401aa0
add esp, 0xc
push 0x401
lea eax, [ebp - 0x484]
push eax
lea ecx, [ebp - 0x4a4]
push ecx
call fcn.00401aa0
add esp, 0xc
lea edx, [ebp - 0x484]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov byte [ebp - 0x484], 0
push 0x401
lea ecx, [ebp - 0x484]
push ecx
lea edx, [ebp - 0x80]
push edx
call fcn.00401aa0
add esp, 0xc
push 0x401
lea eax, [ebp - 0x484]
push eax
push 0x410c10
call fcn.00401aa0
add esp, 0xc
push 0x401
lea ecx, [ebp - 0x484]
push ecx
lea edx, [ebp - 0x4a4]
push edx
call fcn.00401aa0
add esp, 0xc
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 0x4f4], eax
push 0x48
push 0x5a
mov ecx, dword [ebp - 0x4f4]
push ecx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push eax
push 0xffffffffffffffee
call dword [sym.imp.KERNEL32.dll_MulDiv]
mov dword [0x410c20], eax
mov edx, dword [ebp - 0x4f4]
push edx
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_ReleaseDC]
push 0x410c20
call dword [sym.imp.GDI32.dll_CreateFontIndirectA]
mov dword [ebp - 0x4a8], eax
cmp dword [ebp - 0x4a8], 0
je 0x40454c
push 0
mov ecx, dword [ebp - 0x4a8]
push ecx
push 0x30
push 0x3e9
mov edx, dword [ebp + 8]
push edx
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
lea eax, [ebp - 0x484]
push eax
push 0x3e9
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
lea edx, [ebp - 0x4ec]
push edx
push 0x3ea
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.USER32.dll_SetDlgItemTextA]
mov ecx, dword [0x41371c]
movsx edx, byte [ecx + 0x18]
test edx, edx
jne 0x40459d
push 0x20
mov eax, dword [0x41371c]
add eax, 0x18
push eax
lea ecx, [ebp - 0x80]
push ecx
call fcn.00401aa0
add esp, 0xc
mov esp, ebp
pop ebp
ret