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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffb8
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 4], eax
mov ecx, 7
lea eax, [ebp - 0x20]
mov edx, dword [0x4010ac]
call fcn.004071ec
xor eax, eax
push ebp
push 0x508d04
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x53f180], 0
je 0x50841d
xor eax, eax
call fcn.004ea8ac
mov byte [ebp - 0x21], 0
mov eax, dword [0x537da0]
mov eax, dword [eax]
shr eax, 0x10
cmp eax, 0x600
mov eax, dword [0x5379f4]
setae byte [eax]
xor edx, edx
push ebp
push 0x508c45
push dword fs:[edx]
mov dword fs:[edx], esp
cmp dword [0x53f190], 0
je 0x50845b
mov dl, 1
mov eax, dword [0x53f190]
call fcn.004bae2c
cmp byte [0x53f17e], 0
je 0x5084c8
xor eax, eax
push ebp
push 0x50849b
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x53f184], 0
jne 0x508487
mov eax, 0x508d20
call fcn.004bb914
jmp 0x508491
mov eax, dword [0x53f184]
call fcn.004bbaf8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x5084c8
mov eax, 0x508d88
call fcn.004bbb54
lea eax, [ebp - 0x2c]
mov ecx, dword [0x53f168]
mov edx, 0x508e00
call fcn.00406914
mov eax, dword [ebp - 0x2c]
call fcn.004bbb54
lea eax, [ebp - 0x30]
mov ecx, dword [0x53f16c]
mov edx, 0x508e40
call fcn.00406914
mov eax, dword [ebp - 0x30]
call fcn.004bbb54
lea eax, [ebp - 0x38]
call fcn.00489fc4
mov ecx, dword [ebp - 0x38]
lea eax, [ebp - 0x34]
mov edx, 0x508e6c
call fcn.00406914
mov eax, dword [ebp - 0x34]
call fcn.004bbb54
call fcn.004ea974
xor eax, eax
call fcn.00507cf8
mov dword [0x53f174], eax
mov dl, 1
mov eax, dword [0x507020]
call fcn.004bea10
mov dword [0x5379a4], eax
mov ecx, dword [0x53f16c]
mov edx, dword [0x53f174]
mov eax, dword [0x5379a4]
call fcn.004c1630
lea ecx, [ebp - 0x3c]
mov eax, dword [0x5379a4]
mov edx, dword [eax + 0x18]
mov al, 0xb7
call fcn.0048d3fc
mov edx, dword [ebp - 0x3c]
mov eax, 0x53f178
call fcn.00406448
mov eax, dword [0x5379a4]
test byte [eax + 0x1d], 0x20
je 0x5085c3
mov eax, dword [0x537ad4]
cmp byte [eax], 0
jne 0x5085c3
push 1
push 1
mov eax, dword [0x53f178]
call fcn.004064d4
push eax
mov eax, dword [0x537e7c]
mov eax, dword [eax + 0x2fc]
call fcn.004064d4
mov ecx, 0x30
pop edx
call fcn.004eb25c
call fcn.0041c668
mov eax, dword [0x5379a4]
test byte [eax + 0x1d], 1
je 0x508606
call fcn.0048b074
test al, al
jne 0x508606
push 1
push 1
mov eax, dword [0x53f178]
call fcn.004064d4
push eax
mov eax, dword [0x537e7c]
mov eax, dword [eax + 0x1dc]
call fcn.004064d4
mov ecx, 0x30
pop edx
call fcn.004eb25c
call fcn.0041c668
mov eax, dword [0x53f174]
xor edx, edx
mov dword [0x53f174], edx
call fcn.00404098
mov al, 2
call fcn.00507cf8
mov dword [0x53f174], eax
lea eax, [ebp - 0x20]
push eax
push 6
mov ecx, 0x85050900
mov dx, 0x20
mov eax, dword [0x5379a4]
call fcn.004beedc
test al, al
jne 0x50864b
mov eax, 0x508eac
call fcn.0048e88c
cmp dword [0x53f190], 0
je 0x508666
lea eax, [ebp - 4]
mov edx, dword [0x537d4c]
mov edx, dword [edx]
call fcn.0040532c
jmp 0x508671
lea edx, [ebp - 4]
mov eax, dword [ebp - 0x20]
call fcn.0050836c
mov eax, dword [0x5379a4]
cmp byte [eax + 0x10], 0
je 0x508699
mov eax, dword [0x537ad4]
cmp byte [eax], 0
jne 0x508690
mov eax, 0x508f44
call fcn.0048e88c
mov al, 1
call fcn.004eb74c
jmp 0x5086a0
xor eax, eax
call fcn.004eb74c
call fcn.004e8a64
cmp dword [ebp - 4], 0
je 0x5087a8
call fcn.004e8440
call fcn.004e8d9c
mov eax, dword [0x537a04]
mov edx, dword [0x53f168]
call fcn.00406448
mov eax, dword [0x537de0]
mov edx, dword [0x5379a4]
mov edx, dword [edx + 0x14]
call fcn.00406448
movzx eax, byte [0x53f17f]
or al, byte [0x53f180]
mov edx, dword [0x537b64]
mov byte [edx], al
mov eax, dword [0x537fd8]
mov edx, dword [ebp - 0x18]
call fcn.00406448
mov eax, dword [0x537c8c]
mov edx, dword [ebp - 0x14]
call fcn.00406448
mov eax, dword [0x537af0]
mov edx, dword [ebp - 0x10]
call fcn.00406448
mov eax, dword [0x537b90]
mov edx, dword [ebp - 0xc]
call fcn.00406448
mov eax, dword [ebp - 8]
test eax, eax
je 0x508731
sub eax, 4
mov eax, dword [eax]
mov edx, eax
add edx, edx
mov eax, dword [ebp - 8]
call fcn.005082b4
mov dl, 1
mov eax, dword [0x503aec]
call fcn.00504304
mov edx, dword [0x537bb4]
mov dword [edx], eax
mov eax, 0x4ea34c
mov edx, dword [0x537bb4]
mov edx, dword [edx]
mov dword [edx + 0xc], eax
mov eax, 0x4ea564
mov edx, dword [0x537bb4]
mov edx, dword [edx]
mov dword [edx + 0x10], eax
mov eax, 0x4ea570
mov edx, dword [0x537bb4]
mov edx, dword [edx]
mov dword [edx + 0x14], eax
mov eax, 0x4ea57c
mov edx, dword [0x537bb4]
mov edx, dword [edx]
mov dword [edx + 0x18], eax
mov ecx, dword [0x537c50]
mov ecx, dword [ecx]
mov eax, dword [0x537bb4]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.005043fc
xor edx, edx
push ebp
push 0x508bf1
push dword fs:[edx]
mov dword fs:[edx], esp
xor edx, edx
push ebp
push 0x508b24
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x537bb4]
cmp dword [eax], 0
je 0x508837
xor edx, edx
push ebp
push 0x50880b
push dword fs:[edx]
mov dword fs:[edx], esp
push 0
push 0
push 1
xor eax, eax
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0x11
lea ecx, [ebp - 0x44]
mov eax, dword [0x537bb4]
mov eax, dword [eax]
mov edx, 0x508fd8
call fcn.005045b8
pop dword fs:[0]
add esp, 8
jmp 0x508824
test al, al
jne 0x508837
mov eax, 0x509068
call fcn.004bbb54
call fcn.0041c668
cmp byte [0x53f17f], 0
jne 0x508871
cmp byte [0x53f180], 0
jne 0x508871
push 0x124
push 1
push 6
mov eax, dword [0x5379a4]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x53f178]
mov al, 0x27
call fcn.00507404
cmp eax, 6
je 0x508871
call fcn.0041c668
xor edx, edx
xor eax, eax
call fcn.00507b6c
jmp 0x50889f
push 0x31
push 1
push 2
mov eax, dword [0x5379a4]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x53f178]
mov al, 0xbd
call fcn.00507404
dec eax
je 0x50889f
call fcn.0041c668
mov eax, dword [0x5379a4]
call fcn.004bef30
test al, al
jne 0x50887c
jmp 0x5088c2
push 0xa
call sub.kernel32.dll_Sleep_1
mov eax, dword [0x537e6c]
mov eax, dword [eax]
call fcn.004871f0
mov eax, dword [0x538058]
cmp byte [eax], 0
jne 0x5088af
mov eax, dword [0x5379f4]
mov byte [eax], 0
lea ecx, [ebp - 0x48]
mov eax, dword [0x5379a4]
mov edx, dword [eax + 0x18]
mov al, 0xa7
call fcn.0048d3fc
mov edx, dword [ebp - 0x48]
mov eax, dword [0x537e6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x170]
call fcn.0048b8c8
call fcn.00507248
xor edx, edx
mov al, 1
call fcn.00507b6c
call sub.kernel32.dll_GetTickCount_1
mov dword [ebp - 0x28], eax
mov eax, dword [0x5379a4]
mov edx, dword [ebp - 0x28]
mov dword [eax + 0x24], edx
mov ecx, 0x507688
mov dl, 1
mov eax, dword [0x5379a4]
call fcn.004bfd00
mov byte [ebp - 0x22], al
movzx eax, byte [ebp - 0x22]
mov edx, dword [0x537d94]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0x11
lea edx, [ebp - 0x44]
xor ecx, ecx
mov eax, 0x5090d0
call fcn.004bbdd8
mov eax, dword [0x5379a4]
cmp byte [eax + 0x1c], 0
jne 0x50896d
mov eax, dword [0x5379a4]
test byte [eax + 0x1d], 8
jne 0x50896d
xor eax, eax
jmp 0x50896f
mov al, 1
mov byte [ebp - 0x23], al
mov eax, dword [0x537bb4]
cmp dword [eax], 0
je 0x508a0d
mov eax, dword [0x537bb4]
mov eax, dword [eax]
mov edx, 0x5090fc
call fcn.005044a8
test al, al
je 0x508a0d
cmp byte [ebp - 0x23], 0
jne 0x508a03
xor eax, eax
push ebp
push 0x5089e8
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
push 0
xor eax, eax
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0x11
lea ecx, [ebp - 0x44]
mov eax, dword [0x537bb4]
mov eax, dword [eax]
mov edx, 0x5090fc
call fcn.005045b8
test al, al
je 0x5089de
mov byte [ebp - 0x23], 1
mov eax, 0x509120
call fcn.004bbb54
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x508a0d
mov eax, 0x509200
call fcn.004bbb54
movzx eax, byte [ebp - 0x23]
mov edx, dword [0x537d94]
mov eax, dword [edx + eax*4]
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0x11
lea edx, [ebp - 0x44]
xor ecx, ecx
mov eax, 0x5092b8
call fcn.004bbdd8
cmp byte [0x53f180], 0
jne 0x508a68
mov eax, dword [0x537e6c]
mov eax, dword [eax]
call fcn.004871f0
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebp - 0x28]
cmp eax, 0x3e8
jae 0x508a68
push 0xff
push 0xa
push 0
push 0
push 0
call sub.user32.dll_MsgWaitForMultipleObjects
jmp 0x508a39
mov eax, dword [0x537b04]
mov eax, dword [eax]
mov edx, dword [0x537b04]
xor ecx, ecx
mov dword [edx], ecx
call fcn.00404098
mov dl, 1
mov al, 2
call fcn.00507b6c
cmp byte [ebp - 0x23], 0
jne 0x508ac8
cmp byte [0x53f17f], 0
jne 0x508b11
cmp byte [0x53f180], 0
jne 0x508b11
push 0x10040
push 1
push 1
mov eax, dword [0x5379a4]
mov edx, dword [eax + 0x18]
movzx eax, byte [ebp - 0x22]
movzx eax, byte [eax + 0x5379b0]
mov ecx, dword [0x53f178]
call fcn.00507404
jmp 0x508b11
cmp byte [0x53f181], 0
jne 0x508b01
cmp byte [0x53f180], 0
jne 0x508afd
push 0x10024
push 1
push 6
mov eax, dword [0x5379a4]
mov edx, dword [eax + 0x18]
mov ecx, dword [0x53f178]
mov al, 0xbb
call fcn.00507404
cmp eax, 6
jne 0x508b01
mov byte [ebp - 0x21], 1
cmp byte [ebp - 0x21], 0
jne 0x508b11
mov eax, 0x5092fc
call fcn.004bbb54
mov dl, 1
mov al, 3
call fcn.00507b6c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x508b38
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x508bfb
xor edx, edx
push ebp
push 0x508b73
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x537b04]
mov eax, dword [eax]
mov edx, dword [0x537b04]
xor ecx, ecx
mov dword [edx], ecx
call fcn.00404098
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x508b82
mov eax, dword [0x537bb4]
cmp dword [eax], 0
je 0x508bde
xor eax, eax
push ebp
push 0x508bc5
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
xor eax, eax
mov dword [ebp - 0x44], eax
mov byte [ebp - 0x40], 0x11
lea ecx, [ebp - 0x44]
mov eax, dword [0x537bb4]
mov eax, dword [eax]
mov edx, 0x509358
call fcn.00504504
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x508bde
mov eax, dword [0x537e6c]
mov eax, dword [eax]
mov eax, dword [eax + 0x170]
call fcn.0048b958
ret