Function at 0x4104bf
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0xc
mov eax, dword [0x41524c]
push ebx
push ebp
push esi
push edi
push dword [eax + 0x4c0]
xor ebx, ebx
push ebx
push 0x80
push dword [eax + 0x4d0]
call dword [sym.imp.USER32.dll_SendMessageW]
call fcn.004047a1
push ebx
push ebx
push ebx
push ebx
mov dword [esp + 0x24], eax
call fcn.0040585d
add esp, 0x10
cmp dword [0x415264], ebx
je 0x410571
xor edi, edi
cmp dword [0x415054], ebx
jl 0x410571
xor esi, esi
push dword [esp + 0x14]
mov ecx, dword [0x41524c]
push dword [ecx + 0x4d0]
mov eax, dword [0x415264]
push dword [0x4152cc]
add eax, esi
push eax
add eax, 0xb0
push eax
call fcn.00409d7e
mov ecx, dword [0x415264]
mov dword [esi + ecx + 0x150], eax
mov eax, dword [0x415264]
add esp, 0x14
cmp dword [esi + eax + 0x150], ebx
je 0x410562
push ebx
push ebx
push edi
push 6
call fcn.0040585d
add esp, 0x10
inc edi
add esi, 0x154
cmp edi, dword [0x415054]
jle 0x41050e
cmp dword [0x415250], ebx
mov ebp, dword [sym.imp.USER32.dll_EnableWindow]
je 0x410671
cmp dword [0x415040], ebx
mov dword [esp + 0x18], ebx
jl 0x410671
xor esi, esi
push dword [esp + 0x14]
mov ecx, dword [0x41524c]
push dword [ecx + 0x4d0]
mov eax, dword [0x415250]
push dword [0x4152cc]
add eax, esi
push eax
add eax, 0xb0
push eax
call fcn.00409c81
mov ecx, dword [0x415250]
mov dword [esi + ecx + 0x360], eax
mov eax, dword [0x415250]
add eax, esi
mov edi, dword [eax + 0x360]
add esp, 0x14
cmp edi, ebx
je 0x410657
xor ecx, ecx
cmp dword [eax + 0x35c], ebx
sete cl
push ecx
push edi
call ebp
mov eax, dword [0x415250]
push 0xfffffffffffffffc
push dword [esi + eax + 0x360]
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, dword [0x415250]
push fcn.0040931a
mov dword [esi + ecx + 0x364], eax
mov eax, dword [0x415250]
push 0xfffffffffffffffc
push dword [esi + eax + 0x360]
call dword [sym.imp.USER32.dll_SetWindowLongW]
push ebx
push ebx
push dword [esp + 0x20]
push 1
call fcn.0040585d
mov ecx, dword [0x415250]
xor eax, eax
cmp dword [esi + ecx + 0x35c], ebx
sete al
push eax
push ebx
push dword [esp + 0x30]
push 0xf
call fcn.0040585d
add esp, 0x20
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
add esi, 0x368
cmp eax, dword [0x415040]
jle 0x410595
cmp dword [0x41525c], ebx
je 0x4106e8
xor edi, edi
cmp dword [0x41504c], ebx
jl 0x4106e8
xor esi, esi
push dword [esp + 0x14]
mov ecx, dword [0x41524c]
push dword [ecx + 0x4d0]
mov eax, dword [0x41525c]
push dword [0x4152cc]
add eax, esi
push eax
add eax, 0xb0
push eax
call fcn.00409d9f
mov ecx, dword [0x41525c]
mov dword [esi + ecx + 0x8b0], eax
mov eax, dword [0x41525c]
add esp, 0x14
cmp dword [esi + eax + 0x8b0], ebx
je 0x4106d9
push ebx
push ebx
push edi
push 3
call fcn.0040585d
add esp, 0x10
inc edi
add esi, 0x8b4
cmp edi, dword [0x41504c]
jle 0x410685
cmp dword [0x415260], ebx
mov edi, 0xf1
je 0x4107ca
cmp dword [0x415050], ebx
mov dword [esp + 0x18], ebx
jl 0x4107ca
xor esi, esi
push dword [esp + 0x14]
mov ecx, dword [0x41524c]
push dword [ecx + 0x4d0]
mov eax, dword [0x415260]
push dword [0x4152cc]
add eax, esi
push eax
add eax, 0xb0
push eax
call fcn.00409d3c
mov ecx, dword [0x415260]
mov dword [esi + ecx + 0x360], eax
mov eax, dword [0x415260]
add eax, esi
mov ecx, dword [eax + 0x360]
add esp, 0x14
cmp ecx, ebx
je 0x4107b0
xor edx, edx
cmp dword [eax + 0x358], 0xffffffff
setg dl
push edx
push ecx
call ebp
mov eax, dword [0x415260]
push ebx
add eax, esi
push dword [eax + 0x35c]
push edi
push dword [eax + 0x360]
call dword [sym.imp.USER32.dll_SendMessageW]
push ebx
push ebx
push dword [esp + 0x20]
push 4
call fcn.0040585d
mov ecx, dword [0x415260]
xor eax, eax
cmp dword [esi + ecx + 0x358], 0xffffffff
setg al
push eax
push ebx
push dword [esp + 0x30]
push 0xa
call fcn.0040585d
add esp, 0x20
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
add esi, 0x364
cmp eax, dword [0x415050]
jle 0x41070b
cmp dword [0x415268], ebx
je 0x4108a7
cmp dword [0x415058], ebx
mov dword [esp + 0x18], ebx
jl 0x4108a7
xor esi, esi
push dword [esp + 0x14]
mov ecx, dword [0x41524c]
push dword [ecx + 0x4d0]
mov eax, dword [0x415268]
push dword [0x4152cc]
add eax, esi
push eax
add eax, 0xb0
push eax
call fcn.00409d5d
mov ecx, dword [0x415268]
mov dword [esi + ecx + 0x360], eax
mov eax, dword [0x415268]
add eax, esi
mov ecx, dword [eax + 0x360]
add esp, 0x14
cmp ecx, ebx
je 0x41088d
xor edx, edx
cmp dword [eax + 0x358], 0xffffffff
setg dl
push edx
push ecx
call ebp
mov eax, dword [0x415268]
push ebx
add eax, esi
push dword [eax + 0x35c]
push edi
push dword [eax + 0x360]
call dword [sym.imp.USER32.dll_SendMessageW]
push ebx
push ebx
push dword [esp + 0x20]
push 5
call fcn.0040585d
mov ecx, dword [0x415268]
xor eax, eax
cmp dword [esi + ecx + 0x358], 0xffffffff
setg al
push eax
push ebx
push dword [esp + 0x30]
push 0xd
call fcn.0040585d
add esp, 0x20
inc dword [esp + 0x18]
mov eax, dword [esp + 0x18]
add esi, 0x368
cmp eax, dword [0x415058]
jle 0x4107e8
mov eax, dword [0x41526c]
cmp eax, ebx
je 0x4109ec
xor edi, edi
cmp dword [0x41505c], ebx
jl 0x4109ec
xor esi, esi
push dword [esp + 0x14]
mov ecx, dword [0x41524c]
push dword [ecx + 0x4d0]
add eax, esi
push dword [0x4152cc]
push eax
add eax, 0xb0
push eax
call fcn.00409cf2
mov ecx, dword [0x41526c]
mov dword [esi + ecx + 0x3558], eax
mov eax, dword [0x41526c]
add esp, 0x14
cmp dword [esi + eax + 0x3558], ebx
je 0x4109d9
cmp word [esi + eax + 0x358], bx
mov byte [esp + 0x13], bl
je 0x410967
movzx ecx, byte [esp + 0x13]
imul ecx, ecx, 0xa0
add ecx, esi
lea ecx, [ecx + eax + 0x358]
push ecx
push ebx
push 0x143
push dword [esi + eax + 0x3558]
call dword [sym.imp.USER32.dll_SendMessageW]
inc byte [esp + 0x13]
cmp byte [esp + 0x13], 0x50
mov eax, dword [0x41526c]
je 0x410967
movzx ecx, byte [esp + 0x13]
imul ecx, ecx, 0xa0
add ecx, esi
cmp word [ecx + eax + 0x358], bx
jne 0x410918
add eax, esi
lea ecx, [eax + 0xb0]
push ecx
push ebx
push 0x14d
push dword [eax + 0x3558]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [0x41526c]
push 0xfffffffffffffffc
push dword [esi + eax + 0x3558]
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, dword [0x41526c]
push 0x4095ba
mov dword [esi + ecx + 0x355c], eax
mov eax, dword [0x41526c]
push 0xfffffffffffffffc
push dword [esi + eax + 0x3558]
call dword [sym.imp.USER32.dll_SetWindowLongW]
push ebx
push ebx
push edi
push 7
call fcn.0040585d
push 1
push ebx
push edi
push 0x10
call fcn.0040585d
mov eax, dword [0x41526c]
add esp, 0x20
inc edi
add esi, 0x3560
cmp edi, dword [0x41505c]
jle 0x4108c4
cmp dword [0x415270], ebx
je 0x410a5f
xor edi, edi
cmp dword [0x415060], ebx
jl 0x410a5f
xor esi, esi
mov eax, dword [0x415270]
mov eax, dword [esi + eax + 0xa0]
cmp eax, ebx
jbe 0x410a43
push 0x405c91
push eax
lea eax, [edi + 1]
push eax
push ebx
call dword [sym.imp.USER32.dll_SetTimer]
mov ecx, dword [0x415270]
mov dword [esi + ecx + 0x2ac], eax
mov eax, dword [0x415270]
add eax, esi
cmp dword [eax + 0x2ac], ebx
jne 0x410a43
mov dword [eax + 0xa0], ebx
push ebx
push ebx
push edi
push 8
call fcn.0040585d
add esp, 0x10
inc edi
add esi, 0x2b0
cmp edi, dword [0x415060]
jle 0x410a00
cmp dword [0x415258], ebx
je 0x410b8f
xor ebp, ebp
cmp dword [0x415048], ebx
jl 0x410b8f
xor esi, esi
mov eax, dword [0x415258]
mov ecx, dword [0x41524c]
add eax, esi
push dword [eax + 0xab8]
push dword [esp + 0x18]
push dword [ecx + 0x4d0]
push dword [0x4152cc]
push eax
push ebx
call fcn.00409e3f
mov ecx, dword [0x415258]
mov dword [esi + ecx + 0xabc], eax
mov eax, dword [0x415258]
add eax, esi
add esp, 0x18
cmp dword [eax + 0xabc], ebx
je 0x410b7c
add eax, 0xb0
push eax
xor edi, edi
call fcn.004043ee
test eax, eax
mov eax, dword [0x415258]
pop ecx
je 0x410aef
lea eax, [esi + eax + 0xb0]
push eax
call fcn.0040446a
pop ecx
jmp 0x410b39
lea eax, [esi + eax + 0x8b0]
push eax
call fcn.00402c8c
test eax, eax
mov eax, dword [0x415258]
pop ecx
je 0x410b12
push ebx
push ebx
lea eax, [esi + eax + 0x8b0]
push eax
jmp 0x410b31
add eax, esi
cmp word [eax + 0x8b0], 0x23
jne 0x410b3b
add eax, 0x8b2
push 0x401758
push eax
call fcn.00402b60
pop ecx
push eax
push ebx
call fcn.0040f8cf
add esp, 0xc
mov edi, eax
mov ecx, dword [0x415258]
xor eax, eax
cmp dword [esi + ecx + 0xab8], 0x800
setne al
push eax
push ebx
push ebp
push 0x11
call fcn.0040585d
add esp, 0x10
cmp edi, ebx
je 0x410b7c
mov eax, dword [0x415258]
push edi
push dword [esi + eax + 0xabc]
call dword [sym.imp.USER32.dll_SetWindowTextW]
push edi
call sub.MSVCRT.dll_free
pop ecx
inc ebp
add esi, 0xac0
cmp ebp, dword [0x415048]
jle 0x410a7b
cmp dword [0x41527c], ebx
je 0x410bd0
xor esi, esi
cmp dword [0x415068], ebx
jl 0x410bd0
xor edi, edi
mov eax, dword [0x41527c]
add eax, edi
push dword [eax + 4]
push dword [eax]
mov eax, dword [0x41524c]
push esi
push dword [eax + 0x4d0]
call dword [sym.imp.USER32.dll_RegisterHotKey]
inc esi
add edi, 0x210
cmp esi, dword [0x415068]
jle 0x410ba3
cmp dword [0x415274], ebx
je 0x410bf3
mov eax, dword [0x41524c]
push 1
push dword [eax + 0x4c0]
push dword [eax + 0x4d0]
call fcn.0040b9a6
add esp, 0xc
cmp dword [0x415280], ebx
je 0x410c95
xor edi, edi
cmp dword [0x415070], ebx
jl 0x410c95
xor esi, esi
mov eax, dword [0x41524c]
push dword [eax + 0x4d0]
mov eax, dword [0x415280]
push dword [0x4152cc]
add eax, esi
push eax
call fcn.00409ca2
mov ecx, dword [0x415280]
mov dword [esi + ecx + 0xb4], eax
mov eax, dword [0x415280]
add eax, esi
mov ecx, dword [eax + 0xb4]
add esp, 0xc
cmp ecx, ebx
je 0x410c82
mov eax, dword [eax + 0xb0]
cmp eax, 0x64
jle 0x410c74
cmp eax, ebx
jge 0x410c74
push ebx
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
push ebx
push ebx
push edi
push 9
call fcn.0040585d
add esp, 0x10
jmp 0x410c82
push ebx
push eax
push 0x402
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
inc edi
add esi, 0xb8
cmp edi, dword [0x415070]
jle 0x410c0f
cmp dword [0x415254], ebx
je 0x410db3
xor ebp, ebp
cmp dword [0x415044], ebx
jl 0x410db3
xor esi, esi
mov eax, dword [0x415254]
add eax, esi
xor ecx, ecx
cmp dword [eax + 0x4c0], ebx
jle 0x410cc5
push 0x20
pop ecx
push ecx
push dword [esp + 0x18]
mov ecx, dword [0x41524c]
push dword [ecx + 0x4d0]
push dword [0x4152cc]
push eax
add eax, 0xb0
push eax
call fcn.00409de9
mov ecx, dword [0x415254]
mov dword [esi + ecx + 0x4c4], eax
mov eax, dword [0x415254]
add eax, esi
mov edi, dword [eax + 0x4c4]
add esp, 0x18
cmp edi, ebx
je 0x410da0
xor ecx, ecx
cmp dword [eax + 0x4c0], 0xffffffff
setg cl
push ecx
push edi
call dword [sym.imp.USER32.dll_EnableWindow]
mov eax, dword [0x415254]
push 0xfffffffffffffffc
push dword [esi + eax + 0x4c4]
call dword [sym.imp.USER32.dll_GetWindowLongW]
mov ecx, dword [0x415254]
push 0x409681
mov dword [esi + ecx + 0x4c8], eax
mov eax, dword [0x415254]
push 0xfffffffffffffffc
push dword [esi + eax + 0x4c4]
call dword [sym.imp.USER32.dll_SetWindowLongW]
push ebx
push ebx
push ebp
push 2
call fcn.0040585d
mov ecx, dword [0x415254]
xor eax, eax
cmp dword [esi + ecx + 0x4c0], ebx
setge al
push eax
push ebx
push ebp
push 0xe
call fcn.0040585d
mov ecx, dword [0x415254]
xor eax, eax
cmp dword [esi + ecx + 0x4c0], ebx
sete al
push eax
push ebx
push ebp
push 0x12
call fcn.0040585d
add esp, 0x30
inc ebp
add esi, 0x4cc
cmp ebp, dword [0x415044]
jle 0x410cb1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret