Function at 0x403570
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffcd4
mov eax, 0x4cd298
cmp dword [0x4cd290], 0
push ebx
push esi
push edi
mov edi, 0x4cd280
mov ebx, dword [ebp + 8]
mov esi, 0x4cd178
jne 0x403d3c
cmp dword [esi], 0x40
jne 0x4035ee
cmp dword [edi], 0x28
jne 0x4035ee
push 0
call fcn.00401150
pop ecx
push ebx
call fcn.00403d5c
pop ecx
push 0x63
push ebx
call fcn.004043b8
add esp, 8
cmp dword [0x4cd290], 0
jne 0x4035e1
cmp dword [esi], 0x40
jne 0x4035d2
cmp dword [edi], 0x29
je 0x4035e1
mov dword [0x4cd290], str.Closing_parenthesis_expected
jmp 0x403d3c
push 0
call fcn.00401150
pop ecx
jmp 0x403d3c
cmp dword [esi], 0x40
jne 0x403627
cmp dword [edi], 0x2b
jne 0x403627
push 0
call fcn.00401150
pop ecx
push ebx
call fcn.00403d5c
cmp dword [ebx + 4], 4
pop ecx
jne 0x40361a
or dword [ebx], 0x100
or dword [ebx + 4], 0x100
xor eax, eax
mov dword [ebx + 0x112], eax
jmp 0x403d3c
cmp dword [esi], 0x40
jne 0x40368c
cmp dword [edi], 0x2d
jne 0x40368c
push 0
call fcn.00401150
pop ecx
push ebx
call fcn.00403d5c
pop ecx
mov eax, dword [ebx + 4]
and eax, 0x1f
cmp eax, 4
jne 0x40365d
neg dword [ebx + 8]
or dword [ebx], 0x100
or dword [ebx + 4], 0x100
jmp 0x40367f
cmp eax, 9
jne 0x40366c
fld xword [ebx + 8]
fchs
fstp xword [ebx + 8]
jmp 0x40367f
cmp dword [0x4cd290], 0
jne 0x40367f
mov dword [0x4cd290], str.Unary_operation_not_supported_for_this_data_type
xor edx, edx
mov dword [ebx + 0x112], edx
jmp 0x403d3c
cmp dword [esi], 0x40
jne 0x403723
cmp dword [edi], 0x21
jne 0x403723
push 0
call fcn.00401150
pop ecx
push ebx
call fcn.00403d5c
pop ecx
mov eax, dword [ebx + 4]
and eax, 0x1f
mov edx, 4
mov dword [ebx + 4], edx
mov dword [ebx], edx
cmp eax, 4
jne 0x4036d1
cmp dword [ebx + 8], 0
sete al
and eax, 1
mov dword [ebx + 8], eax
jmp 0x403716
cmp eax, 9
jne 0x4036ed
fld xword [ebx + 8]
fcomp dword [0x403d58]
fnstsw ax
sahf
sete dl
and edx, 1
mov dword [ebx + 8], edx
jmp 0x403716
cmp eax, 8
jne 0x403703
mov ecx, dword [ebx + 8]
or ecx, dword [ebx + 0xc]
sete al
and eax, 1
mov dword [ebx + 8], eax
jmp 0x403716
cmp dword [0x4cd290], 0
jne 0x403716
mov dword [0x4cd290], str.Unary_operation_not_supported_for_this_data_type
xor edx, edx
mov dword [ebx + 0x112], edx
jmp 0x403d3c
cmp dword [esi], 0x40
jne 0x403783
cmp dword [edi], 0x7e
jne 0x403783
push 0
call fcn.00401150
pop ecx
push ebx
call fcn.00403d5c
pop ecx
mov eax, dword [ebx + 4]
and eax, 0x1f
cmp eax, 4
jne 0x403756
not dword [ebx + 8]
mov edx, 4
mov dword [ebx + 4], edx
mov dword [ebx], edx
jmp 0x403776
cmp eax, 8
jne 0x403763
not dword [ebx + 8]
not dword [ebx + 0xc]
jmp 0x403776
cmp dword [0x4cd290], 0
jne 0x403776
mov dword [0x4cd290], str.Unary_operation_not_supported_for_this_data_type
xor eax, eax
mov dword [ebx + 0x112], eax
jmp 0x403d3c
mov edx, dword [esi]
cmp edx, 1
je 0x403798
cmp edx, 2
je 0x403798
cmp edx, 3
jne 0x403899
cmp dword [edi], 8
jl 0x4037ac
mov dword [0x4cd290], str.Undefined_registers_not_allowed_in_expression
jmp 0x403d3c
cmp dword [eax], 0
jne 0x4037c0
mov dword [0x4cd290], str.Unable_to_get_contents_of_register
jmp 0x403d3c
mov dword [ebx + 4], 4
mov ecx, dword [edi]
mov dword [ebx + 0x112], ecx
cmp dword [esi], 1
jne 0x403815
cmp dword [edi], 4
jge 0x4037eb
mov eax, dword [eax]
mov edx, dword [edi]
mov eax, dword [eax + edx*4 + 0xc]
and eax, 0xff
mov dword [ebx + 8], eax
jmp 0x4037ff
mov ecx, dword [eax]
mov eax, dword [edi]
mov edx, dword [ecx + eax*4 - 4]
shr edx, 8
and edx, 0xff
mov dword [ebx + 8], edx
mov dword [ebp - 4], 0x80
mov dword [ebp - 8], 0xffffff00
mov dword [ebx], 0x21
jmp 0x403857
cmp dword [esi], 2
jne 0x403841
mov ecx, dword [eax]
mov eax, dword [edi]
mov edx, dword [ecx + eax*4 + 0xc]
and edx, 0xffff
mov dword [ebx + 8], edx
mov dword [ebp - 4], 0x8000
mov dword [ebp - 8], 0xffff0000
mov dword [ebx], 0x22
jmp 0x403857
mov ecx, dword [eax]
mov eax, dword [edi]
mov edx, dword [ecx + eax*4 + 0xc]
xor ecx, ecx
mov dword [ebx + 8], edx
mov dword [ebp - 4], ecx
mov dword [ebx], 0x24
push 0
call fcn.00401150
pop ecx
cmp dword [esi], 0x40
jne 0x403d3c
cmp dword [edi], 0x2e
jne 0x403d3c
or dword [ebx], 0x100
or dword [ebx + 4], 0x100
mov eax, dword [ebx + 8]
and eax, dword [ebp - 4]
je 0x40388c
mov edx, dword [ebp - 8]
or dword [ebx + 8], edx
push 0
call fcn.00401150
pop ecx
jmp 0x403d3c
cmp dword [esi], 0x1e
jne 0x4038dc
cmp dword [eax], 0
jne 0x4038b2
mov dword [0x4cd290], str.Unable_to_get_contents_of_register
jmp 0x403d3c
mov dword [ebx], 4
xor edx, edx
mov dword [ebx + 4], 4
mov ecx, dword [eax]
mov eax, dword [ecx + 0x2c]
mov dword [ebx + 8], eax
mov dword [ebx + 0x112], edx
push 0
call fcn.00401150
pop ecx
jmp 0x403d3c
cmp dword [esi], 0xc
jne 0x403926
cmp dword [eax], 0
jne 0x4038f5
mov dword [0x4cd290], str.Unable_to_get_contents_of_register
jmp 0x403d3c
mov dword [ebx], 4
mov dword [ebx + 4], 4
mov ecx, dword [eax]
mov edx, dword [edi]
shl edx, 2
mov eax, dword [ecx + 0x20]
sub eax, edx
xor ecx, ecx
mov dword [ebx + 8], eax
mov dword [ebx + 0x112], ecx
push 0
call fcn.00401150
pop ecx
jmp 0x403d3c
cmp dword [esi], 0xd
jne 0x403973
cmp dword [eax], 0
jne 0x40393f
mov dword [0x4cd290], str.Unable_to_get_contents_of_register
jmp 0x403d3c
mov dword [ebx], 4
mov dword [ebx + 4], 4
mov eax, dword [eax]
mov ecx, dword [edi]
shl ecx, 2
add ecx, 4
mov edx, dword [eax + 0x20]
add edx, ecx
xor eax, eax
mov dword [ebx + 8], edx
mov dword [ebx + 0x112], eax
push 0
call fcn.00401150
pop ecx
jmp 0x403d3c
cmp dword [esi], 0x27
jne 0x4039e3
mov edx, dword [eax]
test edx, edx
jne 0x40398d
mov dword [0x4cd290], str.Unable_to_get_contents_of_EIP
jmp 0x403d3c
push 1
mov ecx, dword [edx + 0x1c]
push ecx
push 0
mov eax, dword [edx + 0x2c]
push eax
lea edx, [ebp - 0x32c]
push edx
call fcn.0040dde4
add esp, 0x14
test eax, eax
je 0x4039bb
mov dword [0x4cd290], str.Not_a_known_function_with_message_argument
jmp 0x403d3c
mov dword [ebx], 4
xor eax, eax
mov dword [ebx + 4], 4
mov ecx, dword [ebp - 0x10]
mov dword [ebx + 8], ecx
mov dword [ebx + 0x112], eax
push 0
call fcn.00401150
pop ecx
jmp 0x403d3c
cmp dword [esi], 0x2b
jne 0x403ab3
push 0
call fcn.00401150
pop ecx
cmp dword [esi], 0x40
jne 0x4039fe
cmp dword [edi], 0x28
je 0x403a0d
mov dword [0x4cd290], str.Opening_parenthesis_expected
jmp 0x403d3c
push 0
call fcn.00401150
pop ecx
push ebx
call fcn.00403d5c
pop ecx
push 0x63
push ebx
call fcn.004043b8
add esp, 8
cmp dword [0x4cd290], 0
jne 0x403d3c
mov edx, dword [ebx + 4]
and edx, 0x1f
cmp edx, 4
je 0x403a4e
mov dword [0x4cd290], 0x4b0aa3
jmp 0x403d3c
mov ecx, dword [ebx + 8]
push ecx
call sub.USER32.DLL_IsWindow
test eax, eax
jne 0x403a6a
mov dword [0x4cd290], str.Window_with_this_handle_doesnt_exist
jmp 0x403d3c
push 0x100
lea eax, [ebx + 0x12]
push eax
mov edx, dword [ebx + 8]
push edx
call sub.USER32.DLL_GetWindowTextA
mov dword [ebx + 8], eax
xor ecx, ecx
mov dword [ebx], 0x10
xor eax, eax
mov dword [ebx + 4], ecx
mov dword [ebx + 0x112], eax
cmp dword [esi], 0x40
jne 0x403a9c
cmp dword [edi], 0x29
je 0x403aa6
mov dword [0x4cd290], str.Closing_parenthesis_expected
push 0
call fcn.00401150
pop ecx
jmp 0x403d3c
cmp dword [esi], 0x1a
jne 0x403adc
mov edx, 4
xor ecx, ecx
mov dword [ebx + 4], edx
mov dword [ebx], edx
mov eax, dword [edi]
mov dword [ebx + 8], eax
mov dword [ebx + 0x112], ecx
push 0
call fcn.00401150
pop ecx
jmp 0x403d3c
cmp dword [esi], 0x1b
jne 0x403b05
mov eax, 0x104
xor ecx, ecx
mov dword [ebx + 4], eax
mov dword [ebx], eax
mov edx, dword [edi]
mov dword [ebx + 8], edx
mov dword [ebx + 0x112], ecx
push 0
call fcn.00401150
pop ecx
jmp 0x403d3c
cmp dword [esi], 0x40
jne 0x403ba0
cmp dword [edi], 0x25
jne 0x403ba0
push 1
call fcn.00401150
pop ecx
cmp dword [esi], 0x19
jne 0x403b50
push 0x4b0159
push 0x4cd180
call fcn.004a38bc
add esp, 8
test eax, eax
je 0x403b5f
push 0x4b015c
push 0x4cd180
call fcn.004a38bc
add esp, 8
test eax, eax
je 0x403b5f
mov dword [0x4cd290], str.Parameter_is_either__A_or__B
jmp 0x403d3c
mov eax, 4
mov dword [ebx + 4], eax
mov dword [ebx], eax
movzx esi, byte [0x4cd180]
push esi
call fcn.004a98c8
pop ecx
cmp eax, 0x41
jne 0x403b83
mov eax, dword [0x4cd29c]
jmp 0x403b88
mov eax, dword [0x4cd2a0]
mov dword [ebx + 8], eax
xor edx, edx
mov dword [ebx + 0x112], edx
push 0
call fcn.00401150
pop ecx
jmp 0x403d3c
cmp dword [esi], 5
jne 0x403c43
mov edx, dword [eax]
mov edx, dword [edx + 0x34]
mov ecx, dword [edi]
add edx, ecx
and edx, 0x80000007
jns 0x403bbf
dec edx
or edx, 0xfffffff8
inc edx
cmp ecx, 8
jl 0x403bd3
mov dword [0x4cd290], str.Undefined_registers_not_allowed_in_expression
jmp 0x403d3c
cmp dword [eax], 0
jne 0x403be7
mov dword [0x4cd290], str.Unable_to_get_contents_of_register
jmp 0x403d3c
mov ecx, dword [eax]
movzx ecx, byte [ecx + edx + 0x88]
cmp ecx, 3
jne 0x403c05
mov dword [0x4cd290], str.FPU_register_marked_as_invalid
jmp 0x403d3c
mov dword [ebx], 0x29
mov dword [ebx + 4], 9
lea edx, [edx + edx*4]
mov eax, dword [eax]
mov ecx, dword [eax + edx*2 + 0x38]
mov dword [ebx + 8], ecx
mov ecx, dword [eax + edx*2 + 0x3c]
mov dword [ebx + 0xc], ecx
mov cx, word [eax + edx*2 + 0x40]
mov word [ebx + 0x10], cx
mov eax, dword [edi]
mov dword [ebx + 0x112], eax
push 0
call fcn.00401150
pop ecx
jmp 0x403d3c
cmp dword [esi], 0x1d
jne 0x403c84
mov edx, 9
xor ecx, ecx
mov dword [ebx + 4], edx
mov dword [ebx], edx
mov eax, dword [0x4cd284]
mov dword [ebx + 8], eax
mov eax, dword [0x4cd288]
mov dword [ebx + 0xc], eax
mov ax, word [0x4cd28c]
mov word [ebx + 0x10], ax
mov dword [ebx + 0x112], ecx
push 0
call fcn.00401150
pop ecx
jmp 0x403d3c
cmp dword [esi], 4
jne 0x403ce4
cmp dword [edi], 6
jl 0x403c9d
mov dword [0x4cd290], str.Undefined_registers_not_allowed_in_expression
jmp 0x403d3c
cmp dword [eax], 0
jne 0x403cb1
mov dword [0x4cd290], str.Unable_to_get_contents_of_register
jmp 0x403d3c
mov dword [ebx], 0x2a
mov dword [ebx + 4], 4
mov eax, dword [eax]
mov edx, dword [edi]
mov ecx, dword [eax + edx*4 + 0x98]
and ecx, 0xffff
mov dword [ebx + 8], ecx
mov eax, dword [edi]
mov dword [ebx + 0x112], eax
push 0
call fcn.00401150
pop ecx
jmp 0x403d3c
cmp dword [esi], 0x28
jne 0x403d32
mov dword [ebx], 0x10
xor edx, edx
mov dword [ebx + 4], edx
lea eax, [ebx + 0x12]
mov ecx, dword [edi]
mov esi, eax
mov dword [ebx + 8], ecx
xor eax, eax
or ecx, 0xffffffff
mov edi, 0x4cd180
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
xchg edi, esi
shr ecx, 2
mov eax, edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
xor eax, eax
mov dword [ebx + 0x112], eax
push 0
call fcn.00401150
pop ecx
jmp 0x403d3c
mov dword [0x4cd290], 0x4b03e7
cmp dword [0x4cd290], 0
je 0x403d4e
xor edx, edx
xor ecx, ecx
mov dword [ebx], edx
mov dword [ebx + 4], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret