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

Disassembly:
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x84cb02
mov dword [esp + 0x18], 0x1e
jmp 0x84cb20
cmp eax, 2
jge 0x84cb11
mov dword [esp + 0x18], 2
jmp 0x84cb20
cmp eax, 0xfa
jle 0x84cb20
mov dword [esp + 0x18], 0xfa
mov eax, dword [esp + 8]
test eax, eax
je 0x84cd66
cmp byte [eax], 0
je 0x84cd66
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x84cb38
sub eax, edx
cmp eax, 0x1f
ja 0x84cd66
push edi
mov edi, dword [esp + 0x10]
test edi, edi
je 0x84cd5f
cmp byte [edi], 0
je 0x84cd5f
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x84cb65
sub eax, edx
cmp eax, 0x1f
ja 0x84cd5f
mov eax, dword [esp + 0x14]
test eax, eax
je 0x84cd58
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x84cb86
sub eax, edx
cmp eax, 0xbf
ja 0x84cd58
push ebp
mov ebp, dword [esp + 0x1c]
test ebp, ebp
je 0x84cd50
mov eax, ebp
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x84cbb0
sub eax, edx
cmp eax, 0x77
ja 0x84cd50
push ebx
mov ebx, dword [esp + 0x10]
push esi
mov esi, dword [ebx + 0x24]
test esi, esi
je 0x84cbfc
nop
mov eax, dword [esp + 0x18]
lea edx, [esi + 8]
call fcn.0084c580
test eax, eax
jne 0x84cbf2
lea edx, [esi + 0x28]
mov eax, edi
call fcn.0084c580
test eax, eax
je 0x84ccea
mov esi, dword [esi + 0x1a0]
test esi, esi
jne 0x84cbd0
push 0x1a4
call fcn.0078af30
mov edi, eax
add esp, 4
xor ecx, ecx
mov eax, 0x1a4
call fcn.0084bcb0
mov cl, byte [esp + 0x28]
mov edx, eax
shr edx, 0x18
mov dword [edi + 0x180], eax
mov byte [edi + 3], cl
mov byte [edi + 4], dl
mov dl, byte [edi + 0x180]
mov ecx, eax
shr eax, 8
mov byte [edi + 7], dl
shr ecx, 0x10
mov byte [edi + 6], al
mov eax, dword [esp + 0x18]
lea edx, [edi + 8]
mov byte [edi], 0x67
mov byte [edi + 1], 0x45
mov byte [edi + 2], 0x41
mov byte [edi + 5], cl
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x84cc57
mov eax, dword [esp + 0x1c]
lea edx, [edi + 0x28]
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x84cc70
lea edx, [edi + 0x108]
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x84cc84
mov eax, dword [esp + 0x20]
lea edx, [edi + 0x48]
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x84cc97
mov ecx, dword [ebx + 0x38]
push 0x10
lea eax, [ebx + 0x3c]
push eax
push 0
push 0x180
push edi
push ecx
call fcn.0084b110
call fcn.0084bcb0
add eax, 0xfa
push ebx
mov dword [edi + 0x180], eax
call fcn.0084bd60
mov edx, dword [ebx + 0x24]
mov dword [edi + 0x1a0], edx
push ebx
mov dword [ebx + 0x24], edi
call fcn.0084bdf0
add esp, 0x20
pop esi
pop ebx
pop ebp
xor eax, eax
pop edi
ret
lea edi, [esi + 0x108]
mov edx, edi
mov eax, ebp
call fcn.0084c580
test eax, eax
je 0x84cd19
mov edx, edi
mov eax, ebp
sub edx, ebp
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x84cd03
call fcn.0084bcb0
dec eax
mov dword [esi + 0x180], eax
mov ebx, dword [esp + 0x20]
lea edi, [esi + 0x48]
mov edx, edi
mov eax, ebx
call fcn.0084c580
test eax, eax
je 0x84cce3
mov edx, edi
mov eax, ebx
sub edx, ebx
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x84cd33
call fcn.0084bcb0
dec eax
mov dword [esi + 0x180], eax
pop esi
pop ebx
pop ebp
xor eax, eax
pop edi
ret
pop ebp
mov eax, 0xfffffffc
pop edi
ret
mov eax, 0xfffffffd
pop edi
ret
mov eax, 0xfffffffe
pop edi
ret
or eax, 0xffffffff
ret