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

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10189ff4
mov eax, dword fs:[0]
push eax
push ebx
sub esp, 0x140
mov eax, dword [0x101ae0c0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, 0x10212b10
call fcn.10011ba0
movzx eax, al
test eax, eax
jne 0x10163162
push 0x10212ae0
call fcn.100c9bb0
add esp, 4
cmp eax, 2
jae 0x10163167
jmp 0x1016359e
mov ecx, dword [0x101d86ac]
mov edx, dword fs:[0x2c]
mov eax, dword [edx + ecx*4]
mov ecx, dword [0x1021c19c]
cmp ecx, dword [eax + 4]
jle 0x10163265
push 0x1021c19c
call fcn.100bdcbc
add esp, 4
cmp dword [0x1021c19c], 0xffffffff
jne 0x10163265
xor edx, edx
mov byte [ebp - 0x101], dl
xor eax, eax
mov byte [ebp - 0x102], al
xor ecx, ecx
mov byte [ebp - 0xf1], cl
movzx edx, byte [ebp - 0x101]
push edx
movzx eax, byte [ebp - 0x102]
push eax
movzx ecx, byte [ebp - 0xf1]
push ecx
lea edx, [ebp - 0xf0]
push edx
call fcn.100a5820
add esp, 0x10
mov ecx, eax
call fcn.100a5a00
mov dword [ebp - 0x134], eax
xor eax, eax
mov byte [ebp - 0xf2], al
xor ecx, ecx
mov byte [ebp - 0xf3], cl
xor edx, edx
mov byte [ebp - 0x100], dl
movzx eax, byte [ebp - 0xf2]
push eax
movzx ecx, byte [ebp - 0xf3]
push ecx
movzx edx, byte [ebp - 0x100]
push edx
lea eax, [ebp - 0x40]
push eax
call fcn.100a5810
add esp, 0x10
mov ecx, eax
call fcn.100a5940
push eax
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov dword [ebp - 0x12c], eax
mov ecx, dword [ebp - 0x134]
push ecx
mov edx, dword [ebp - 0x12c]
push edx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [0x1021c198], eax
push 0x1021c19c
call fcn.100bdc6b
add esp, 4
lea eax, [ebp - 0x140]
push eax
mov ecx, dword [0x1020bd10]
call fcn.10128840
mov ecx, dword [0x101d86ac]
mov edx, dword fs:[0x2c]
mov eax, dword [edx + ecx*4]
mov ecx, dword [0x1021c1a0]
cmp ecx, dword [eax + 4]
jle 0x101632d6
push 0x1021c1a0
call fcn.100bdcbc
add esp, 4
cmp dword [0x1021c1a0], 0xffffffff
jne 0x101632d6
push 0
push 0x15180
mov edx, dword [0x10212b04]
push edx
mov eax, dword [0x10212b00]
push eax
call fcn.100bebd0
mov dword [0x1021c194], eax
push 0x1021c1a0
call fcn.100bdc6b
add esp, 4
mov dword [ebp - 0x150], 0
lea ecx, [ebp - 0x2c]
call fcn.10004030
mov dword [ebp - 4], 0
cmp dword [0x1021c194], 0
jge 0x10163315
push 0x45
call fcn.100ccd43
nop
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.10003e70
nop
jmp 0x1016359e
cmp dword [0x101cec98], 0xffffffff
jne 0x101633ae
mov ecx, 0x10215c18
call fcn.10003b00
mov dword [ebp - 0x108], eax
mov ecx, dword [ebp - 0x108]
mov edx, dword [ecx]
mov eax, dword [edx + 0x1c8]
mov dword [ebp - 0x130], eax
xor ecx, ecx
mov byte [ebp - 0xf4], cl
xor edx, edx
mov byte [ebp - 0xf5], dl
xor eax, eax
mov byte [ebp - 0xf6], al
movzx ecx, byte [ebp - 0xf4]
push ecx
movzx edx, byte [ebp - 0xf5]
push edx
movzx eax, byte [ebp - 0xf6]
push eax
lea ecx, [ebp - 0x50]
push ecx
call fcn.100a5830
add esp, 0x10
mov ecx, eax
call fcn.100a5940
mov dword [ebp - 0x128], eax
mov edx, dword [ebp - 0x128]
push edx
mov ecx, dword [ebp - 0x108]
call dword [ebp - 0x130]
nop
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x101cec98], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x101cec98]
cmp eax, 0x1f4
jbe 0x1016358e
cmp dword [0x101cec98], 0xffffffff
je 0x1016358e
movzx eax, byte [0x10217458]
test eax, eax
jne 0x1016358e
mov ecx, dword [0x1021c198]
mov dword [ebp - 0x10c], ecx
xor edx, edx
mov byte [ebp - 0xf7], dl
xor eax, eax
mov byte [ebp - 0xf8], al
xor ecx, ecx
mov byte [ebp - 0xf9], cl
movzx edx, byte [ebp - 0xf7]
push edx
movzx eax, byte [ebp - 0xf8]
push eax
movzx ecx, byte [ebp - 0xf9]
push ecx
lea edx, [ebp - 0x70]
push edx
call fcn.100a5840
add esp, 0x10
mov ecx, eax
call fcn.100a58a0
mov dword [ebp - 0x138], eax
push 0xff
push 0x45
push 0x64
push 0xff
lea ecx, [ebp - 0x144]
call fcn.10036fd0
mov dword [ebp - 0x13c], eax
mov eax, dword [ebp - 0x138]
push eax
mov ecx, dword [ebp - 0x13c]
push ecx
call dword [ebp - 0x10c]
add esp, 8
mov edx, dword [0x1021c198]
mov dword [ebp - 0x118], edx
xor eax, eax
mov byte [ebp - 0xfa], al
xor ecx, ecx
mov byte [ebp - 0xfb], cl
xor edx, edx
mov byte [ebp - 0xfc], dl
movzx eax, byte [ebp - 0xfa]
push eax
movzx ecx, byte [ebp - 0xfb]
push ecx
movzx edx, byte [ebp - 0xfc]
push edx
lea eax, [ebp - 0x90]
push eax
call fcn.100a5850
add esp, 0x10
mov ecx, eax
call fcn.100a58a0
mov dword [ebp - 0x110], eax
push 0xff
push 0x45
push 0x64
push 0xff
lea ecx, [ebp - 0x148]
call fcn.10036fd0
mov dword [ebp - 0x114], eax
mov ecx, dword [ebp - 0x110]
push ecx
mov edx, dword [ebp - 0x114]
push edx
call dword [ebp - 0x118]
add esp, 8
mov eax, dword [0x1021c198]
mov dword [ebp - 0x124], eax
xor ecx, ecx
mov byte [ebp - 0xfd], cl
xor edx, edx
mov byte [ebp - 0xfe], dl
xor eax, eax
mov byte [ebp - 0xff], al
movzx ecx, byte [ebp - 0xfd]
push ecx
movzx edx, byte [ebp - 0xfe]
push edx
movzx eax, byte [ebp - 0xff]
push eax
lea ecx, [ebp - 0xc0]
push ecx
call fcn.100a5860
add esp, 0x10
mov ecx, eax
call fcn.100a5a00
mov dword [ebp - 0x11c], eax
push 0xff
push 0x45
push 0x64
push 0xff
lea ecx, [ebp - 0x14c]
call fcn.10036fd0
mov dword [ebp - 0x120], eax
mov edx, dword [ebp - 0x11c]
push edx
mov eax, dword [ebp - 0x120]
push eax
call dword [ebp - 0x124]
add esp, 8
mov byte [0x10217458], 1
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x2c]
call fcn.10003e70
nop
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.100bdc32
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret