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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
mov edx, dword [esp + 8]
push 0x5913ee53
push eax
mov dword fs:[0], esp
sub esp, 0x28
test edx, edx
push ebx
push ebp
push esi
push edi
je 0x59010ed2
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x59010ed2
mov ebp, dword [esp + 0x50]
test ebp, ebp
je 0x59010ed2
mov edi, str.SUCCESS_UNID
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push str.SUCCESS_UNID
push esi
push edx
call fcn.5900d130
mov ebx, eax
add esp, 0x10
cmp ebx, 0xffffffff
je 0x59010ed2
mov edi, str.SUCCESS_UNID
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, str.SUCCESS_UNID
sub esi, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edi, dword [esp + 0x4c]
mov edx, esi
not ecx
dec ecx
push 0x59178ad4
mov esi, ecx
push edx
add esi, ebx
add esi, edi
push esi
call fcn.5900d130
add esp, 0x10
test eax, eax
jle 0x59010ed2
push eax
push esi
lea ecx, [esp + 0x54]
call fcn.590998b0
mov eax, dword [0x5915584c]
mov dword [esp + 0x40], 0
mov dword [esp + 0x30], eax
mov edx, dword [ebp + 4]
mov eax, dword [ebp + 8]
mov ecx, dword [ebp]
mov byte [esp + 0x40], 2
mov dword [esp + 0x24], edx
lea edx, [esp + 0x4c]
mov dword [esp + 0x28], eax
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 0xc]
push edx
lea eax, [esp + 0x54]
push 0x59178ad8
push eax
mov dword [esp + 0x38], ecx
call fcn.5909a720
push 0x59178ad8
lea ecx, [esp + 0x4c]
mov bl, 3
push eax
push ecx
mov byte [esp + 0x4c], bl
call fcn.5909a550
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x44], 4
call fcn.59099f80
lea ecx, [esp + 0x48]
mov byte [esp + 0x40], bl
call fcn.59099e00
lea ecx, [esp + 0x50]
mov byte [esp + 0x40], 2
call fcn.59099e00
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
push 1
push 0x5919dac8
lea ecx, [esp + 0x1c]
mov dword [esp + 0x3c], eax
call fcn.590ac020
mov edi, dword [0x5919dabc]
mov byte [esp + 0x40], 5
call esi
lea ebp, [edi - 1]
mov dword [esp + 0x50], eax
test ebp, ebp
jl 0x59010e4d
mov eax, dword [0x5919dabc]
lea ecx, [ebp + ebp*2]
shl ecx, 3
mov dword [esp + 0x48], ecx
mov edx, dword [0x5919dab8]
mov ebx, dword [ecx + edx + 0x14]
lea esi, [ecx + edx]
mov edx, dword [esp + 0x50]
sub edx, ebx
cmp edx, 0x1b7740
jbe 0x59010e3b
sub eax, ebp
mov dword [esp + 0x10], esi
dec eax
xor edi, edi
mov ebx, eax
lea ecx, [esi + 0x10]
mov byte [esp + 0x40], 5
call fcn.59099e00
add esi, 0x18
mov eax, edi
dec edi
mov dword [esp + 0x10], esi
test eax, eax
jne 0x59010dec
test ebx, ebx
je 0x59010e2c
mov eax, dword [esp + 0x48]
lea ecx, [ebx + ebx*2]
shl ecx, 3
push ecx
mov ecx, dword [0x5919dab8]
lea edx, [eax + ecx + 0x18]
add eax, ecx
push edx
push eax
call fcn.59081ba0
add esp, 0xc
mov eax, dword [0x5919dabc]
mov ecx, dword [esp + 0x48]
dec eax
mov dword [0x5919dabc], eax
dec ebp
sub ecx, 0x18
test ebp, ebp
mov dword [esp + 0x48], ecx
jge 0x59010dc6
jmp 0x59010e52
mov eax, dword [0x5919dabc]
mov esi, eax
cmp esi, eax
jl 0x59010e68
lea eax, [esi + 1]
push 0xffffffffffffffff
push eax
mov ecx, 0x5919dab8
call fcn.5905b260
mov edx, dword [0x5919dab8]
lea ecx, [esi + esi*2]
lea esi, [edx + ecx*8]
mov ecx, dword [esp + 0x20]
mov eax, esi
mov dword [eax], ecx
mov edx, dword [esp + 0x24]
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov edx, dword [esp + 0x2c]
lea ecx, [esi + 0x10]
mov dword [eax + 0xc], edx
lea eax, [esp + 0x30]
push eax
call fcn.59099f80
mov ecx, dword [esp + 0x34]
mov dword [esi + 0x14], ecx
lea ecx, [esp + 0x14]
mov byte [esp + 0x40], 2
call fcn.590ac080
lea ecx, [esp + 0x30]
mov byte [esp + 0x40], 0
call fcn.59099e00
lea ecx, [esp + 0x4c]
mov dword [esp + 0x40], 0xffffffff
call fcn.59099e00
mov ecx, dword [esp + 0x38]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x34
ret