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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4fac60
push eax
mov dword fs:[0], esp
sub esp, 0x38
push ebx
push ebp
push esi
mov esi, ecx
xor ebx, ebx
push edi
mov eax, dword [esi + 0x108]
cmp eax, ebx
jne 0x4a3abf
mov eax, 0x4fdc00
push eax
mov ecx, esi
call fcn.004a8020
mov ecx, eax
call fcn.0049acb0
test eax, eax
jne 0x4a3af3
mov ecx, esi
call fcn.004a34f0
mov ecx, esi
call fcn.004a2f50
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
add esp, 0x44
ret
call dword [sym.imp.kernel32.dll_GetTickCount]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x128]
mov ecx, dword [esi + 0x14c]
cmp ecx, eax
jne 0x4a3b50
lea edi, [esi + 0x124]
mov dword [esi + 0x138], ebx
push edi
mov dword [esi + 0x134], ebx
mov dword [esi + 0x13c], ebx
call fcn.00461df0
push edi
mov dword [esi + 0x134], eax
call fcn.00461e40
add esp, 8
mov dword [esi + 0x138], eax
mov ecx, esi
mov dword [esi + 0x13c], edx
push ebx
push 1
call fcn.004a2f70
mov eax, dword [esi + 0x12c]
mov ecx, dword [esi + 0x14c]
cmp ecx, eax
je 0x4a3d6b
mov ecx, esi
call fcn.004a3a60
test eax, eax
je 0x4a3b7a
push 1
push 1
mov ecx, esi
call fcn.004a2f70
mov ebp, dword [esi + 0x14c]
lea eax, [ebp + 0x24]
mov dword [esi + 0x14c], eax
mov eax, dword [ebp]
cmp eax, 1
jne 0x4a3afd
mov cl, byte [esi + 0x104]
lea edi, [esi + 0x104]
mov byte [esp + 0x38], cl
push ebx
lea ecx, [esp + 0x3c]
call fcn.00403b70
mov edx, dword [0x4fdbfc]
lea ecx, [esp + 0x38]
push edx
push ebx
push edi
call fcn.004051a0
mov eax, dword [ebp + 8]
mov dword [esp + 0x50], ebx
cmp eax, ebx
jne 0x4a3bd1
mov eax, 0x4fdc00
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.00460a00
mov ecx, dword [esi + 0x128]
mov eax, dword [esi + 0x14c]
sub eax, ecx
add esp, 8
mov ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 3
mov ecx, edx
mov dword [esp + 0x2c], ebx
shr ecx, 0x1f
add edx, ecx
mov dword [esp + 0x30], ebx
mov ebp, edx
mov dl, byte [esp + 0x13]
mov dword [esp + 0x18], ebp
mov byte [esp + 0x28], dl
mov dword [esp + 0x34], ebx
mov eax, dword [edi + 4]
mov byte [esp + 0x50], 1
cmp eax, ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
jne 0x4a3c37
mov eax, 0x4fdc00
mov ecx, dword [esp + 0x3c]
cmp ecx, ebx
jne 0x4a3c44
mov ecx, 0x4fdc00
push eax
lea eax, [esp + 0x24]
push ebx
push eax
lea edx, [esp + 0x20]
lea eax, [esp + 0x34]
push edx
push eax
push ecx
mov ecx, esi
call fcn.004a8030
mov ecx, dword [esp + 0x14]
mov eax, dword [esi + 0x134]
mov edx, dword [esp + 0x20]
mov edi, dword [esi + 0x138]
add eax, ecx
add edi, edx
mov dword [esi + 0x134], eax
mov eax, dword [esp + 0x24]
mov dword [esi + 0x138], edi
mov ecx, dword [esi + 0x13c]
mov edi, dword [esp + 0x2c]
adc ecx, eax
mov eax, dword [esp + 0x30]
cmp edi, eax
mov dword [esi + 0x13c], ecx
je 0x4a3cc2
lea ebp, [esi + 0x124]
mov eax, dword [ebp + 8]
push edi
push 1
push eax
mov ecx, ebp
call fcn.004065c0
mov eax, dword [esp + 0x30]
add edi, 0x24
cmp edi, eax
jne 0x4a3ca5
mov ebp, dword [esp + 0x18]
mov eax, dword [esi + 0x128]
lea ecx, [ebp + ebp*8]
shl ecx, 2
mov edi, eax
mov dword [esi + 0x14c], eax
add edi, ecx
mov dword [esi + 0x14c], edi
mov edi, dword [sym.imp.kernel32.dll_GetTickCount]
call edi
sub eax, dword [esp + 0x1c]
cmp eax, 0x64
ja 0x4a3d8e
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x2c]
cmp edi, ebp
mov byte [esp + 0x50], bl
je 0x4a3d19
push 1
lea ecx, [edi + 4]
call fcn.00403b70
add edi, 0x24
cmp edi, ebp
jne 0x4a3d04
mov edi, dword [esp + 0x2c]
push edi
call fcn.004dae3e
mov ecx, dword [esp + 0x40]
add esp, 4
cmp ecx, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x50], 0xffffffff
je 0x4a3d5a
mov al, byte [ecx - 1]
cmp al, bl
je 0x4a3d50
cmp al, 0xff
je 0x4a3d50
dec al
mov byte [ecx - 1], al
jmp 0x4a3d5a
dec ecx
push ecx
call fcn.004dae3e
add esp, 4
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
jmp 0x4a3afd
push ebx
push ebx
mov ecx, esi
call fcn.004a2f70
mov ecx, esi
call fcn.004a3e40
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
add esp, 0x44
ret
mov eax, fcn.004a3a90
mov dword [esi + 0x60], eax
mov dword [esi + 0x64], ebx
mov dword [esi + 0x38], ebx
call edi
add eax, 0x64
cmp eax, ebx
mov dword [esi + 0x3c], eax
jne 0x4a3daf
mov dword [esi + 0x3c], 1
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x2c]
cmp esi, edi
mov byte [esp + 0x50], bl
je 0x4a3dd4
push 1
lea ecx, [esi + 4]
call fcn.00403b70
add esi, 0x24
cmp esi, edi
jne 0x4a3dbf
mov esi, dword [esp + 0x2c]
push esi
call fcn.004dae3e
mov ecx, dword [esp + 0x40]
add esp, 4
cmp ecx, ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
je 0x4a3e1e
mov al, byte [ecx - 1]
cmp al, bl
je 0x4a3e14
cmp al, 0xff
je 0x4a3e14
pop edi
dec al
pop esi
pop ebp
mov byte [ecx - 1], al
pop ebx
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
add esp, 0x44
ret
dec ecx
push ecx
call fcn.004dae3e
add esp, 4
mov ecx, dword [esp + 0x48]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x44
ret