Function at 0x31308884
Capabilities:
Get graphical window text

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb8
push ebx
push esi
push edi
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor edx, edx
push ebp
push 0x31309006
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [ebp - 8]
xor edx, edx
mov dword [eax + 0xc], edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xb0]
mov ebx, dword [eax + 8]
dec ebx
test ebx, ebx
jl 0x313088ec
inc ebx
xor esi, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xb0]
mov edx, esi
call fcn.31265d60
mov edi, eax
mov edx, dword [ebp - 8]
mov eax, dword [edi + 4]
call dword [edi]
test al, al
je 0x313088e8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x3130901b
inc esi
dec ebx
jne 0x313088bd
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.313086f8
mov ebx, dword [ebp - 8]
mov ebx, dword [ebx]
mov eax, ebx
cmp eax, 0x53
jg 0x313089ae
je 0x31308ec3
cmp eax, 0x11
jg 0x3130896c
je 0x31308cd5
cmp eax, 0x10
ja case.0x31308921.1
jmp dword [eax*4 + 0x31308928]
cmp eax, 0x1c
jg 0x31308997
je 0x31308b35
sub eax, 0x14
je 0x31308ae9
sub eax, 2
je 0x31308c7a
sub eax, 4
je 0x31308f47
jmp case.0x31308921.1
sub eax, 0x1d
je 0x31308f70
sub eax, 0x1a
je 0x31308afe
jmp case.0x31308921.1
cmp eax, 0xb017
jg 0x31308a04
je 0x31308d27
cmp eax, 0xb000
jg 0x313089eb
je 0x31308dc0
sub eax, 0x112
je 0x31308a4d
add eax, 0xffffffe0
sub eax, 7
jb 0x31308c4e
sub eax, 0x1e1
je 0x31308f83
jmp case.0x31308921.1
sub eax, 0xb001
je 0x31308e3f
sub eax, 0x15
je 0x31308d05
jmp case.0x31308921.1
cmp eax, 0xb031
jg 0x31308a31
je 0x31308f16
sub eax, 0xb01a
je 0x31308e7f
sub eax, 5
je 0x31308ec3
dec eax
je 0x31308edd
jmp case.0x31308921.1
add eax, 0xffff4fc1
sub eax, 2
jb 0x31308ce4
sub eax, 0x15
je 0x31308fd1
jmp case.0x31308921.1
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
and eax, 0xfff0
sub eax, 0xf020
je 0x31308a68
sub eax, 0x100
je 0x31308a75
jmp 0x31308a82
mov eax, dword [ebp - 4]
call fcn.31309040
jmp 0x31308ffc
mov eax, dword [ebp - 4]
call fcn.31309144
jmp 0x31308ffc
push ebp
call fcn.313087f4
pop ecx
jmp 0x31308ffc
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 1
jne 0x31308ffc
mov eax, dword [ebp - 4]
mov byte [eax + 0x34], 1
jmp 0x31308ffc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x31308ffc
call fcn.313049e4
jmp 0x31308ffc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x170]
call fcn.312fd0d4
test eax, eax
je 0x31308add
push ebp
call fcn.31308834
pop ecx
jmp 0x31308ffc
push ebp
call fcn.313087f4
pop ecx
jmp 0x31308ffc
mov eax, dword [ebp - 8]
mov dword [eax], 0x27
push ebp
call fcn.313087f4
pop ecx
jmp 0x31308ffc
mov eax, dword [ebp - 4]
call fcn.31309024
mov edx, dword [ebp - 8]
mov dword [edx + 0xc], eax
jmp 0x31308ffc
push 0
push 0
push 0xb01a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x170]
push eax
call sub.user32.dll_GetMenuItemRect
push ebp
call fcn.313087f4
pop ecx
jmp 0x31308ffc
push ebp
call fcn.313087f4
pop ecx
mov eax, dword [ebp - 8]
mov esi, eax
lea edi, [ebp - 0x28]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp dword [ebp - 0x24], 1
sbb eax, eax
inc eax
mov edx, dword [ebp - 4]
mov byte [edx + 0xa5], al
test al, al
je 0x31308b9d
mov eax, dword [ebp - 4]
cmp byte [eax + 0xd3], 0
je 0x31308b78
mov eax, dword [ebp - 4]
cmp byte [eax + 0x34], 0
je 0x31308b78
mov eax, dword [ebp - 4]
mov byte [eax + 0x34], 0
mov eax, dword [ebp - 4]
call fcn.313083c8
push 0
push 0
push 0xb000
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x170]
push eax
call sub.user32.dll_GetMenuItemRect
jmp 0x31308ffc
mov eax, dword [ebp - 4]
call fcn.31308368
push 0
push 0
push 0xb001
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x170]
push eax
call sub.user32.dll_GetMenuItemRect
jmp 0x31308ffc
mov eax, dword [ebp - 8]
mov esi, eax
lea edi, [ebp - 0x38]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
cmp dword [ebp - 0x34], 0
je 0x31308c0e
cmp byte [0x314398dc], 0
jne 0x31308c02
mov eax, dword [ebp - 4]
call fcn.313083c8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xb4]
test eax, eax
je 0x31308c02
call fcn.312fd368
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xb4], edx
push ebp
call fcn.313087f4
pop ecx
jmp 0x31308ffc
push ebp
call fcn.313087f4
pop ecx
mov eax, dword [ebp - 4]
cmp dword [eax + 0xb4], 0
jne 0x31308c41
cmp byte [0x314398dc], 0
jne 0x31308c41
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x170]
call fcn.312fd2a4
mov edx, dword [ebp - 4]
mov dword [edx + 0xb4], eax
mov eax, dword [ebp - 4]
call fcn.31308370
jmp 0x31308ffc
mov esi, dword [ebp - 8]
mov esi, dword [esi + 8]
push esi
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
push eax
mov eax, dword [ebp - 8]
add ebx, 0xbc00
push ebx
mov eax, dword [ebp - 8]
push esi
call sub.user32.dll_GetSysColorBrush
mov edx, dword [ebp - 8]
mov dword [edx + 0xc], eax
jmp 0x31308ffc
mov eax, dword [ebp - 8]
mov esi, eax
lea edi, [ebp - 0x48]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x31308cb7
cmp byte [eax + 0x29a], 1
jne 0x31308cb7
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 4]
mov dx, 0x16
mov eax, dword [ebp - 4]
call fcn.3130a720
mov eax, dword [0x314452e8]
call fcn.31309c28
cmp dword [ebp - 0x44], 0
je 0x31308ffc
call fcn.312361ac
jmp 0x31308ffc
mov eax, dword [ebp - 8]
mov dword [eax + 0xc], 1
jmp 0x31308ffc
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 8]
mov eax, dword [ebp - 8]
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.3130b458
and eax, 0x7f
mov edx, dword [ebp - 8]
mov dword [edx + 0xc], eax
jmp 0x31308ffc
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.31309624
test al, al
je 0x31308ffc
mov eax, dword [ebp - 8]
mov dword [eax + 0xc], 1
jmp 0x31308ffc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
test eax, eax
je 0x31308ffc
mov ebx, eax
mov eax, ebx
call fcn.312e1c94
test eax, eax
je 0x31308ffc
mov eax, ebx
call fcn.312e1c94
push eax
call sub.user32.dll_GetClientRect
test eax, eax
je 0x31308ffc
mov eax, ebx
call fcn.312e1c94
push eax
call sub.user32.dll_GetCursor
test eax, eax
je 0x31308ffc
mov byte [0x314398c8], 0
call sub.user32.dll_CharNextW
mov esi, eax
mov eax, ebx
call fcn.312e1c94
push eax
call sub.user32.dll_GetWindowTextW
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 4]
mov edx, 0x112
mov eax, ebx
call fcn.312da23c
push esi
call sub.user32.dll_GetWindowTextW
mov byte [0x314398c8], 1
mov eax, dword [ebp - 8]
mov dword [eax + 0xc], 1
jmp 0x31308ffc
mov eax, dword [ebp - 4]
cmp word [eax + 0x142], 0
je 0x31308ddf
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x144]
call dword [ebx + 0x140]
mov eax, dword [0x314452e8]
mov ebx, dword [eax + 0x44]
test ebx, ebx
je 0x31308e2f
mov eax, dword [0x314452e8]
cmp byte [eax + 0xd3], 0
je 0x31308e2f
mov eax, ebx
call fcn.312e1c94
push eax
call sub.user32.dll_GetClientRect
test eax, eax
jne 0x31308e2f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
call fcn.312e1c94
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0xd4]
je 0x31308e2f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xd4]
push eax
call sub.user32.dll_GetWindowTextW
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0xd4], edx
jmp 0x31308ffc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x170]
push eax
call sub.user32.dll_CreateIcon
mov edx, dword [ebp - 4]
mov dword [edx + 0xd4], eax
mov eax, dword [ebp - 4]
cmp word [eax + 0x13a], 0
je 0x31308ffc
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x13c]
call dword [ebx + 0x138]
jmp 0x31308ffc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x170]
call fcn.312fd0d4
test eax, eax
jne 0x31308ffc
call sub.user32.dll_CharNextW
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x170]
jne 0x31308ffc
xor eax, eax
call fcn.312fd404
test eax, eax
je 0x31308ffc
push eax
call sub.user32.dll_GetWindowTextW
jmp 0x31308ffc
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 8]
mov edx, dword [ebp - 8]
movzx edx, word [edx + 4]
mov eax, dword [ebp - 4]
call fcn.31309fdc
jmp 0x31308ffc
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 0
jne 0x31308efe
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push dword [eax + 4]
push dword [eax]
mov eax, dword [ebp - 4]
call fcn.313098c0
jmp 0x31308ffc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push dword [eax + 4]
push dword [eax]
mov eax, dword [ebp - 4]
call fcn.31309920
jmp 0x31308ffc
mov eax, dword [ebp - 8]
cmp dword [eax + 4], 1
jne 0x31308f33
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xb8]
mov edx, dword [ebp - 8]
mov dword [edx + 0xc], eax
jmp 0x31308ffc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
mov edx, dword [ebp - 4]
mov dword [edx + 0xb8], eax
jmp 0x31308ffc
mov edx, dword [ebp - 8]
mov edx, dword [edx + 4]
mov eax, dword [0x3143fed0]
mov eax, dword [eax]
call fcn.312e7be4
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.31308778
push ebp
call fcn.313087f4
pop ecx
jmp 0x31308ffc
mov eax, dword [0x314452ec]
call fcn.313076d0
push ebp
call fcn.313087f4
pop ecx
jmp 0x31308ffc
call fcn.312edf30
call fcn.312ee098
mov dword [ebp - 0x18], 0xb051
xor eax, eax
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0xc], eax
mov eax, dword [0x314452ec]
call fcn.3130689c
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x31308ffc
inc ebx
xor esi, esi
mov edx, esi
mov eax, dword [0x314452ec]
call fcn.31306888
lea edx, [ebp - 0x18]
call fcn.312dd7ec
inc esi
dec ebx
jne 0x31308fb7
jmp 0x31308ffc
mov eax, dword [ebp - 8]
mov eax, dword [eax + 8]
push eax
mov ecx, dword [ebp - 8]
mov ecx, dword [ecx + 4]
mov dx, 0xb056
mov eax, dword [ebp - 4]
call fcn.3130a720
jmp 0x31308ffc
xor eax, eax
call fcn.31270b88
jmp 0x31308ffc
push ebp
call fcn.313087f4
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x3130901b
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret