Function at 0x402180
Capabilities:
Get graphical window text

Disassembly:
mov eax, dword [0x411168]
sub esp, 0xf8
test eax, eax
push ebx
push ebp
push esi
push edi
je 0x40286f
mov eax, dword [0x420fc4]
mov ebp, dword [sym.imp.USER32.dll_GetWindowDC]
cmp eax, 1
jne 0x402208
push 0
call ebp
mov ecx, dword [0x4110ac]
mov edx, dword [0x4110b0]
mov esi, eax
mov eax, dword [0x4110a4]
push 0
mov dword [esp + 0x34], 0
lea eax, [eax + eax*4]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], edx
lea eax, [eax + eax*4]
mov dword [esp + 0x38], eax
call dword [sym.imp.GDI32.dll_CreateSolidBrush]
push 0xd
push esi
mov edi, eax
call dword [sym.imp.GDI32.dll_SetROP2]
lea eax, [esp + 0x30]
push edi
push eax
push esi
call dword [sym.imp.USER32.dll_FillRect]
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
push esi
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
mov ecx, dword [0x420fbc]
push 0x50
push 0x413b34
push ecx
call dword [sym.imp.USER32.dll_GetWindowTextA]
test eax, eax
je 0x402340
mov esi, 0x420ffc
mov eax, 0x413b34
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x402256
test cl, cl
je 0x402252
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x402256
add eax, 2
add esi, 2
test cl, cl
jne 0x40222e
xor eax, eax
jmp 0x40225b
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x402340
mov eax, dword [0x420fc4]
test eax, eax
jne 0x402340
mov edi, 0x413b34
or ecx, 0xffffffff
xor eax, eax
push str.Command_Prompt
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x413b34
mov eax, ecx
mov esi, edi
mov edi, 0x420ffc
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call fcn.00406420
mov edx, eax
add esp, 8
test edx, edx
jne 0x4022ce
mov edi, 0x413b34
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x40]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x402329
mov edi, 0x412428
or ecx, 0xffffffff
xor eax, eax
lea ebx, [esp + 0x40]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.Command_Prompt
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
or ecx, 0xffffffff
add edi, edx
lea edx, [esp + 0x40]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
lea eax, [esp + 0x40]
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [0x420fec]
push eax
push ecx
call dword [sym.imp.USER32.dll_SetWindowTextA]
mov edx, dword [0x420fd4]
mov eax, dword [0x420fd8]
mov ebx, dword [sym.imp.KERNEL32.dll_ReadProcessMemory]
push 0
push 0xfd0
push 0x413b88
push edx
push eax
call ebx
test eax, eax
je 0x402376
mov ecx, 0x3e8
mov esi, 0x413bb4
mov edi, 0x414ba8
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x420fd8]
push 0
push 0x100
push 0x4138d0
push 0x400
push ecx
call ebx
test eax, eax
jne 0x4023cc
mov edx, dword [0x420fd8]
push eax
push 0x100
push 0x4138d0
push 0x400
push edx
call ebx
test eax, eax
jne 0x40286f
mov eax, dword [0x420fec]
push eax
call dword [sym.imp.USER32.dll_DestroyWindow]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf8
ret
mov cl, byte [0x413921]
mov dl, byte [0x413920]
mov byte [0x416b48], cl
mov cl, byte [0x413930]
mov al, byte [0x413931]
mov byte [0x413a75], dl
mov byte [0x413a74], cl
mov ecx, 0x3e8
mov edi, 0x414ba8
mov esi, 0x41ff84
xor edx, edx
mov byte [0x416b49], al
repe cmpsd dword [esi], dword es:[edi]
mov eax, edx
setne al
mov esi, eax
cmp esi, 1
mov dword [esp + 0x2c], esi
jne 0x4027cb
cmp dword [0x420ff8], esi
jne 0x40242e
call fcn.00401e70
mov eax, dword [0x420fc4]
test eax, eax
jne 0x402446
mov ecx, dword [0x420fec]
push ecx
call dword [sym.imp.USER32.dll_GetDC]
jmp 0x40244a
push 0
call ebp
mov edx, dword [0x420ff0]
mov dword [esp + 0x1c], eax
push edx
push eax
call dword [sym.imp.GDI32.dll_SelectObject]
xor esi, esi
mov byte [esp + 0x16], 0
xor edi, edi
push 0
push edi
push esi
call fcn.004017d0
lea ebp, [edi + 1]
push 0
mov bl, al
push ebp
push esi
mov byte [esp + 0x40], bl
mov dword [esp + 0x3c], ebp
call fcn.004017d0
push 0
push edi
push esi
mov byte [esp + 0x3c], al
call fcn.00401810
push 0
push ebp
push esi
mov byte [esp + 0x50], al
call fcn.00401810
add esp, 0x30
cmp edi, 0x4f
mov byte [esp + 0x17], al
je 0x40266a
cmp byte [esp + 0x16], bl
je 0x40266a
mov al, byte [esp + 0x17]
mov cl, byte [esp + 0x20]
cmp cl, al
jne 0x40266a
cmp bl, 0xa1
jb 0x40266a
cmp bl, 0xfe
ja 0x40266a
mov al, byte [esp + 0x18]
cmp al, 0xa1
jb 0x40266a
cmp al, 0xfe
ja 0x40266a
cmp edi, 0x4a
jl 0x4024fd
mov ebp, 1
jmp 0x40266c
lea ecx, [edi + 2]
push 0
push ecx
push esi
call fcn.004017d0
lea edx, [edi + 3]
push 0
push edx
push esi
mov byte [esp + 0x2d], al
call fcn.004017d0
mov byte [esp + 0x2c], al
lea eax, [edi + 4]
push 0
push eax
push esi
call fcn.004017d0
lea ecx, [edi + 5]
push 0
push ecx
push esi
mov byte [esp + 0x43], al
call fcn.004017d0
add esp, 0x30
cmp bl, 0xd5
je 0x40264a
cmp bl, 0xc8
je 0x40264a
cmp bl, 0xc9
jne 0x402588
cmp byte [esp + 0x18], 0xcd
jne 0x402601
cmp byte [esp + 0x15], 0xcd
jne 0x402601
cmp byte [esp + 0x14], 0xcd
jne 0x402601
cmp byte [esp + 0x13], 0xcd
jne 0x402601
cmp al, 0xcd
jne 0x402601
jmp 0x40266a
cmp bl, 0xc3
jne 0x4025b2
cmp byte [esp + 0x18], 0xc4
jne 0x402601
cmp byte [esp + 0x15], 0xc4
jne 0x402601
cmp byte [esp + 0x14], 0xc4
jne 0x402601
cmp byte [esp + 0x13], 0xc4
jne 0x402601
cmp al, 0xc4
jne 0x402601
jmp 0x40266a
cmp bl, 0xc0
jne 0x4025dc
cmp byte [esp + 0x18], 0xc4
jne 0x402601
cmp byte [esp + 0x15], 0xc4
jne 0x402601
cmp byte [esp + 0x14], 0xc4
jne 0x402601
cmp byte [esp + 0x13], 0xc4
jne 0x402601
cmp al, 0xc4
jne 0x402601
jmp 0x40266a
cmp bl, 0xda
jne 0x402601
cmp byte [esp + 0x18], 0xc4
jne 0x402601
cmp byte [esp + 0x15], 0xc4
jne 0x402601
cmp byte [esp + 0x14], 0xc4
jne 0x402601
cmp byte [esp + 0x13], 0xc4
jne 0x402601
cmp al, 0xc4
je 0x40266a
mov cl, byte [esp + 0x18]
mov ebp, 1
cmp bl, cl
jne 0x40266c
cmp cl, byte [esp + 0x15]
jne 0x40266c
cmp cl, byte [esp + 0x14]
jne 0x40266c
cmp cl, byte [esp + 0x13]
jne 0x40266c
cmp cl, al
jne 0x40266c
cmp bl, 0xc4
je 0x402642
cmp bl, 0xcd
je 0x402642
cmp bl, 0xb0
je 0x402642
cmp bl, 0xb1
je 0x402642
cmp bl, 0xb2
je 0x402642
cmp bl, 0xdf
jne 0x40266c
xor ebp, ebp
mov byte [esp + 0x16], bl
jmp 0x40267b
cmp byte [esp + 0x18], 0xcd
jne 0x402601
cmp byte [esp + 0x15], 0xcd
jne 0x402601
cmp byte [esp + 0x14], 0xcd
jne 0x402601
cmp byte [esp + 0x13], 0xcd
jne 0x402601
cmp al, 0xcd
jne 0x402601
xor ebp, ebp
cmp byte [esp + 0x16], bl
je 0x402677
mov byte [esp + 0x16], 0
test ebp, ebp
jne 0x4026a9
push 1
push edi
push esi
call fcn.004017d0
add esp, 0xc
cmp bl, al
jne 0x402771
push 1
push edi
push esi
call fcn.00401810
mov cl, byte [esp + 0x2c]
add esp, 0xc
cmp cl, al
jne 0x402771
jmp 0x402723
cmp ebp, 1
jne 0x402723
push ebp
push edi
push esi
call fcn.004017d0
add esp, 0xc
cmp bl, al
jne 0x4026fa
push ebp
push edi
push esi
call fcn.00401810
mov cl, byte [esp + 0x2c]
add esp, 0xc
cmp cl, al
jne 0x4026fa
mov ebx, dword [esp + 0x24]
push ebp
push ebx
push esi
call fcn.004017d0
mov cl, byte [esp + 0x24]
add esp, 0xc
cmp cl, al
jne 0x4026fa
push ebp
push ebx
push esi
call fcn.00401810
mov cl, byte [esp + 0x23]
add esp, 0xc
cmp cl, al
je 0x402721
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x20]
push eax
push ecx
push edi
push esi
push edx
call fcn.004019a0
add esp, 0x18
cmp ebp, 1
jne 0x402723
mov ebx, dword [esp + 0x24]
mov edi, ebx
inc edi
cmp edi, 0x50
jl 0x402465
mov edi, dword [esp + 0x1c]
push 0
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
call fcn.004019a0
push 0
push 0
push 0xffffffffffffffff
push 0xffffffffffffffff
push edi
call fcn.00401850
add esp, 0x2c
inc esi
cmp esi, 0x19
jl 0x40245e
mov eax, dword [0x420fc4]
test eax, eax
jne 0x40279a
mov ecx, dword [0x420fec]
mov eax, edi
push eax
push ecx
jmp 0x4027a1
cmp bl, 0x20
jb 0x40277f
cmp bl, 0x80
jb 0x4026fa
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x1c]
push edx
push eax
push edi
push esi
push ecx
call fcn.00401850
add esp, 0x14
jmp 0x402723
mov edx, dword [esp + 0x1c]
push edx
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
call fcn.00401e90
mov ecx, 0x3e8
mov esi, 0x414ba8
mov edi, 0x41ff84
mov dword [0x42105c], 0
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x2c]
mov ecx, dword [0x414b54]
mov eax, dword [0x421058]
mov edx, ecx
sub edx, eax
cmp edx, 5
jge 0x4027e3
test eax, eax
jne 0x402837
mov al, byte [0x416b48]
mov dword [0x421058], ecx
cmp byte [0x411160], al
jne 0x402823
mov cl, byte [0x413a75]
mov al, byte [0x411161]
cmp al, cl
jne 0x402823
mov dl, byte [0x416b49]
mov al, byte [0x411162]
cmp al, dl
jne 0x402823
mov al, byte [0x413a74]
mov cl, byte [0x411163]
cmp cl, al
je 0x402837
call fcn.00401e70
call fcn.00401e90
mov dword [0x42105c], 0
test esi, esi
jne 0x40286f
mov eax, dword [0x42105c]
inc eax
cmp eax, 9
mov dword [0x42105c], eax
jne 0x40286f
mov eax, dword [0x420ff8]
mov dword [0x42105c], esi
test eax, eax
je 0x40286a
call fcn.00401e70
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf8
ret
call fcn.00401e90
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf8
ret