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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
xor ebx, ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x30], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.004042a4
mov eax, dword [ebp - 0xc]
call fcn.004042a4
mov eax, dword [ebp + 8]
call fcn.004042a4
xor eax, eax
push ebp
push 0x580124
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [0x949dbc], 0
mov dword [ebp - 0x38], 0x96
xor eax, eax
mov dword [ebp - 0x34], eax
cmp byte [0x949dd5], 0
je 0x57fbf1
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0x34]
inc eax
call fcn.004094a8
push dword [ebp - 0x44]
push 0x580140
push dword [ebp + 8]
lea eax, [ebp - 0x40]
mov edx, 3
call fcn.004041b0
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0xc]
call fcn.0057f8c8
mov eax, dword [ebp - 0xc]
call fcn.0044c49c
test al, al
jne 0x57fc05
mov eax, dword [ebp - 0xc]
call fcn.0073b764
inc dword [ebp - 0x34]
mov byte [ebp - 0xd], 1
mov byte [ebp - 0xe], 0
mov byte [ebp - 0xf], 0
mov eax, dword [ebp - 4]
mov byte [eax], 1
mov dword [ebp - 0x18], 0xfffffcf7
mov byte [ebp - 0x10], 0
call sub.KERNEL32.DLL_GetTickCount
mov dword [0x949dc0], eax
call sub.KERNEL32.DLL_GetTickCount
mov dword [0x949dc4], eax
mov eax, 0x949dd0
call fcn.00403e74
lea eax, [ebp - 0x20]
call fcn.00403e74
mov byte [ebp - 0x21], 0
lea eax, [ebp - 0x30]
mov edx, 0x580150
call fcn.00403f0c
mov byte [ebp - 0x1c], 1
call fcn.0073b630
test al, al
je 0x57fefc
call fcn.0073b560
mov word [ebp - 0x1a], ax
cmp word [ebp - 0x1a], 0
jge 0x57fc83
mov byte [ebp - 0x1c], 0
jmp 0x57fc89
mov al, byte [ebp - 0x1a]
mov byte [ebp - 0x1b], al
cmp byte [ebp - 0x1c], 0
je 0x57fefc
cmp byte [0x949dd5], 0
je 0x57fcb2
lea eax, [ebp - 0x40]
mov dl, byte [ebp - 0x1b]
call fcn.00404018
mov edx, dword [ebp - 0x40]
lea eax, [ebp - 0x20]
call fcn.004040f8
mov eax, dword [0x949dc8]
cmp byte [eax], 0x81
jne 0x57fe0b
lea eax, [ebp - 0x40]
mov dl, byte [ebp - 0x1b]
call fcn.00404018
mov edx, dword [ebp - 0x40]
mov eax, 0x949dd0
call fcn.004040f8
cmp byte [ebp - 0x1b], 0x81
jne 0x57fce2
mov byte [ebp - 0x10], 1
cmp byte [ebp - 0x10], 0
jne 0x57fcf2
mov eax, 0x949dd0
call fcn.00403e74
mov eax, dword [0x949dd0]
call fcn.004040f0
cmp eax, 4
jne 0x57fd3c
cmp dword [ebp - 0x18], 0xfffffcf7
jne 0x57fd3c
mov eax, dword [0x949dc8]
mov edx, dword [0x949dd0]
call fcn.00404200
jne 0x57fd22
mov byte [ebp - 0x21], 1
jmp 0x57fd26
mov byte [ebp - 0x21], 0
mov eax, dword [0x949dd0]
movzx eax, byte [eax + 2]
mov dword [ebp - 0x18], eax
mov eax, 0x949dd0
call fcn.00403e74
mov eax, dword [0x949dd0]
call fcn.004040f0
mov edx, dword [ebp - 0x18]
inc edx
cmp eax, edx
jl 0x57fd57
cmp dword [ebp - 0x18], 0xfffffcf7
jne 0x57fd61
cmp dword [ebp - 0x18], 0
jne 0x57fefc
mov eax, dword [0x949dd0]
call fcn.004040f0
dec eax
jle 0x57fd8f
push 0x949dd0
mov eax, dword [0x949dd0]
call fcn.004040f0
mov ecx, eax
dec ecx
mov edx, 1
mov eax, dword [0x949dd0]
call fcn.004042f4
cmp dword [0x949dcc], 0
je 0x57fdc3
lea eax, [ebp - 0x2c]
push eax
mov ecx, 2
mov edx, 1
mov eax, dword [0x949dd0]
call fcn.004042f4
mov eax, dword [0x949dcc]
mov edx, dword [ebp - 0x2c]
call fcn.00404200
je 0x57fdc3
mov byte [ebp - 0x21], 0
cmp byte [ebp - 0x21], 0
je 0x57fdd4
mov eax, dword [ebp - 4]
mov byte [eax], 0
jmp 0x57fefc
mov eax, 0x949dd0
call fcn.00403e74
mov byte [ebp - 0x10], 0
mov dword [ebp - 0x18], 0xfffffcf7
call sub.KERNEL32.DLL_GetTickCount
sub eax, dword [0x949dc0]
cdq
xor eax, edx
sub eax, edx
cmp eax, dword [ebp - 0x38]
jle 0x57fefc
mov byte [ebp - 0xe], 1
jmp 0x57fefc
mov al, byte [ebp - 0x1b]
sub al, 0xa
je 0x57fe2e
sub al, 3
je 0x57fe2e
lea eax, [ebp - 0x40]
mov dl, byte [ebp - 0x1b]
call fcn.00404018
mov edx, dword [ebp - 0x40]
mov eax, 0x949dd0
call fcn.004040f8
mov dword [ebp - 0x14], 2
lea eax, [ebp - 0x30]
call fcn.004042c0
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x30]
mov ebx, dword [ebp - 0x14]
mov cl, byte [ecx + ebx - 1]
mov byte [eax + edx - 2], cl
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 9
jne 0x57fe35
lea eax, [ebp - 0x30]
call fcn.004042c0
mov dl, byte [ebp - 0x1b]
mov byte [eax + 7], dl
mov eax, dword [ebp - 0x30]
mov edx, dword [0x949dc8]
call fcn.00404200
jne 0x57fe86
mov byte [ebp - 0x1b], 0
mov eax, 0x949dd0
mov edx, dword [ebp - 0x30]
call fcn.00403ec8
cmp byte [ebp - 0x1b], 0xa
jne 0x57fefc
mov byte [ebp - 0x1b], 0
lea eax, [ebp - 0x28]
mov edx, dword [0x949dd0]
call fcn.00403f0c
mov eax, 0x949dd0
call fcn.00403e74
lea eax, [ebp - 0x2c]
push eax
mov ecx, 8
mov edx, 1
mov eax, dword [ebp - 0x28]
call fcn.004042f4
mov eax, dword [ebp - 0x2c]
mov edx, dword [0x949dc8]
call fcn.00404200
jne 0x57fee3
mov eax, dword [ebp - 4]
mov byte [eax], 0
mov eax, 0x949dd0
mov edx, dword [ebp - 0x28]
call fcn.00403ec8
jmp 0x57fefc
call sub.KERNEL32.DLL_GetTickCount
sub eax, dword [0x949dc0]
cdq
xor eax, edx
sub eax, edx
cmp eax, dword [ebp - 0x38]
jle 0x57fefc
mov byte [ebp - 0xe], 1
call sub.KERNEL32.DLL_GetTickCount
sub eax, dword [0x949dc4]
cdq
xor eax, edx
sub eax, edx
cmp eax, 0xdac
jle 0x57ff17
mov byte [ebp - 0xf], 1
mov eax, dword [0x8417e4]
mov eax, dword [eax]
call fcn.0042d188
cmp byte [0x949dbc], 0
je 0x57ff72
lea edx, [ebp - 8]
mov eax, dword [0x84100c]
call fcn.00405e74
push 0x40
lea edx, [ebp - 0x40]
mov eax, dword [0x840618]
call fcn.00405e74
mov eax, dword [ebp - 0x40]
call fcn.004042b4
push eax
mov eax, dword [ebp - 8]
call fcn.004042b4
mov edx, eax
mov eax, dword [0x8417e4]
mov eax, dword [eax]
pop ecx
call fcn.0042d500
mov byte [ebp - 0xd], 0
mov eax, dword [ebp - 4]
mov byte [eax], 0
mov eax, dword [ebp - 4]
mov al, byte [eax]
xor al, 1
or al, byte [ebp - 0xe]
jne 0x57ff88
cmp byte [ebp - 0xf], 0
je 0x57fc5c
cmp byte [0x949dd5], 0
je 0x58006f
mov edx, 0x580164
mov eax, 0x949dd8
call fcn.0040619e
mov eax, 0x949dd8
call fcn.004066f5
call fcn.00402898
mov eax, 0x949dd8
call fcn.0040699f
call fcn.00402898
mov edx, 0x580178
mov eax, 0x949dd8
call fcn.004044b0
call fcn.0040699f
call fcn.00402898
mov eax, dword [ebp - 0x20]
call fcn.004040f0
test eax, eax
jle 0x580051
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x14]
cmp byte [eax + edx - 1], 0x81
jne 0x58000d
mov eax, 0x949dd8
call fcn.0040699f
call fcn.00402898
lea ecx, [ebp - 0x40]
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x14]
movzx eax, byte [eax + edx - 1]
mov edx, 2
call fcn.004094d8
lea eax, [ebp - 0x40]
mov edx, 0x580190
call fcn.004040f8
mov edx, dword [ebp - 0x40]
mov eax, 0x949dd8
call fcn.004044b0
call fcn.00406219
call fcn.00402898
inc dword [ebp - 0x14]
dec dword [ebp - 0x3c]
jne 0x57fff1
mov eax, 0x949dd8
call fcn.0040699f
call fcn.00402898
mov eax, 0x949dd8
call fcn.00406308
call fcn.00402898
cmp byte [ebp - 0xe], 0
je 0x58007f
cmp dword [ebp - 0x34], 0xa
jl 0x57fbb9
mov al, byte [ebp - 0xe]
or al, byte [ebp - 0xf]
je 0x5800df
lea edx, [ebp - 0x40]
mov eax, dword [0x841654]
call fcn.00405e74
push dword [ebp - 0x40]
push 0x580190
push dword [ebp - 8]
lea eax, [ebp - 8]
mov edx, 3
call fcn.004041b0
push 0x40
lea edx, [ebp - 0x40]
mov eax, dword [0x840ca0]
call fcn.00405e74
mov eax, dword [ebp - 0x40]
call fcn.004042b4
push eax
mov eax, dword [ebp - 8]
call fcn.004042b4
mov edx, eax
mov eax, dword [0x8417e4]
mov eax, dword [eax]
pop ecx
call fcn.0042d500
mov byte [ebp - 0xd], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x58012b
lea eax, [ebp - 0x44]
mov edx, 2
call fcn.00403e98
lea eax, [ebp - 0x30]
mov edx, 3
call fcn.00403e98
lea eax, [ebp - 0x20]
call fcn.00403e74
lea eax, [ebp - 0xc]
mov edx, 2
call fcn.00403e98
lea eax, [ebp + 8]
call fcn.00403e74
ret