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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
mov edx, dword [esp + 8]
push 0x59139da3
push eax
mov dword fs:[0], esp
sub esp, 0x28
test edx, edx
push ebx
push ebp
push esi
push edi
je 0x59010d62
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x59010d62
mov ebp, dword [esp + 0x50]
test ebp, ebp
je 0x59010d62
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.5900cfc0
mov ebx, eax
add esp, 0x10
cmp ebx, 0xffffffff
je 0x59010d62
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 0x59171ad4
mov esi, ecx
push edx
add esi, ebx
add esi, edi
push esi
call fcn.5900cfc0
add esp, 0x10
test eax, eax
jle 0x59010d62
push eax
push esi
lea ecx, [esp + 0x54]
call fcn.59094b40
mov eax, dword [0x5914f84c]
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 0x59171ad8
push eax
mov dword [esp + 0x38], ecx
call fcn.590959b0
push 0x59171ad8
lea ecx, [esp + 0x4c]
mov bl, 3
push eax
push ecx
mov byte [esp + 0x4c], bl
call fcn.590957e0
push eax
lea ecx, [esp + 0x34]
mov byte [esp + 0x44], 4
call fcn.59095210
lea ecx, [esp + 0x48]
mov byte [esp + 0x40], bl
call fcn.59095090
lea ecx, [esp + 0x50]
mov byte [esp + 0x40], 2
call fcn.59095090
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
push 1
push 0x59195840
lea ecx, [esp + 0x1c]
mov dword [esp + 0x3c], eax
call fcn.590a72b0
mov edi, dword [0x59195834]
mov byte [esp + 0x40], 5
call esi
lea ebp, [edi - 1]
mov dword [esp + 0x50], eax
test ebp, ebp
jl 0x59010cdd
mov eax, dword [0x59195834]
lea ecx, [ebp + ebp*2]
shl ecx, 3
mov dword [esp + 0x48], ecx
mov edx, dword [0x59195830]
mov ebx, dword [ecx + edx + 0x14]
lea esi, [ecx + edx]
mov edx, dword [esp + 0x50]
sub edx, ebx
cmp edx, 0x1b7740
jbe 0x59010ccb
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.59095090
add esi, 0x18
mov eax, edi
dec edi
mov dword [esp + 0x10], esi
test eax, eax
jne 0x59010c7c
test ebx, ebx
je 0x59010cbc
mov eax, dword [esp + 0x48]
lea ecx, [ebx + ebx*2]
shl ecx, 3
push ecx
mov ecx, dword [0x59195830]
lea edx, [eax + ecx + 0x18]
add eax, ecx
push edx
push eax
call fcn.5907ce30
add esp, 0xc
mov eax, dword [0x59195834]
mov ecx, dword [esp + 0x48]
dec eax
mov dword [0x59195834], eax
dec ebp
sub ecx, 0x18
test ebp, ebp
mov dword [esp + 0x48], ecx
jge 0x59010c56
jmp 0x59010ce2
mov eax, dword [0x59195834]
mov esi, eax
cmp esi, eax
jl 0x59010cf8
lea eax, [esi + 1]
push 0xffffffffffffffff
push eax
mov ecx, 0x59195830
call fcn.59056de0
mov edx, dword [0x59195830]
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.59095210
mov ecx, dword [esp + 0x34]
mov dword [esi + 0x14], ecx
lea ecx, [esp + 0x14]
mov byte [esp + 0x40], 2
call fcn.590a7310
lea ecx, [esp + 0x30]
mov byte [esp + 0x40], 0
call fcn.59095090
lea ecx, [esp + 0x4c]
mov dword [esp + 0x40], 0xffffffff
call fcn.59095090
mov ecx, dword [esp + 0x38]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x34
ret