Function at 0x438740
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5f5ed0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xfd4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x10], esp
mov esi, ecx
push ebx
mov dword [ebp - 0x40], esi
mov dword [ebp - 4], ebx
call fcn.005e088c
mov eax, dword [esi + 0x90]
cmp eax, ebx
jne 0x438784
lea eax, [esi + 0x94]
push eax
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x14], ebx
mov word [ebp - 0x18], bx
call fcn.00401f60
mov eax, dword [ebp - 0x1c]
mov byte [ebp - 4], 1
cmp eax, ebx
jne 0x4387a5
lea eax, [ebp - 0x18]
push 0x3a
push eax
call fcn.005c4fbf
mov edi, eax
add esp, 8
cmp edi, ebx
je 0x4388dd
add edi, 2
push 0x3a
push edi
call fcn.005c4fbf
add esp, 8
test eax, eax
je 0x4388dd
push edi
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0x28], ebx
mov word [ebp - 0x2c], bx
call fcn.00401f60
mov esi, dword [ebp - 0x30]
mov byte [ebp - 4], 2
cmp esi, ebx
je 0x43880e
push esi
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x43880e
cmp word [esi], 0x3a
jne 0x438809
mov word [esi], 0x2d
add esi, 2
jmp 0x4387fa
mov word [edi], bx
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
jne 0x43881b
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x34], ebx
mov word [ebp - 0x38], bx
call fcn.00401f60
mov edi, dword [ebp - 0x30]
mov byte [ebp - 4], 3
cmp edi, ebx
jne 0x438840
lea edi, [ebp - 0x2c]
cmp edi, ebx
je 0x4388b9
push edi
call fcn.005c4b4a
add esp, 4
test eax, eax
je 0x4388b9
mov eax, dword [ebp - 0x3c]
cmp eax, ebx
je 0x438861
push eax
call fcn.005c4b4a
add esp, 4
mov esi, eax
jmp 0x438863
xor esi, esi
push edi
call fcn.005c4b4a
add eax, esi
lea eax, [eax + eax + 2]
push eax
call fcn.005dd58d
mov esi, eax
add esp, 8
cmp esi, ebx
je 0x4388b9
mov eax, dword [ebp - 0x3c]
cmp eax, ebx
je 0x438898
push eax
push esi
call fcn.005c4cea
push edi
push esi
call fcn.005c4cc0
add esp, 0x10
jmp 0x4388a2
push edi
push esi
call fcn.005c4cea
add esp, 8
lea ecx, [ebp - 0x3c]
call fcn.00401070
push esi
mov dword [ebp - 0x3c], esi
call fcn.005c4b4a
add esp, 4
mov dword [ebp - 0x34], eax
mov ecx, dword [ebp - 0x3c]
push ecx
lea ecx, [ebp - 0x1c]
call fcn.00401f60
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 2
call fcn.00401070
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 1
call fcn.00401070
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
je 0x438a0f
push eax
mov esi, eax
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x43890a
cmp word [esi], 0x2a
jne 0x438905
mov word [esi], 0x2d
add esi, 2
jmp 0x4388f6
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
je 0x438a0f
push eax
mov esi, eax
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x438937
cmp word [esi], 0x3f
jne 0x438932
mov word [esi], 0x2d
add esi, 2
jmp 0x438923
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
je 0x438a0f
push eax
mov esi, eax
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x438964
cmp word [esi], 0x7c
jne 0x43895f
mov word [esi], 0x2d
add esi, 2
jmp 0x438950
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
je 0x438a0f
push eax
mov esi, eax
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x438991
cmp word [esi], 0x3c
jne 0x43898c
mov word [esi], 0x2d
add esi, 2
jmp 0x43897d
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
je 0x438a0f
push eax
mov esi, eax
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x4389ba
cmp word [esi], 0x3e
jne 0x4389b5
mov word [esi], 0x2d
add esi, 2
jmp 0x4389a6
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
je 0x438a0f
push eax
mov esi, eax
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x4389e3
cmp word [esi], 0x22
jne 0x4389de
mov word [esi], 0x27
add esi, 2
jmp 0x4389cf
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
je 0x438a0f
push eax
mov esi, eax
call fcn.005c4b4a
add esp, 4
lea eax, [esi + eax*2]
cmp esi, eax
jae 0x438a0c
cmp word [esi], 0x2f
jne 0x438a07
mov word [esi], 0x5c
add esi, 2
jmp 0x4389f8
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x438a16
lea eax, [ebp - 0x18]
push 0x6a3c28
push eax
call fcn.005c53a5
add esp, 8
test eax, eax
je 0x438bf3
mov edx, 0x6a3c28
test edx, edx
je 0x438a0c
mov eax, 0x6a0054
test eax, eax
je 0x438a0c
push eax
push edx
call fcn.005c505f
add esp, 8
test eax, eax
je 0x438a0c
mov ecx, dword [ebp - 0x1c]
push 0x6a3c28
push ecx
call fcn.005c53a5
add esp, 8
mov esi, eax
xor edi, edi
test esi, esi
je 0x438a85
push 0x6a3c28
inc edi
call fcn.005c4b4a
lea eax, [esi + eax*2]
push 0x6a3c28
push eax
call fcn.005c53a5
add esp, 0xc
mov esi, eax
jmp 0x438a61
test edi, edi
je 0x438a0c
mov edx, dword [ebp - 0x1c]
lea ecx, [ebp - 0x30]
push edx
call fcn.0040d680
push 0x6a0054
mov byte [ebp - 4], 4
call fcn.005c4b4a
push 0x6a3c28
mov esi, eax
call fcn.005c4b4a
add esp, 8
cmp esi, eax
jbe 0x438b12
lea ecx, [ebp - 0x1c]
call fcn.00401070
mov esi, dword [ebp - 0x30]
test esi, esi
jne 0x438ac8
lea esi, [ebp - 0x2c]
push 0x6a0054
call fcn.005c4b4a
push 0x6a3c28
mov ebx, eax
call fcn.005c4b4a
sub ebx, eax
push esi
imul ebx, edi
call fcn.005c4b4a
add ebx, eax
lea eax, [ebx + ebx + 2]
push eax
call fcn.005dd58d
mov ebx, eax
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x1c], ebx
jne 0x438b15
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 1
call fcn.00401070
jmp 0x438a0c
mov ebx, dword [ebp - 0x1c]
lea ecx, [ebp - 0x30]
call fcn.00401f50
push 0x6a3c28
push eax
mov dword [ebp - 0x20], eax
call fcn.005c53a5
add esp, 8
test eax, eax
mov dword [ebp - 0x24], eax
je 0x438ba5
mov esi, dword [ebp - 0x20]
mov edi, ebx
sub eax, esi
push 0x6a0054
sar eax, 1
shl eax, 1
mov ecx, eax
add ebx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
mov ecx, eax
mov esi, 0x6a0054
shl ecx, 1
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x6a0054
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
push 0x6a3c28
lea ebx, [ebx + eax*2]
call fcn.005c4b4a
mov ecx, dword [ebp - 0x24]
push 0x6a3c28
lea eax, [ecx + eax*2]
push eax
mov dword [ebp - 0x20], eax
call fcn.005c53a5
add esp, 0x14
jmp 0x438b2e
mov esi, dword [ebp - 0x20]
push esi
call fcn.005c4b4a
mov ecx, eax
mov edi, ebx
shl ecx, 1
mov edx, ecx
mov eax, dword [ebp - 0x20]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
lea ebx, [ebx + eax*2]
mov word [ebx], 0
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.005c4b4a
add esp, 0xc
lea ecx, [ebp - 0x30]
mov dword [ebp - 0x14], eax
mov byte [ebp - 4], 1
call fcn.00401070
jmp 0x438a0c
mov eax, dword [0x6cee64]
test eax, eax
jne 0x438e82
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x438c0a
lea eax, [ebp - 0x18]
push 0x202a
push eax
call fcn.005c4fbf
add esp, 8
test eax, eax
jne 0x438c3c
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x438c26
lea eax, [ebp - 0x18]
push 0x202d
push eax
call fcn.005c4fbf
add esp, 8
test eax, eax
je 0x438e26
mov edx, 0x6a3c24
test edx, edx
je 0x438e02
mov eax, 0x6ce7cc
test eax, eax
je 0x438e02
push eax
push edx
call fcn.005c505f
add esp, 8
test eax, eax
je 0x438e02
mov ecx, dword [ebp - 0x1c]
push 0x6a3c24
push ecx
call fcn.005c53a5
add esp, 8
mov esi, eax
xor edi, edi
test esi, esi
je 0x438ca1
push 0x6a3c24
inc edi
call fcn.005c4b4a
lea esi, [esi + eax*2]
push 0x6a3c24
push esi
call fcn.005c53a5
add esp, 0xc
mov esi, eax
jmp 0x438c7d
test edi, edi
je 0x438e02
mov edx, dword [ebp - 0x1c]
lea ecx, [ebp - 0x30]
push edx
call fcn.0040d680
push 0x6a3c24
mov byte [ebp - 4], 5
call fcn.005c4b4a
push 0x6ce7cc
mov esi, eax
call fcn.005c4b4a
add esp, 8
cmp eax, esi
jbe 0x438d26
lea ecx, [ebp - 0x1c]
call fcn.00401070
lea ecx, [ebp - 0x30]
call fcn.00401f50
push eax
call fcn.005c4b4a
push 0x6a3c24
mov esi, eax
call fcn.005c4b4a
push 0x6ce7cc
mov ebx, eax
call fcn.005c4b4a
sub eax, ebx
imul eax, edi
add esi, eax
lea eax, [esi + esi + 2]
push eax
call fcn.005dd58d
mov ebx, eax
add esp, 0x10
test ebx, ebx
mov dword [ebp - 0x1c], ebx
jne 0x438d29
jmp 0x438df6
mov ebx, dword [ebp - 0x1c]
lea ecx, [ebp - 0x30]
call fcn.00401f50
push 0x6a3c24
push eax
mov dword [ebp - 0x24], eax
call fcn.005c53a5
add esp, 8
test eax, eax
mov dword [ebp - 0x20], eax
je 0x438db9
mov esi, dword [ebp - 0x24]
mov edi, ebx
sub eax, esi
push 0x6ce7cc
sar eax, 1
shl eax, 1
mov ecx, eax
add ebx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
mov ecx, eax
mov esi, 0x6ce7cc
shl ecx, 1
mov eax, ecx
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push 0x6ce7cc
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
push 0x6a3c24
lea ebx, [ebx + eax*2]
call fcn.005c4b4a
mov ecx, dword [ebp - 0x20]
push 0x6a3c24
lea eax, [ecx + eax*2]
push eax
mov dword [ebp - 0x24], eax
call fcn.005c53a5
add esp, 0x14
jmp 0x438d42
mov esi, dword [ebp - 0x24]
push esi
call fcn.005c4b4a
mov ecx, eax
mov edi, ebx
shl ecx, 1
mov edx, ecx
mov eax, dword [ebp - 0x24]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.005c4b4a
lea ebx, [ebx + eax*2]
mov word [ebx], 0
mov ecx, dword [ebp - 0x1c]
push ecx
call fcn.005c4b4a
add esp, 0xc
mov dword [ebp - 0x14], eax
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 1
call fcn.00401070
push 0x6ce7cc
push 0x6a3c20
lea ecx, [ebp - 0x1c]
call fcn.00439150
push 0x6ce7cc
push 0x6a3c1c
lea ecx, [ebp - 0x1c]
call fcn.00439150
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x438e30
lea eax, [ebp - 0x18]
push 0x200e
push eax
call fcn.005c4fbf
add esp, 8
test eax, eax
je 0x438e54
push 0x6ce7cc
push 0x6a3c18
lea ecx, [ebp - 0x1c]
call fcn.00439150
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x438e5e
lea eax, [ebp - 0x18]
push 0x200f
push eax
call fcn.005c4fbf
add esp, 8
test eax, eax
je 0x438e82
push 0x6ce7cc
push 0x6a3c14
lea ecx, [ebp - 0x1c]
call fcn.00439150
mov esi, dword [ebp - 0x40]
lea edx, [ebp - 0x1c]
push 0
push edx
mov eax, dword [esi + 0x70]
mov ecx, dword [esi + 0x68]
push eax
call fcn.0047cb80
cmp eax, 2
jne 0x438ec0
mov byte [esi + 0x428], 1
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 0
call fcn.00401070
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [esi + 0x70]
mov edx, dword [ecx + 0x470]
mov eax, dword [ecx + 0x474]
or edx, eax
je 0x438efa
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x438edd
lea eax, [ebp - 0x18]
push eax
call fcn.00590fa0
cmp eax, 2
jne 0x438efa
push 5
mov ecx, esi
call fcn.005e088c
mov byte [esi + 0x42a], 1
jmp 0x438ea3
mov eax, dword [ebp - 0x1c]
test eax, eax
jne 0x438f04
lea eax, [ebp - 0x18]
mov ecx, dword [esi + 0x70]
push eax
call fcn.00591370
mov eax, dword [esi + 0x43c]
push 0x7d0
test eax, eax
je 0x438fd1
mov ecx, dword [esi + 0x430]
lea eax, [ebp - 0xfe0]
push eax
push ecx
call dword [sym.imp.USER32.dll_GetWindowTextW]
test eax, eax
je 0x438fc5
mov edx, dword [0x6ca27c]
mov dword [ebp - 0x20], edx
mov ebx, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push 0
push 0
push 0
push 0
lea eax, [ebp - 0xfe0]
push 0xffffffffffffffff
push eax
push 0
push 0xfde9
mov byte [ebp - 4], 6
call ebx
mov edi, eax
test edi, edi
jle 0x438fa3
push edi
lea ecx, [ebp - 0x20]
call fcn.005e1559
push 0
push 0
push edi
push eax
lea ecx, [ebp - 0xfe0]
push 0xffffffffffffffff
push ecx
push 0
push 0xfde9
call ebx
mov edx, dword [esi + 0x70]
mov byte [edx + 0x316], 1
mov eax, dword [ebp - 0x20]
mov ecx, dword [esi + 0x70]
push eax
jmp 0x438fb2
mov ecx, dword [esi + 0x70]
mov eax, dword [ecx + 0x60]
test eax, eax
je 0x438fb7
push 0x6ce7c8
call fcn.0058ab30
lea ecx, [ebp - 0x20]
mov byte [ebp - 4], 1
call fcn.005e118c
jmp 0x439009
mov ecx, dword [esi + 0x70]
mov eax, dword [ecx + 0x60]
test eax, eax
je 0x439009
jmp 0x438fff
mov edx, dword [esi + 0x430]
lea ecx, [ebp - 0x810]
push ecx
push edx
call dword [sym.imp.USER32.dll_GetWindowTextA]
test eax, eax
je 0x438ff5
mov ecx, dword [esi + 0x70]
lea eax, [ebp - 0x810]
push eax
jmp 0x439004
mov ecx, dword [esi + 0x70]
mov eax, dword [ecx + 0x60]
test eax, eax
je 0x439009
push 0x6ce7c8
call fcn.0058ab30
mov ecx, dword [esi + 0x70]
mov eax, dword [ecx + 0x8bc]
test eax, eax
je 0x439031
cmp eax, 3
je 0x439031
mov edx, dword [esi + 0x6c]
push 0
push 0x2721
push 0x111
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
mov eax, dword [esi + 0x70]
mov ecx, dword [eax + 0x42c]
test ecx, ecx
je 0x43905c
mov al, byte [ecx + 8]
test al, al
je 0x43905c
test ecx, ecx
je 0x43904f
mov edx, dword [ecx]
push 1
call dword [edx]
mov eax, dword [esi + 0x70]
mov dword [eax + 0x42c], 0
mov ecx, dword [esi + 0x70]
mov edx, dword [ecx + 0x2ec]
push edx
call fcn.0058acc0
mov ecx, esi
call fcn.0043b220
mov eax, dword [esi + 0x70]
mov ecx, dword [eax + 0x468]
push ecx
lea ecx, [eax + 0x20]
call fcn.005a0240
mov ecx, dword [esi + 0x70]
push 0
call fcn.00593c40
mov ecx, dword [esi + 0x64]
test ecx, ecx
je 0x4390ce
mov edx, dword [esi + 0x70]
push 1
push 1
push edx
call fcn.004a6470
mov eax, dword [esi + 0x6c]
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4390ce
mov ecx, dword [esi + 0x70]
mov eax, dword [esi + 0x6c]
mov edx, dword [ecx + 0x468]
push edx
push 0x144d
push 0x111
push eax
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, dword [0x6cefb8]
push ecx
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x439100
mov edx, dword [esi + 0x70]
mov ecx, dword [0x6cefb8]
mov eax, dword [edx + 0x468]
push eax
push 0x1395
push 0x111
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
push 1
mov ecx, esi
call fcn.00439370
mov eax, dword [esi + 0x60]
push 0
test eax, eax
je 0x439128
mov edx, dword [esi + 0x1c]
push 0xc8
push 1
push edx
call dword [sym.imp.USER32.dll_SetTimer]
jmp 0x438ea3
mov ecx, esi
call fcn.005dd2e6
jmp 0x438ea3