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

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, ecx
push edi
push 1
mov eax, dword [esi + 0x4a88]
mov edi, eax
mov dword [ebp - 8], eax
and edi, 0xffff0000
call fcn.00487c63
or ecx, 0xffffffff
test eax, eax
jne 0x4835c6
xor edi, edi
push ecx
mov ecx, esi
mov ebx, edi
call fcn.0049835b
jmp 0x483752
movzx eax, byte [esi + 0x4970]
cmp eax, 1
je 0x4835e4
cmp eax, 2
jne 0x4835dc
or edi, 0x20
jmp 0x4835e4
cmp eax, 3
jne 0x4835e4
or edi, 0x10
xor ebx, ebx
test di, di
jne 0x4836e3
lea edx, [esi + 0x26ec2]
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 4], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x4835fd
sub ecx, dword [ebp - 4]
lea eax, [esi + 0xe46]
sar ecx, 1
push ecx
push edx
push eax
call fcn.004ff630
add esp, 0xc
test eax, eax
je 0x4836dd
lea edx, [esi + 0x26f02]
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 4], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x483634
sub ecx, dword [ebp - 4]
lea eax, [esi + 0xe46]
sar ecx, 1
push ecx
push edx
push eax
call fcn.004ff630
add esp, 0xc
test eax, eax
je 0x4836dd
lea edx, [esi + 0x26f42]
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 4], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x48366b
sub ecx, dword [ebp - 4]
lea eax, [esi + 0xe46]
sar ecx, 1
push ecx
push edx
push eax
call fcn.004ff630
add esp, 0xc
test eax, eax
je 0x4836d8
lea edx, [esi + 0x26f82]
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 4], eax
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0x48369e
sub ecx, dword [ebp - 4]
lea eax, [esi + 0xe46]
sar ecx, 1
push ecx
push edx
push eax
call fcn.004ff630
add esp, 0xc
test eax, eax
je 0x4836d8
push ebx
push 1
push 1
mov ecx, esi
call fcn.00497366
test al, al
je 0x4836e0
or edi, 1
jmp 0x4836e0
or edi, 0x20
jmp 0x4836e0
or edi, 0x10
or ecx, 0xffffffff
mov ebx, edi
mov eax, edi
and ebx, 0xfff8ffff
and al, 0x30
cmove ebx, edi
mov edi, 0x10000
test bl, 1
je 0x483704
and ebx, 0xfff9ffff
or ebx, edi
movzx eax, word [esi + 0x398c]
mov edx, eax
cmp edx, 0x64
ja 0x4837a9
cmp word [esi + 0x3998], ax
jne 0x48372f
and ebx, 0xfffbffff
mov eax, ecx
or ebx, 0x20000
jmp 0x483748
mov ecx, ebx
mov eax, ebx
or ecx, 0x20000
and eax, edi
mov eax, edx
cmove ecx, ebx
mov ebx, ecx
and ebx, 0xfffbffff
push eax
mov ecx, esi
call fcn.0049835b
xor edi, edi
or eax, 0xffffffff
cmp word [esi + 0x398c], ax
jne 0x483790
cmp word [esi + 0x3990], ax
je 0x483790
test ebx, 0x20000
je 0x48377a
test bl, 1
je 0x483790
and ebx, 0xfff9ffff
push eax
mov ecx, esi
call fcn.0049835b
mov ecx, dword [esi + 4]
mov dword [esi + 0x3994], edi
call fcn.0041d0d2
cmp ebx, dword [ebp - 8]
je 0x4837a4
mov ecx, dword [esi + 4]
push edi
mov dword [esi + 0x4a88], ebx
call fcn.0041ce03
pop edi
pop esi
pop ebx
leave
ret
mov ecx, 0x30000
mov eax, ebx
and eax, ecx
cmp eax, ecx
jne 0x483750
or edi, 0xffffffff
cmp word [esi + 0x3990], di
je 0x483750
xor edi, edi
cmp dword [esi + 0x3994], edi
jne 0x4837dd
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x3994], eax
jmp 0x483752
mov eax, 0x40000
test dword [esi + 0x4a88], eax
je 0x4837f1
or ebx, eax
jmp 0x483752
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x3994]
cmp eax, 0x7d0
jbe 0x483752
or ebx, 0x40000
jmp 0x483752