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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x3c], edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x2c], edx
mov dword [ebp - 0x30], edx
mov dword [ebp - 4], edx
mov ebx, eax
mov ecx, 7
lea eax, [ebp - 0x20]
mov edx, dword [0x4010c4]
call fcn.004073a4
mov esi, 0x5570a0
xor eax, eax
push ebp
push 0x50954a
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x21], 0
lea eax, [ebp - 0x2c]
push eax
lea edx, [ebp - 0x30]
mov eax, dword [0x54ff38]
mov eax, dword [eax + 8]
call fcn.004e4e90
mov eax, dword [ebp - 0x30]
xor ecx, ecx
mov edx, 0x509568
call fcn.004e0ec8
mov eax, dword [ebp - 0x2c]
lea edx, [ebp - 0x28]
call fcn.00479be0
mov edx, dword [ebp - 0x28]
mov eax, esi
call fcn.00406610
cmp dword [esi], 0
je 0x509514
lea ecx, [ebp - 0x34]
mov edx, 0x509598
mov eax, dword [esi]
call fcn.00478bbc
mov edx, dword [ebp - 0x34]
mov eax, 0x55709c
call fcn.00406610
lea ecx, [ebp - 0x38]
mov edx, 0x5095b0
mov eax, dword [esi]
call fcn.00478bbc
mov edx, dword [ebp - 0x38]
mov eax, 0x5570a4
call fcn.00406610
xor edx, edx
push ebp
push 0x509505
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [esi]
call fcn.00479380
test al, al
jne 0x5091da
push 0x10
push 1
push 1
mov ecx, dword [0x55024c]
mov ecx, dword [ecx + 0x2d8]
mov edx, dword [esi]
mov al, 0xbd
call fcn.00506c00
call fcn.00412ba0
mov eax, dword [0x550148]
mov eax, dword [eax]
shr eax, 0x10
cmp eax, 0x600
mov eax, dword [0x54fd3c]
setae byte [eax]
xor eax, eax
call fcn.005074f4
mov dword [0x5570a8], eax
mov dl, 1
mov eax, dword [0x5067a0]
call fcn.004be50c
mov dword [0x54f87c], eax
xor edx, edx
push ebp
push 0x5094f0
push dword fs:[edx]
mov dword fs:[edx], esp
mov eax, dword [0x54f87c]
mov byte [eax + 0x10], 1
mov eax, dword [0x54f87c]
mov dword [eax + 0x2c], ebx
mov ecx, dword [esi]
mov edx, dword [0x5570a8]
mov eax, dword [0x54f87c]
call fcn.004c1144
lea ecx, [ebp - 0x3c]
mov eax, dword [0x54f87c]
mov edx, dword [eax + 0x18]
mov al, 0xb6
call fcn.004b45dc
mov edx, dword [ebp - 0x3c]
mov eax, 0x5570ac
call fcn.00406610
mov eax, dword [0x54f87c]
test byte [eax + 0x1d], 0x20
je 0x5092a2
mov eax, dword [0x54fe44]
cmp byte [eax], 0
jne 0x5092a2
push 1
push 1
mov eax, dword [0x5570ac]
call fcn.0040669c
push eax
mov eax, dword [0x55024c]
mov eax, dword [eax + 0x2f8]
call fcn.0040669c
mov ecx, 0x30
pop edx
call fcn.004e7ecc
call fcn.00412ba0
mov eax, dword [0x54f87c]
test byte [eax + 0x1d], 1
je 0x5092e5
call fcn.0047aa68
test al, al
jne 0x5092e5
push 1
push 1
mov eax, dword [0x5570ac]
call fcn.0040669c
push eax
mov eax, dword [0x55024c]
mov eax, dword [eax + 0x1d8]
call fcn.0040669c
mov ecx, 0x30
pop edx
call fcn.004e7ecc
call fcn.00412ba0
mov eax, dword [0x5570a8]
xor edx, edx
mov dword [0x5570a8], edx
call fcn.004041cc
mov al, 2
call fcn.005074f4
mov dword [0x5570a8], eax
lea eax, [ebp - 0x20]
push eax
push 6
mov ecx, 0x85050100
mov dx, 0x20
mov eax, dword [0x54f87c]
call fcn.004be9dc
test al, al
jne 0x50932a
mov eax, 0x5095c8
call fcn.004b67bc
cmp dword [0x5570c4], 0
je 0x509345
lea eax, [ebp - 4]
mov edx, dword [0x5500e8]
mov edx, dword [edx]
call fcn.004054f4
jmp 0x509350
lea edx, [ebp - 4]
mov eax, dword [ebp - 0x20]
call fcn.00507b68
mov eax, dword [0x54f87c]
cmp byte [eax + 0x11], 0
je 0x509378
mov eax, dword [0x54fe44]
cmp byte [eax], 0
jne 0x50936f
mov eax, 0x509660
call fcn.004b67bc
mov al, 1
call fcn.004e83bc
jmp 0x50937f
xor eax, eax
call fcn.004e83bc
cmp dword [ebp - 4], 0
je 0x50940d
mov eax, dword [0x54fd50]
mov edx, dword [0x55709c]
call fcn.00406610
mov eax, dword [0x550198]
mov edx, dword [0x54f87c]
mov edx, dword [edx + 0x14]
call fcn.00406610
movzx eax, byte [0x5570b3]
or al, byte [0x5570b4]
mov edx, dword [0x54fed8]
mov byte [edx], al
mov eax, dword [0x5503e4]
mov edx, dword [ebp - 0x18]
call fcn.00406610
mov eax, dword [0x550028]
mov edx, dword [ebp - 0x14]
call fcn.00406610
mov eax, dword [0x54fe60]
mov edx, dword [ebp - 0x10]
call fcn.00406610
mov eax, dword [0x54ff08]
mov edx, dword [ebp - 0xc]
call fcn.00406610
mov eax, dword [ebp - 8]
test eax, eax
je 0x509401
sub eax, 4
mov eax, dword [eax]
mov edx, eax
add edx, edx
mov eax, dword [ebp - 8]
call fcn.00507ab0
call sub.kernel32.dll_GetTickCount_1
mov esi, eax
mov eax, dword [0x54f87c]
mov dword [eax + 0x24], esi
mov ecx, 0x506e84
mov dl, 1
mov eax, dword [0x54f87c]
call fcn.004bf800
mov ebx, eax
movzx eax, bl
mov edx, dword [0x55013c]
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, 0x5096f4
call fcn.004bb8d4
mov eax, dword [0x54f87c]
cmp byte [eax + 0x1c], 0
jne 0x50946b
mov eax, dword [0x54f87c]
test byte [eax + 0x1d], 8
jne 0x50946b
xor ebx, ebx
jmp 0x50946d
mov bl, 1
movzx eax, bl
mov edx, dword [0x55013c]
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, 0x509720
call fcn.004bb8d4
cmp byte [0x5570b4], 0
jne 0x5094c6
mov eax, dword [0x550238]
mov eax, dword [eax]
call fcn.00523bdc
call sub.kernel32.dll_GetTickCount_1
sub eax, esi
cmp eax, 0x3e8
jae 0x5094c6
push 0xff
push 0xa
push 0
push 0
push 0
call sub.user32.dll_MsgWaitForMultipleObjects
jmp 0x509498
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5094f7
mov eax, dword [0x54f87c]
call fcn.004041cc
mov eax, dword [0x5570a8]
xor edx, edx
mov dword [0x5570a8], edx
call fcn.004041cc
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x509551
lea eax, [ebp - 0x3c]
mov edx, 6
call fcn.00406608
lea eax, [ebp - 0x20]
mov ecx, 7
mov edx, dword [0x4010c4]
call fcn.00407498
lea eax, [ebp - 4]
call fcn.00405444
ret