Function at 0x5796e4
Capabilities:
Check for time delay via gettickcount
Get graphical window text
Print debug messages

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffe0
mov esi, dword [0x586404]
xor edi, edi
mov eax, dword [esi]
mov eax, dword [eax + 0x5d0]
mov edx, eax
add edx, 0xffffffce
sub edx, 0x50
jb 0x5798a8
sub edx, 0x14
jb 0x579bd0
sub edx, 0x2a
jb 0x579bf3
sub edx, 2
jae 0x57a116
xor ebx, ebx
mov byte [0x58d251], 0
jmp 0x57975e
call sub.kernel32.dll_GetCurrentProcessId
mov edx, esp
call fcn.00579180
push 0x3e8
call sub.kernel32.dll_Sleep_1
inc ebx
cmp ebx, 3
jle 0x57975e
push 0x57a12c
call sub.kernel32.dll_OutputDebugStringA
mov eax, dword [esi]
mov byte [eax + 0x379], 1
cmp byte [0x58d251], 0
je 0x57972f
xor eax, eax
mov dword [0x58d24c], eax
push 0x1d501a1
push 0
push 0x201
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x1d501a1
push 0
push 0x202
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x1f4
call sub.kernel32.dll_Sleep_1
push 0
push 0xd
push pe_nt_image_headers32
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x14
call sub.kernel32.dll_Sleep_1
push 0
push 0xd
push 0x101
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x1f4
call sub.kernel32.dll_Sleep_1
push 0x1d501a1
push 0
push 0x201
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x1d501a1
push 0
push 0x202
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x1f4
call sub.kernel32.dll_Sleep_1
push 0
push 0xd
push pe_nt_image_headers32
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x14
call sub.kernel32.dll_Sleep_1
push 0
push 0xd
push 0x101
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [0x5861b4]
xor edx, edx
mov dword [eax], edx
xor eax, eax
mov dword [0x58d24c], eax
push 0xfa0
call sub.kernel32.dll_Sleep_1
call fcn.004b9988
mov ebx, eax
jmp 0x579893
mov eax, dword [0x586a74]
cmp byte [eax], 0
jne 0x57a116
push 0x1f4
call sub.kernel32.dll_Sleep_1
call fcn.004b9988
sub eax, ebx
cmp eax, 0xbb8
ja 0x57a116
mov eax, dword [0x586750]
mov eax, dword [eax]
cmp byte [eax + 0xa4], 0
je 0x579869
jmp 0x57a116
sub eax, 0x63
jne 0x5799f5
push 0x7d0
call sub.kernel32.dll_Sleep_1
push 0x57a140
call sub.kernel32.dll_GetModuleHandleA_1
mov ebp, eax
test ebp, ebp
jbe 0x57998b
mov eax, 0x57a154
call fcn.004b8ff8
mov eax, dword [0x5869f4]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x5798f1
sub eax, 4
mov eax, dword [eax]
mov ecx, eax
test ecx, ecx
jle 0x57992c
mov ebx, 1
lea eax, [ebp + 0x767c0]
xor edx, edx
push edx
push eax
mov eax, ebx
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
sub eax, 1
sbb edx, 0
mov edx, dword [0x5869f4]
mov edx, dword [edx]
movzx edx, byte [edx + ebx - 1]
mov byte [eax], dl
inc ebx
dec ecx
jne 0x5798fc
mov eax, dword [0x586940]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x579944
sub eax, 4
mov eax, dword [eax]
mov ecx, eax
test ecx, ecx
jle 0x57997f
mov ebx, 1
lea eax, [ebp + 0x30c0c]
xor edx, edx
push edx
push eax
mov eax, ebx
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
sub eax, 1
sbb edx, 0
mov edx, dword [0x586940]
mov edx, dword [edx]
movzx edx, byte [edx + ebx - 1]
mov byte [eax], dl
inc ebx
dec ecx
jne 0x57994f
mov eax, dword [esi]
mov dword [eax + 0x5d0], 0x35
push 0
push 0xd
push pe_nt_image_headers32
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0
push 0xd
push 0x101
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x3e8
call sub.kernel32.dll_Sleep_1
push 0xfa0129
push 0
push 0x201
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0xfa0129
push 0
push 0x202
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x3e8
call sub.kernel32.dll_Sleep_1
mov eax, dword [esi]
mov eax, dword [eax + 0x5d0]
sub eax, 0x81
jne 0x579aa4
push 0x3e8
call sub.kernel32.dll_Sleep_1
push 0
push 0xd
push pe_nt_image_headers32
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0
push 0xd
push 0x101
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x3e8
call sub.kernel32.dll_Sleep_1
push 0
push 0xd
push pe_nt_image_headers32
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0
push 0xd
push 0x101
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x3e8
call sub.kernel32.dll_Sleep_1
push 0x11a012a
push 0
push 0x201
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x11a012a
push 0
push 0x202
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x11a0271
push 0
push 0x201
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x11a0271
push 0
push 0x202
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x320
call sub.kernel32.dll_Sleep_1
push 0x1490246
push 0
push 0x201
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x1490246
push 0
push 0x202
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x320
call sub.kernel32.dll_Sleep_1
mov eax, dword [esi]
cmp dword [eax + 0x5d0], 0x33
jne 0x579b93
push 0x3e8
call sub.kernel32.dll_Sleep_1
push 0
push 0xd
push pe_nt_image_headers32
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0
push 0xd
push 0x101
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x3e8
call sub.kernel32.dll_Sleep_1
push 0xb4019a
push 0
push 0x201
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0xb4019a
push 0
push 0x202
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x1f4
call sub.kernel32.dll_Sleep_1
push 0xb400cf
push 0
push 0x201
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0xb400cf
push 0
push 0x202
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x3e8
call sub.kernel32.dll_Sleep_1
jmp 0x57a116
push 0
push 0
push 0x7f1
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0xbb8
call sub.kernel32.dll_Sleep_1
jmp 0x57a116
add eax, 0xffffff6a
sub eax, 4
jb 0x579c0e
sub eax, 3
je 0x579c0e
add eax, 0xffffffe9
sub eax, 0xa
jae 0x579d94
lea eax, [esp + 0xc]
push eax
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_GetWindowRect
mov eax, dword [esi]
cmp dword [eax + 0x37c], 0
jg 0x579c3b
mov eax, dword [esi]
cmp dword [eax + 0x5d0], 0x9d
jne 0x579ce0
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fld xword [0x57a164]
fmulp st(1)
call fcn.00403430
add ax, 0x34
mov edx, dword [esp + 0x14]
sub edx, dword [esp + 0xc]
sar edx, 1
jns 0x579c6b
adc edx, 0
movzx edx, dx
movzx eax, ax
shl eax, 0x10
or edx, eax
mov eax, edx
push eax
push 0
push 0x201
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fld xword [0x57a164]
fmulp st(1)
call fcn.00403430
add ax, 0x34
mov edx, dword [esp + 0x14]
sub edx, dword [esp + 0xc]
sar edx, 1
jns 0x579cbb
adc edx, 0
movzx edx, dx
movzx eax, ax
shl eax, 0x10
or edx, eax
mov eax, edx
push eax
push 0
push 0x202
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
jmp 0x579d80
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fld xword [0x57a164]
fmulp st(1)
call fcn.00403430
sub ax, 0x34
mov edx, dword [esp + 0x14]
sub edx, dword [esp + 0xc]
sar edx, 1
jns 0x579d10
adc edx, 0
movzx edx, dx
movzx eax, ax
shl eax, 0x10
or edx, eax
mov eax, edx
push eax
push 0
push 0x201
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fld xword [0x57a164]
fmulp st(1)
call fcn.00403430
sub ax, 0x34
mov edx, dword [esp + 0x14]
sub edx, dword [esp + 0xc]
sar edx, 1
jns 0x579d60
adc edx, 0
movzx edx, dx
movzx eax, ax
shl eax, 0x10
or edx, eax
mov eax, edx
push eax
push 0
push 0x202
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
mov eax, 0x57a178
call fcn.004b8ff8
push 0x3e8
call sub.kernel32.dll_Sleep_1
mov eax, 0x57a18c
call fcn.004b8ff8
push 0
push 0xd
push pe_nt_image_headers32
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0
push 0xd
push 0x101
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x7d0
call sub.kernel32.dll_Sleep_1
mov eax, 0x57a19c
call fcn.004b8ff8
mov eax, dword [esi]
mov eax, dword [eax + 0x5d0]
mov edx, eax
sub edx, 0x9c
jne 0x579e1f
push 0xa800a1
push 0
push 0x201
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0xa800a1
push 0
push 0x202
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
jmp 0x579f7c
cmp eax, 0x9b
jne 0x579eda
push 0
push 0
push 0x7f1
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00521dd0
push 0x1f4
call sub.kernel32.dll_Sleep_1
mov eax, 0x57a1ac
call fcn.004b8ff8
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0xc]
cmp eax, 0x384
jge 0x579e9d
push 0x11e0177
push 0
push 0x201
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x11e0177
push 0
push 0x202
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
jmp 0x579ecb
push 0x1ab01d6
push 0
push 0x201
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x1ab01d6
push 0
push 0x202
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
mov eax, 0x57a1bc
call fcn.004b8ff8
jmp 0x579f7c
push 0xfa0
call sub.kernel32.dll_Sleep_1
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fld xword [0x57a164]
fmulp st(1)
call fcn.00403430
mov edx, dword [esp + 0x14]
sub edx, dword [esp + 0xc]
sar edx, 1
jns 0x579f10
adc edx, 0
movzx edx, dx
movzx eax, ax
shl eax, 0x10
or edx, eax
mov eax, edx
push eax
push 0
push 0x201
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [esp + 0x18]
sub eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fld xword [0x57a164]
fmulp st(1)
call fcn.00403430
mov edx, dword [esp + 0x14]
sub edx, dword [esp + 0xc]
sar edx, 1
jns 0x579f5c
adc edx, 0
movzx edx, dx
movzx eax, ax
shl eax, 0x10
or edx, eax
mov eax, edx
push eax
push 0
push 0x202
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x7d0
call sub.kernel32.dll_Sleep_1
mov eax, 0x57a1cc
call fcn.004b8ff8
mov eax, dword [esi]
cmp dword [eax + 0x5d0], 0x96
jne 0x579fa8
push 0xbb8
call sub.kernel32.dll_Sleep_1
mov eax, dword [esi]
mov eax, dword [eax + 0x5d0]
sub eax, 0x9a
je 0x579fc3
add eax, 0xfffffffd
sub eax, 3
jae 0x57a10c
lea eax, [esp + 0xc]
push eax
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_GetClientRect
mov eax, dword [esi]
mov eax, dword [eax + 0x5d0]
add eax, 0xffffff62
sub eax, 2
jb 0x57a0ee
mov ebx, dword [esp + 0x14]
sub ebx, dword [esp + 0xc]
cmp ebx, 0x320
jg 0x57a02c
push 0x14a015e
push 0
push 0x201
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x14a015e
push 0
push 0x202
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
jmp 0x57a0e4
mov dword [esp + 0x1c], ebx
fild dword [esp + 0x1c]
fmul dword [0x57a1d4]
call fcn.00403424
mov ebx, eax
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fld xword [0x57a1d8]
fmulp st(1)
fsub dword [0x57a1e4]
call fcn.00403424
movzx edx, bx
movzx eax, ax
shl eax, 0x10
or edx, eax
mov eax, edx
push eax
push 0
push 0x201
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fmul dword [0x57a1d4]
call fcn.00403424
mov ebx, eax
mov eax, dword [esp + 0x14]
sub eax, dword [esp + 0xc]
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fld xword [0x57a1d8]
fmulp st(1)
fsub dword [0x57a1e4]
call fcn.00403424
movzx edx, bx
movzx eax, ax
shl eax, 0x10
or edx, eax
mov eax, edx
push eax
push 0
push 0x202
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x3e8
call sub.kernel32.dll_Sleep_1
push 0
push 1
push 0x7f1
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
push eax
call sub.user32.dll_SendMessageA
push 0x7d0
call sub.kernel32.dll_Sleep_1
mov eax, 0x57a1f0
call fcn.004b8ff8
push 0x3e8
call sub.kernel32.dll_Sleep_1
mov eax, edi
add esp, 0x20
pop ebp
pop edi
pop esi
pop ebx
ret