Function at 0x52ff5c
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0xd
push 0
push 0
dec ecx
jne 0x52ff64
push ecx
push ebx
push esi
push edi
mov ebx, edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x5304a9
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + pe_nt_image_headers32]
mov edi, eax
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.0051c27c
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
mov edx, 1
mov ecx, dword [eax]
call dword [ecx + 0x14]
test al, al
je 0x530063
cmp word [ebx], 0x20
jb 0x52fff0
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
mov esi, eax
movzx eax, word [ebx]
mov word [ebp - 0x16], ax
lea edx, [ebp - 0x38]
mov eax, esi
call fcn.004c22f4
mov eax, dword [ebp - 0x38]
movzx edx, word [ebp - 0x16]
mov ecx, dword [eax]
call dword [ecx + 0x34]
test al, al
jne 0x52fff0
push 0
call sub.user32.dll_MessageBeep
mov word [ebx], 0
movzx eax, word [ebx]
cmp eax, 0x18
jg 0x530006
je 0x530015
sub eax, 8
je 0x530015
sub eax, 0xe
je 0x530015
jmp 0x530063
sub eax, 0x1b
je 0x53003c
add eax, 0xfffffffb
sub eax, 0xffe0
jae 0x530063
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
mov esi, eax
lea edx, [ebp - 0x3c]
mov eax, esi
call fcn.004c22f4
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax]
call dword [edx + 0x24]
test al, al
jne 0x530063
mov word [ebx], 0
jmp 0x530063
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
mov esi, eax
lea edx, [ebp - 0x40]
mov eax, esi
call fcn.004c22f4
mov eax, dword [ebp - 0x40]
mov edx, dword [eax]
call dword [edx + 0x28]
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x124]
mov eax, dword [ebp - 4]
cmp byte [eax + 0x2f0], 0
je 0x53044c
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x2fe]
sub al, 2
jae 0x53009e
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 4]
call fcn.0051434c
mov edx, dword [ebp - 0x44]
mov eax, dword [ebp - 4]
add eax, 0x2f8
call fcn.0040948c
jmp 0x5300d2
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x2f4]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x31c]
jb 0x5300c4
mov eax, dword [ebp - 4]
add eax, 0x2f8
call fcn.004090ac
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x2f4], eax
movzx eax, word [ebx]
sub ax, 8
je 0x53011e
dec ax
je 0x5300ef
sub ax, 0x12
jne 0x5302b5
jmp 0x53044c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x2f1], 0
je 0x530430
mov eax, dword [ebp - 4]
call fcn.0052e6b8
test al, al
je 0x530430
xor edx, edx
mov eax, dword [ebp - 4]
call fcn.0052e6dc
jmp 0x530430
push ebp
lea edx, [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.0052fe74
pop ecx
test al, al
je 0x530141
push ebp
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x10]
call fcn.0052feb8
pop ecx
jmp 0x53029f
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x2fe]
sub al, 2
jae 0x53016d
lea edx, [ebp - 0x48]
mov eax, dword [ebp - 4]
call fcn.0051434c
mov eax, dword [ebp - 0x48]
test eax, eax
je 0x530166
sub eax, 4
mov eax, dword [eax]
test eax, eax
setg al
jmp 0x53016f
xor eax, eax
test al, al
je 0x530257
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.0051434c
mov esi, dword [ebp - 0x10]
jmp 0x530188
dec esi
mov edx, esi
mov eax, dword [ebp - 0xc]
call fcn.00428dc8
cmp al, 2
je 0x530187
lea eax, [ebp - 8]
push eax
mov ecx, esi
dec ecx
mov edx, 1
mov eax, dword [ebp - 0xc]
call fcn.00409fac
push 0
push 0xffffffffffffffff
push 0x14e
mov eax, dword [ebp - 4]
call fcn.0051d57c
push eax
call sub.user32.dll_SendMessageW
lea eax, [ebp - 0x50]
push eax
mov edx, dword [ebp - 0x14]
inc edx
mov ecx, 0x7fffffff
mov eax, dword [ebp - 0xc]
call fcn.00409fac
mov ecx, dword [ebp - 0x50]
lea eax, [ebp - 0x4c]
mov edx, dword [ebp - 8]
call fcn.00409e3c
mov edx, dword [ebp - 0x4c]
mov eax, dword [ebp - 4]
call fcn.005143a0
mov eax, esi
dec eax
movzx eax, ax
dec esi
movzx edx, si
shl edx, 0x10
or eax, edx
push eax
push 0
push 0x142
mov eax, dword [ebp - 4]
call fcn.0051d57c
push eax
call sub.user32.dll_SendMessageW
lea edx, [ebp - 0x54]
mov eax, dword [ebp - 4]
call fcn.0051434c
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 4]
add eax, 0x2f8
call fcn.0040948c
jmp 0x53029f
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x2f8]
test esi, esi
je 0x530243
sub esi, 4
mov esi, dword [esi]
mov eax, dword [ebp - 4]
add eax, 0x2f8
mov ecx, 1
mov edx, esi
call fcn.00409ff4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
call fcn.00409570
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
call fcn.00428dc8
cmp al, 2
je 0x530231
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
test eax, eax
je 0x53028b
sub eax, 4
mov eax, dword [eax]
mov edx, dword [ebp - 4]
add edx, 0x2f8
mov ecx, 1
xchg edx, eax
call fcn.00409ff4
mov word [ebx], 0
mov eax, dword [ebp - 4]
mov si, 0xffae
call fcn.004077b4
jmp 0x530430
push ebp
lea edx, [ebp - 0x14]
lea eax, [ebp - 0x10]
call fcn.0052fe74
pop ecx
mov eax, dword [ebp - 4]
cmp byte [eax + 0x2fe], 2
jae 0x5302e8
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
test eax, eax
je 0x5302e0
sub eax, 4
mov eax, dword [eax]
cmp eax, dword [ebp - 0x10]
setg al
jmp 0x5302ea
xor eax, eax
test al, al
je 0x530355
mov eax, dword [ebp - 4]
mov esi, dword [eax + 0x2f8]
test esi, esi
je 0x530300
sub esi, 4
mov esi, dword [esi]
lea eax, [ebp - 0x58]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
mov ecx, dword [ebp - 0x10]
mov edx, 1
call fcn.00409fac
push dword [ebp - 0x58]
lea eax, [ebp - 0x5c]
movzx edx, word [ebx]
call fcn.00409c10
push dword [ebp - 0x5c]
lea eax, [ebp - 0x60]
push eax
mov edx, dword [ebp - 0x14]
inc edx
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2f8]
mov ecx, esi
call fcn.00409fac
push dword [ebp - 0x60]
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00409ec4
jmp 0x530374
lea eax, [ebp - 0x64]
movzx edx, word [ebx]
call fcn.00409c10
mov ecx, dword [ebp - 0x64]
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x2f8]
lea eax, [ebp - 0xc]
call fcn.00409e3c
mov eax, dword [ebp - 4]
cmp byte [eax + 0x2f1], 0
je 0x530396
mov eax, dword [ebp - 4]
call fcn.0052e6b8
test al, al
jne 0x530396
mov dl, 1
mov eax, dword [ebp - 4]
call fcn.0052e6dc
movzx eax, word [ebx]
cmp ax, 0xd800
jb 0x5303a5
cmp ax, 0xdfff
jbe 0x5303a9
xor eax, eax
jmp 0x5303ab
mov al, 1
test al, al
je 0x53041c
push 0
push 0
push 0
mov eax, dword [ebp - 4]
call fcn.0051d57c
push eax
lea eax, [ebp - 0x34]
push eax
call sub.user32.dll_PeekMessageW
test eax, eax
je 0x530430
cmp dword [ebp - 0x30], 0x102
jne 0x530430
lea eax, [ebp - 0x6c]
movzx edx, word [ebp - 0x2c]
call fcn.00409c10
mov ecx, dword [ebp - 0x6c]
lea eax, [ebp - 0x68]
mov edx, dword [ebp - 0xc]
call fcn.00409e3c
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 4]
call fcn.005304b8
test al, al
je 0x530430
push 1
push 0
push 0
mov eax, dword [ebp - 4]
call fcn.0051d57c
push eax
lea eax, [ebp - 0x34]
push eax
call sub.user32.dll_PeekMessageW
mov word [ebx], 0
jmp 0x530430
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.005304b8
test al, al
je 0x530430
mov word [ebx], 0
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + pe_nt_image_headers32]
cmp edi, eax
je 0x53044c
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x20]
call fcn.004c2458
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5304b0
lea eax, [ebp - 0x6c]
mov edx, 6
call fcn.0040910c
lea eax, [ebp - 0x54]
call fcn.004090ac
lea eax, [ebp - 0x50]
mov edx, 2
call fcn.0040910c
lea eax, [ebp - 0x48]
mov edx, 2
call fcn.0040910c
lea eax, [ebp - 0x40]
mov edx, dword [0x493968]
mov ecx, 3
call fcn.0040a548
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.0040910c
ret