Function at 0x43dac0
Capabilities:
Get graphical window text

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffe4
mov byte [esp], 0
mov eax, dword [0x4bec7c]
mov eax, dword [eax]
mov edx, dword [0x4be754]
mov eax, dword [edx + eax*4 - 4]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x1a0]
call dword [edx + 0x10]
mov eax, dword [0x4c1298]
add eax, 2
sub eax, 3
jl 0x43de6d
inc eax
mov dword [esp + 0x18], eax
mov esi, 3
push esi
mov eax, dword [0x4be348]
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 + 0x14]
mov eax, esi
sub eax, 2
dec eax
mov ebx, eax
shl ebx, 6
add ebx, dword [0x4c1290]
mov al, byte [ebx + 0x33]
cmp al, 0x10
jb 0x43db7a
cmp al, 0x1b
ja 0x43db7a
mov eax, dword [0x4c1298]
add eax, esi
push eax
mov eax, dword [0x4be348]
mov eax, dword [eax]
push eax
call sub.user32.dll_GetDlgItem
mov dword [esp + 0x10], eax
push 0
push 0
push 0xb8
mov eax, dword [esp + 0x1c]
push eax
call sub.user32.dll_SendMessageA
test eax, eax
je 0x43db7a
mov byte [esp + 0x14], 1
cmp byte [esp + 0x14], 0
je 0x43de62
push edi
call sub.user32.dll_GetWindowTextLengthA
mov edx, dword [0x4be6b0]
mov dword [edx], eax
mov eax, dword [0x4be6b0]
cmp dword [eax], 0x100
jg 0x43dbab
mov eax, dword [0x4bedb0]
mov dword [esp + 8], eax
jmp 0x43dbc1
mov ebp, dword [0x4be6b0]
mov ebp, dword [ebp]
inc ebp
push ebp
push 0x40
call sub.kernel32.dll_GlobalAlloc
mov dword [esp + 8], eax
mov eax, dword [0x4be6b0]
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, 0x1e
jb 0x43dbe0
cmp al, 0x22
jbe 0x43dc3d
xor edx, edx
mov dl, al
mov ecx, dword [0x4bedbc]
movzx edx, byte [ecx + edx]
mov dword [esp + 4], edx
cmp al, 0x23
je 0x43dbfe
lea ebp, [ebx + 0x37]
jmp 0x43dcba
mov eax, dword [0x4be4c4]
mov edx, dword [ebx]
mov dword [eax], edx
mov edx, dword [ebx + 4]
mov dword [eax + 4], edx
push 4
mov eax, dword [0x4bec7c]
mov eax, dword [eax]
mov edx, dword [0x4be754]
mov eax, dword [edx + eax*4 - 4]
mov eax, dword [eax + 0xc]
mov ecx, dword [ebx + 0x37]
add ecx, 0x20
mov edx, dword [0x4be4c4]
mov ebp, dword [eax + 0x1a0]
call dword [ebp + 0x18]
mov ebp, dword [ebx + 0x37]
jmp 0x43dcba
mov eax, dword [ebx + 0x3b]
mov dword [esp + 4], eax
mov cl, byte [ebx + 0x33]
cmp cl, 0x1f
je 0x43dc63
cmp cl, 0x21
je 0x43dc63
cmp cl, 0x22
je 0x43dc63
mov eax, dword [0x4be6b0]
mov eax, dword [eax]
cmp eax, dword [esp + 4]
jg 0x43dc99
cmp byte [ebx + 0x33], 0x1f
je 0x43dc6f
cmp byte [ebx + 0x33], 0x21
jne 0x43dc7e
mov eax, dword [0x4be6b0]
mov eax, dword [eax]
add eax, eax
cmp eax, dword [esp + 4]
jg 0x43dc99
cmp byte [ebx + 0x33], 0x22
jne 0x43dcb7
mov eax, dword [0x4be6b0]
mov eax, dword [eax]
mov ecx, 3
cdq
idiv ecx
cmp eax, dword [esp + 4]
jle 0x43dcb7
mov ax, 0xd1
call fcn.004aa600
mov edx, 3
call fcn.004b12a8
push edi
call sub.user32.dll_SetFocus
jmp 0x43de6d
mov ebp, dword [ebx + 0x37]
mov al, byte [ebx + 0x33]
cmp al, 0x10
jb 0x43dcda
cmp al, 0x1b
ja 0x43dcda
push 0xff
mov eax, dword [0x4beb38]
push eax
mov eax, dword [esp + 0x18]
push eax
call sub.user32.dll_GetWindowTextA
cmp byte [ebx + 0x33], 0x22
jne 0x43dcea
mov eax, dword [esp + 4]
mov dword [esp + 0xc], eax
jmp 0x43dcf3
mov eax, dword [0x4beb38]
mov dword [esp + 0xc], eax
push ebp
mov al, byte [ebx + 0x35]
push eax
mov al, byte [ebx + 0x36]
push eax
lea eax, [esp + 0x21]
push eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov al, byte [ebx + 0x33]
call fcn.00423944
test al, al
je 0x43dde1
cmp byte [0x4c12d6], 0
jne 0x43dd53
push 0
push 0
push 0x408
mov eax, dword [0x4bec7c]
mov eax, dword [eax]
mov edx, dword [0x4be754]
mov eax, dword [edx + eax*4 - 4]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
test eax, eax
je 0x43de6d
mov byte [0x4c12d6], 1
mov eax, dword [0x4be4c4]
mov edx, dword [ebx]
mov dword [eax], edx
mov edx, dword [ebx + 4]
mov dword [eax + 4], edx
mov byte [esp], 1
mov byte [0x4c1280], 1
mov eax, dword [esp + 4]
push eax
mov eax, dword [0x4bec7c]
mov eax, dword [eax]
mov edx, dword [0x4be754]
mov eax, dword [edx + eax*4 - 4]
mov eax, dword [eax + 0xc]
cmp byte [ebx + 0x33], 0x23
sete dl
and edx, 0x7f
mov ecx, edx
shl ecx, 5
add ecx, ebp
mov edx, dword [0x4be4c4]
call fcn.0041c768
cmp eax, dword [esp + 4]
jl 0x43de6d
push dword [ebx + 4]
push dword [ebx]
fild dword [esp + 0xc]
fild qword [ebx]
faddp st(1)
fsub dword [0x43dec0]
add esp, 0xfffffff8
fistp qword [esp]
wait
mov eax, dword [0x4bec7c]
mov eax, dword [eax]
mov edx, dword [0x4be754]
mov eax, dword [edx + eax*4 - 4]
mov eax, dword [eax + 0xc]
call fcn.00418ac4
jmp 0x43de03
cmp byte [esp + 0x15], 0
je 0x43ddfb
mov ax, 0xd1
call fcn.004aa600
mov edx, 3
call fcn.004b12a8
push edi
call sub.user32.dll_SetFocus
jmp 0x43de6d
push 0
push 0
push 0xb9
push edi
call sub.user32.dll_SendMessageA
mov al, byte [ebx + 0x33]
cmp al, 0x10
jb 0x43de30
cmp al, 0x1b
ja 0x43de30
push 0
push 0
push 0xb9
mov eax, dword [esp + 0x1c]
push eax
call sub.user32.dll_SendMessageA
mov eax, esi
neg eax
push eax
mov eax, dword [0x4be348]
mov eax, dword [eax]
push eax
call sub.user32.dll_GetDlgItem
mov ebx, eax
push 0xff
mov eax, dword [0x4bedb0]
push eax
push ebx
call sub.user32.dll_GetWindowTextA
mov eax, dword [0x4bedb0]
inc eax
push eax
push ebx
call sub.user32.dll_SetWindowTextA
inc esi
dec dword [esp + 0x18]
jne 0x43db03
mov eax, dword [0x4bec7c]
mov eax, dword [eax]
mov edx, dword [0x4be754]
mov eax, dword [edx + eax*4 - 4]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x1a0]
call dword [edx + 0x14]
cmp byte [esp], 0
je 0x43deb2
push 0
push 0
push 0x400
mov eax, dword [0x4bec7c]
mov eax, dword [eax]
mov edx, dword [0x4be754]
mov eax, dword [edx + eax*4 - 4]
mov eax, dword [eax]
push eax
call sub.user32.dll_SendMessageA
mov al, byte [esp]
add esp, 0x1c
pop ebp
pop edi
pop esi
pop ebx
ret