Function at 0x458218
Capabilities:
Get graphical window text

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffe0
mov byte [esp], 0
mov eax, dword [0x48d930]
mov eax, dword [eax]
mov edx, dword [0x48d524]
mov eax, dword [edx + eax*4 - 4]
add eax, 0xc
call fcn.00428760
mov ebp, dword [0x49bdf0]
add ebp, 2
sub ebp, 3
jl 0x4585c4
inc ebp
mov esi, 3
push esi
mov eax, dword [0x48d1dc]
mov eax, dword [eax]
push eax
call sub.user32.dll_GetDlgItem
mov edi, eax
push 0
push 0
push 0xb8
push edi
call sub.user32.dll_SendMessageA
test eax, eax
setne byte [esp + 0x1c]
mov eax, esi
sub eax, 2
dec eax
mov ebx, eax
shl ebx, 6
add ebx, dword [0x49bde8]
mov al, byte [ebx + 0x33]
cmp al, 0xe
jb 0x4582cb
cmp al, 0x19
ja 0x4582cb
mov eax, dword [0x49bdf0]
add eax, esi
push eax
mov eax, dword [0x48d1dc]
mov eax, dword [eax]
push eax
call sub.user32.dll_GetDlgItem
mov dword [esp + 0x18], eax
push 0
push 0
push 0xb8
mov eax, dword [esp + 0x24]
push eax
call sub.user32.dll_SendMessageA
test eax, eax
je 0x4582cb
mov byte [esp + 0x1c], 1
cmp byte [esp + 0x1c], 0
je 0x4585bc
push edi
call sub.user32.dll_GetWindowTextLengthA
mov edx, dword [0x48d498]
mov dword [edx], eax
mov eax, dword [0x48d498]
cmp dword [eax], 0x100
jg 0x4582fc
mov eax, dword [0x48da44]
mov dword [esp + 8], eax
jmp 0x458318
mov eax, dword [0x48d498]
mov eax, dword [eax]
inc eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
push eax
push 0x40
call sub.kernel32.dll_GlobalAlloc
mov dword [esp + 8], eax
mov eax, dword [0x48d498]
mov eax, dword [eax]
inc eax
push eax
mov eax, dword [esp + 0xc]
push eax
push edi
call sub.user32.dll_GetWindowTextA
mov al, byte [ebx + 0x33]
cmp al, 0x1c
jb 0x458337
cmp al, 0x1e
jbe 0x458398
xor edx, edx
mov dl, al
mov ecx, dword [0x48da4c]
movzx edx, byte [ecx + edx]
mov dword [esp + 4], edx
cmp al, 0x1f
je 0x458359
lea eax, [ebx + 0x37]
mov dword [esp + 0x10], eax
jmp 0x45840e
mov eax, dword [0x48d318]
mov edx, dword [ebx]
mov dword [eax], edx
mov edx, dword [ebx + 4]
mov dword [eax + 4], edx
push 4
mov eax, dword [0x48d930]
mov eax, dword [eax]
mov edx, dword [0x48d524]
mov eax, dword [edx + eax*4 - 4]
add eax, 0xc
mov ecx, dword [ebx + 0x37]
add ecx, 0x20
mov edx, dword [0x48d318]
call fcn.004254a8
mov eax, dword [ebx + 0x37]
mov dword [esp + 0x10], eax
jmp 0x45840e
mov eax, dword [ebx + 0x3b]
mov dword [esp + 4], eax
mov cl, byte [ebx + 0x33]
cmp cl, 0x1d
je 0x4583b9
cmp cl, 0x1e
je 0x4583b9
mov eax, dword [0x48d498]
mov eax, dword [eax]
cmp eax, dword [esp + 4]
jg 0x4583e9
cmp byte [ebx + 0x33], 0x1d
jne 0x4583ce
mov eax, dword [0x48d498]
mov eax, dword [eax]
add eax, eax
cmp eax, dword [esp + 4]
jg 0x4583e9
cmp byte [ebx + 0x33], 0x1e
jne 0x458407
mov eax, dword [0x48d498]
mov eax, dword [eax]
mov ecx, 3
cdq
idiv ecx
cmp eax, dword [esp + 4]
jle 0x458407
mov ax, 0xd1
call fcn.0040bc04
mov edx, 3
call fcn.00411d74
push edi
call sub.user32.dll_SetFocus
jmp 0x4585c4
mov eax, dword [ebx + 0x37]
mov dword [esp + 0x10], eax
mov al, byte [ebx + 0x33]
cmp al, 0xe
jb 0x45842e
cmp al, 0x19
ja 0x45842e
push 0xff
mov eax, dword [0x48d830]
push eax
mov eax, dword [esp + 0x20]
push eax
call sub.user32.dll_GetWindowTextA
cmp byte [ebx + 0x33], 0x1e
jne 0x45843e
mov eax, dword [esp + 4]
mov dword [esp + 0xc], eax
jmp 0x458447
mov eax, dword [0x48d830]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
push eax
mov al, byte [ebx + 0x35]
push eax
mov al, byte [ebx + 0x36]
push eax
lea eax, [esp + 0x29]
push eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov al, byte [ebx + 0x33]
call fcn.00440a6c
test al, al
je 0x45853b
cmp byte [0x49be2e], 0
jne 0x4584ab
push 0
push 0
push 0x408
mov eax, dword [0x48d930]
mov eax, dword [eax]
mov edx, dword [0x48d524]
mov eax, dword [edx + eax*4 - 4]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
test eax, eax
je 0x4585c4
mov byte [0x49be2e], 1
mov eax, dword [0x48d318]
mov edx, dword [ebx]
mov dword [eax], edx
mov edx, dword [ebx + 4]
mov dword [eax + 4], edx
mov byte [esp], 1
mov byte [0x49bdd8], 1
mov eax, dword [esp + 4]
push eax
mov eax, dword [0x48d930]
mov eax, dword [eax]
mov edx, dword [0x48d524]
mov eax, dword [edx + eax*4 - 4]
add eax, 0xc
cmp byte [ebx + 0x33], 0x1f
sete dl
and edx, 0x7f
mov ecx, edx
shl ecx, 5
add ecx, dword [esp + 0x14]
mov edx, dword [0x48d318]
call fcn.00426720
cmp eax, dword [esp + 4]
jl 0x4585c4
push dword [ebx + 4]
push dword [ebx]
fild dword [esp + 0xc]
fild qword [ebx]
faddp st(1)
fsub dword [0x458610]
add esp, 0xfffffff8
fistp qword [esp]
wait
mov eax, dword [0x48d930]
mov eax, dword [eax]
mov edx, dword [0x48d524]
mov eax, dword [edx + eax*4 - 4]
add eax, 0xc
call fcn.00423bdc
jmp 0x45855d
cmp byte [esp + 0x1d], 0
je 0x458555
mov ax, 0xd1
call fcn.0040bc04
mov edx, 3
call fcn.00411d74
push edi
call sub.user32.dll_SetFocus
jmp 0x4585c4
push 0
push 0
push 0xb9
push edi
call sub.user32.dll_SendMessageA
mov al, byte [ebx + 0x33]
cmp al, 0xe
jb 0x45858a
cmp al, 0x19
ja 0x45858a
push 0
push 0
push 0xb9
mov eax, dword [esp + 0x24]
push eax
call sub.user32.dll_SendMessageA
mov eax, esi
neg eax
push eax
mov eax, dword [0x48d1dc]
mov eax, dword [eax]
push eax
call sub.user32.dll_GetDlgItem
mov ebx, eax
push 0xff
mov eax, dword [0x48da44]
push eax
push ebx
call sub.user32.dll_GetWindowTextA
mov eax, dword [0x48da44]
inc eax
push eax
push ebx
call sub.user32.dll_SetWindowTextA
inc esi
dec ebp
jne 0x458254
mov eax, dword [0x48d930]
mov eax, dword [eax]
mov edx, dword [0x48d524]
mov eax, dword [edx + eax*4 - 4]
add eax, 0xc
call fcn.00428820
cmp byte [esp], 0
je 0x458605
push 0
push 0
push 0x400
mov eax, dword [0x48d930]
mov eax, dword [eax]
mov edx, dword [0x48d524]
mov eax, dword [edx + eax*4 - 4]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
mov al, byte [esp]
add esp, 0x20
pop ebp
pop edi
pop esi
pop ebx
ret