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

Disassembly:
push 0xffffffffffffffff
push 0x10082648
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
push ebp
push esi
push edi
mov eax, dword [0x10097060]
xor eax, esp
push eax
lea eax, [esp + 0x1c]
mov dword fs:[0], eax
mov esi, dword [esp + 0x2c]
call fcn.10002380
mov dword [esi + 4], eax
mov ebx, 1
mov byte [eax + 0x15], bl
mov eax, dword [esi + 4]
mov dword [eax + 4], eax
mov eax, dword [esi + 4]
mov dword [eax], eax
mov eax, dword [esi + 4]
xor ebp, ebp
mov dword [eax + 8], eax
mov dword [esi + 8], ebp
mov dword [esp + 0x24], ebp
call fcn.10002380
mov dword [esi + 0x10], eax
mov byte [eax + 0x15], bl
mov eax, dword [esi + 0x10]
mov dword [eax + 4], eax
mov eax, dword [esi + 0x10]
mov dword [eax], eax
mov eax, dword [esi + 0x10]
mov dword [eax + 8], eax
mov dword [esi + 0x14], ebp
lea eax, [esi + 0x18]
push eax
mov byte [esp + 0x28], bl
call fcn.10006650
lea ecx, [esi + 0x648]
push ecx
mov byte [esp + 0x28], 2
call fcn.10021d30
mov byte [esp + 0x24], 3
call fcn.1001f290
mov dword [esi + 0x5977c], eax
mov dword [esi + 0x59780], ebp
mov byte [esp + 0x24], 4
call fcn.1001f290
mov dword [esi + 0x59788], eax
mov dword [esi + 0x5978c], ebp
mov byte [esp + 0x24], 5
call fcn.1001f2b0
mov dword [esi + 0x59794], eax
mov dword [esi + 0x59798], ebp
mov byte [esp + 0x24], 6
call fcn.1001f2b0
mov dword [esi + 0x597a0], eax
mov dword [esi + 0x597a4], ebp
mov byte [esp + 0x24], 7
call fcn.1001f290
mov dword [esi + 0x597ac], eax
mov dword [esi + 0x597b0], ebp
mov byte [esp + 0x24], 8
call fcn.1001f290
mov dword [esi + 0x597b8], eax
mov dword [esi + 0x597bc], ebp
mov byte [esp + 0x24], 9
call fcn.1001f2d0
mov dword [esi + 0x597c4], eax
mov dword [esi + 0x597c8], ebp
mov byte [esp + 0x24], 0xa
call fcn.10001c70
mov dword [esi + 0x597d4], eax
mov dword [esi + 0x597d8], ebp
mov byte [esp + 0x24], 0xb
lea edi, [esi + 0x597e8]
call fcn.10002380
mov dword [edi + 4], eax
mov byte [eax + 0x15], bl
mov eax, dword [edi + 4]
mov dword [eax + 4], eax
mov eax, dword [edi + 4]
mov dword [eax], eax
mov eax, dword [edi + 4]
mov dword [eax + 8], eax
mov dword [edi + 8], ebp
mov byte [esp + 0x24], 0xc
call fcn.1001f2d0
mov dword [esi + 0x597f8], eax
mov dword [esi + 0x597fc], ebp
mov byte [esp + 0x24], 0xd
call fcn.1001f2d0
mov dword [esi + 0x59808], eax
mov dword [esi + 0x5980c], ebp
mov byte [esp + 0x24], 0xe
call fcn.1001f2d0
mov dword [esi + 0x59814], eax
mov dword [esi + 0x59818], ebp
mov byte [esp + 0x24], 0xf
mov edx, dword [0x10099194]
mov eax, dword [edx + 0xc]
mov ecx, 0x10099194
call eax
add eax, 0x10
mov dword [esi + 0x59840], eax
mov byte [esp + 0x24], 0x10
mov edx, dword [0x10099194]
mov eax, dword [edx + 0xc]
mov ecx, 0x10099194
call eax
add eax, 0x10
mov dword [esi + 0x59844], eax
lea ecx, [esi + 0x59848]
push ecx
mov byte [esp + 0x28], 0x11
call fcn.10021d30
mov byte [esp + 0x24], 0x12
mov edx, dword [0x10099194]
mov eax, dword [edx + 0xc]
mov ecx, 0x10099194
call eax
add eax, 0x10
mov dword [esi + 0xb296c], eax
mov byte [esp + 0x24], 0x13
call fcn.1001f2d0
mov dword [esi + 0xb2974], eax
mov dword [esi + 0xb2978], ebp
mov byte [esp + 0x24], 0x14
call fcn.1001f2d0
mov dword [esi + 0xb2980], eax
mov dword [esi + 0xb2984], ebp
mov byte [esp + 0x24], 0x15
mov dword [esp + 0x14], ebx
lea ebx, [esp + 0x14]
mov eax, edi
mov dword [esi + 0x5976c], ebp
mov dword [esi + 0x597dc], 4
mov dword [esi + 0x597e4], 0x46
call fcn.100053d0
mov ecx, 1
mov dword [eax], ecx
mov eax, 0x10099e40
mov dword [esi + 0x59824], ecx
mov dword [esi + 0x59838], ecx
mov dword [esi + 0x59828], ebp
mov dword [esi + 0x59774], ebp
mov dword [esi + 0x5983c], ebp
lea ecx, [eax + 2]
mov dx, word [eax]
add eax, 2
cmp dx, bp
jne 0x10017c10
sub eax, ecx
sar eax, 1
mov ebx, eax
lea edi, [esi + 0x59840]
push 0x10099e40
mov eax, edi
call fcn.10002470
mov eax, dword [edi]
push 0x5c
push eax
call fcn.10067ca4
add esp, 8
cmp eax, ebp
jne 0x10017c49
or eax, 0xffffffff
jmp 0x10017c4d
sub eax, dword [edi]
sar eax, 1
add eax, 1
lea ecx, [esp + 0x18]
mov edx, edi
call fcn.10014840
mov byte [esp + 0x24], 0x16
call fcn.100038f0
mov byte [esp + 0x24], 0x15
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x10017c8a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov dword [esi + 0x5981c], eax
call edi
mov dword [esi + 0x59820], eax
mov dword [esi + 0xb2988], ebp
mov dword [esi + 0xb298c], ebp
call edi
mov dword [0x10099e38], eax
mov dword [esi + 0x5982c], ebp
mov dword [esi + 0x59830], ebp
mov dword [esi + 0x640], ebp
mov dword [esi + 0x644], ebp
mov dword [esi + 0xb2990], ebp
mov dword [esi + 0xb2994], ebp
mov eax, esi
mov ecx, dword [esp + 0x1c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret 4