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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x64bac0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x18], esi
cmp dword [esi + 4], 0x62cb09e3
je 0x536024
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
mov ebx, dword [ebp + 0xc]
test ebx, ebx
jg 0x53603a
jl 0x536034
mov edi, dword [ebp + 8]
test edi, edi
jae 0x53603d
xor edi, edi
xor ebx, ebx
jmp 0x53603d
mov edi, dword [ebp + 8]
mov ecx, dword [ebp + 0x10]
mov al, byte [ecx + 0x127]
test al, al
je 0x536070
mov al, byte [esi + 0x94]
test al, al
jne 0x536070
mov eax, dword [esi + 0x74]
test eax, eax
jl 0x536070
jg 0x536064
mov eax, dword [esi + 0x70]
test eax, eax
jbe 0x536070
push ebx
push edi
push str.consumeProgress
call fcn.004f0080
mov al, byte [esi + 0x94]
mov byte [ebp + 0xf], 0
test al, al
mov dword [ebp - 0x14], 0
jne 0x536127
mov eax, dword [esi + 0x74]
mov ecx, dword [esi + 0x70]
test eax, eax
jl 0x536127
jg 0x5360a1
test ecx, ecx
jbe 0x536127
push eax
mov eax, dword [esi + 0x7c]
push ecx
mov ecx, dword [esi + 0x78]
push eax
push ecx
mov ecx, esi
call fcn.00535aa0
mov edx, dword [esi + 0x78]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x74]
add edx, edi
mov dword [esi + 0x78], edx
mov ecx, dword [esi + 0x7c]
adc ecx, ebx
mov edx, ecx
mov dword [esi + 0x7c], ecx
cmp edx, eax
jl 0x536127
jg 0x5360da
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x70]
cmp eax, ecx
jbe 0x536127
mov edi, dword [ebp + 0x10]
mov al, byte [edi + 0x127]
test al, al
je 0x53611b
mov edx, dword [edi]
push str.Amount_consumed_is_greater_than_the_total.
mov ecx, edi
call dword [edx + 0x14]
mov eax, dword [esi + 0x7c]
mov ecx, dword [esi + 0x78]
push eax
push ecx
push str.m_consumed64
mov ecx, edi
call fcn.004f0080
mov edx, dword [esi + 0x74]
mov eax, dword [esi + 0x70]
push edx
push eax
push str.m_totalAmount64
mov ecx, edi
call fcn.004f0080
mov ecx, dword [esi + 0x70]
mov edx, dword [esi + 0x74]
mov dword [esi + 0x78], ecx
mov dword [esi + 0x7c], edx
mov al, byte [esi + 0x94]
xor edi, edi
test al, al
jne 0x536156
mov eax, dword [esi + 0x74]
mov ecx, dword [esi + 0x70]
test eax, eax
jl 0x536156
jg 0x536143
test ecx, ecx
jbe 0x536156
push eax
mov eax, dword [esi + 0x7c]
push ecx
mov ecx, dword [esi + 0x78]
push eax
push ecx
mov ecx, esi
call fcn.00535aa0
mov edi, eax
mov eax, dword [esi + 0x64]
test eax, eax
je 0x53624d
mov cl, byte [esi + 0x94]
test cl, cl
jne 0x5361db
cmp edi, dword [ebp - 0x14]
jbe 0x5361db
cmp edi, dword [esi + 0x60]
jbe 0x5361db
call sub.KERNEL32.dll_GetTickCount
mov dword [esi + 0x6c], eax
mov al, byte [esi + 0x96]
test al, al
je 0x53618f
cmp edi, dword [esi + 0x8c]
je 0x5361d2
mov ecx, dword [ebp + 0x10]
mov dword [esi + 0x60], edi
mov al, byte [ecx + 0x127]
test al, al
je 0x5361aa
push edi
push str.percentDoneCB
call fcn.004effe0
mov ecx, dword [esi + 0x64]
mov dword [ebp - 4], 0
cmp dword [ecx + 8], 0x77109acd
jne 0x5361d2
mov edx, dword [ecx]
lea eax, [ebp + 0xf]
push eax
push edi
call dword [edx + 8]
jmp 0x5361d2
mov al, byte [ebp + 0xf]
test al, al
je 0x53624d
jmp 0x536249
test eax, eax
je 0x53624d
mov al, byte [esi + 0x95]
test al, al
jne 0x53624d
mov eax, dword [esi + 0x88]
test eax, eax
je 0x53624d
call sub.KERNEL32.dll_GetTickCount
mov ebx, dword [esi + 0x6c]
mov edx, dword [esi + 0x88]
mov ecx, eax
sub ecx, ebx
test edx, edx
jne 0x53620e
mov edx, 0x12c
cmp ecx, edx
jbe 0x53624d
mov ecx, dword [esi + 0x64]
mov dword [esi + 0x90], eax
mov dword [esi + 0x6c], eax
mov dword [ebp - 4], 2
cmp dword [ecx + 8], 0x77109acd
jne 0x536242
mov edx, dword [ecx]
lea eax, [ebp + 0xf]
push eax
call dword [edx + 0xc]
jmp 0x536242
mov al, byte [ebp + 0xf]
test al, al
je 0x53624d
mov byte [esi + 0x69], 1
mov al, byte [esi + 0x69]
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0xc