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

Disassembly:
sub esp, 0x10
push ebx
mov ebx, dword [esp + 0x20]
push ebp
mov ebp, dword [esp + 0x20]
push esi
mov esi, ecx
push edi
mov eax, dword [esi + 0x3c]
mov ecx, dword [esi + 0x38]
cmp ebx, eax
ja 0x48e924
jb 0x48e4c9
cmp ebp, ecx
ja 0x48e924
cmp dword [esp + 0x34], eax
ja 0x48e924
jb 0x48e4df
cmp dword [esp + 0x30], ecx
ja 0x48e924
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0x10]
lea edx, [esp + 0x14]
push ecx
push edx
lea ecx, [esi + 0xd0]
mov dword [esp + 0x18], eax
call fcn.0047c200
mov eax, dword [esp + 0x14]
mov ecx, dword [esi + 0xd4]
cmp eax, ecx
je 0x48e511
mov edi, dword [eax + 0x10]
test edi, edi
jne 0x48e527
mov dword [esi + 8], 0x10004008
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret 0x14
mov ax, word [edi + 0x34]
mov ecx, dword [edi + 0x30]
and eax, 0xffff
push eax
push ecx
mov ecx, esi
call fcn.0048f890
test eax, eax
mov dword [esp + 0x18], eax
je 0x48e92b
cmp dword [edi + 0x38], 2
je 0x48e564
mov dword [esi + 8], 0x10004009
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret 0x14
mov eax, dword [edi + 0x2c]
test eax, eax
jne 0x48e581
mov dword [esi + 8], 0x10004007
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret 0x14
mov eax, dword [edi + 0x64]
test eax, eax
je 0x48e5ab
mov ecx, dword [edi + 0x68]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
je 0x48e5ab
mov ecx, dword [edi + 0x64]
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
jmp 0x48e5af
xor eax, eax
xor ecx, ecx
cmp eax, ebp
jne 0x48e924
cmp ecx, ebx
jne 0x48e924
mov ecx, 0xe
mov eax, ebp
mov edx, ebx
call fcn.004a2e20
mov edx, dword [esi + 0xc4]
mov dword [esp + 0x24], eax
cmp dword [edx + eax*4], 0xffffffff
jne 0x48e622
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov edx, ecx
mov edi, eax
sub edx, ebp
mov dword [esi + 8], 0x10004010
sbb edi, ebx
add dword [esi + 0x70], edx
mov edx, dword [esi + 0x74]
adc edx, edi
sub ecx, ebp
mov dword [esi + 0x74], edx
mov edx, dword [esi + 0x58]
sbb eax, ebx
add edx, ecx
mov dword [esi + 0x58], edx
mov ecx, dword [esi + 0x5c]
adc ecx, eax
pop edi
mov dword [esi + 0x5c], ecx
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret 0x14
mov eax, dword [esi + 0x20]
test eax, eax
je 0x48e633
push 0
push eax
push ebx
push ebp
call fcn.004a2cc0
push ebx
push ebp
push eax
mov ecx, esi
call fcn.0048dae0
cmp eax, 1
je 0x48e658
mov dword [esi + 8], 0x1000400d
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret 0x14
mov ebx, dword [edi + 0x64]
mov eax, dword [edi + 0x68]
cmp ebx, eax
je 0x48e6b9
mov ecx, dword [ebx + 0x18]
cmp ecx, ebp
jne 0x48e674
mov edx, dword [ebx + 0x1c]
mov ecx, dword [esp + 0x2c]
cmp edx, ecx
je 0x48e68f
mov ecx, dword [ebx + 8]
cmp ecx, ebp
jne 0x48e686
mov edx, dword [ebx + 0xc]
mov ecx, dword [esp + 0x2c]
cmp edx, ecx
je 0x48e69f
add ebx, 0x28
cmp ebx, eax
jne 0x48e662
jmp 0x48e6b9
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
mov dword [ebx + 0x18], eax
mov dword [ebx + 0x1c], ecx
jmp 0x48e6ad
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x18], edx
mov dword [ebx + 0x1c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 0x4c], eax
mov dword [ebx + 4], eax
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
mov ecx, 0xe
call fcn.004a2e20
mov ebx, eax
mov eax, dword [esp + 0x24]
cmp eax, ebx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x2c], edx
ja 0x48e711
mov dword [esp + 0x24], eax
mov ebp, dword [esp + 0x18]
push eax
mov ecx, ebp
call fcn.0048fed0
test al, al
jne 0x48e704
mov eax, dword [ebp + 0x10]
lea ecx, [ebp + 8]
lea edx, [esp + 0x24]
push edx
push 1
push eax
call fcn.00437850
mov eax, dword [esp + 0x24]
inc eax
cmp eax, ebx
mov dword [esp + 0x24], eax
jbe 0x48e6e1
mov eax, dword [edi + 0x64]
test eax, eax
je 0x48e73b
mov ecx, dword [edi + 0x68]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
je 0x48e73b
mov edx, dword [edi + 0x64]
mov ebp, dword [edx + 0x20]
mov ebx, dword [edx + 0x24]
jmp 0x48e73f
xor ebp, ebp
xor ebx, ebx
mov eax, dword [esp + 0x30]
mov ecx, dword [esi + 0x38]
cmp eax, ecx
jne 0x48e784
mov ecx, dword [esp + 0x34]
mov eax, dword [esi + 0x3c]
cmp ecx, eax
jne 0x48e784
mov ecx, 0xe
mov eax, ebp
mov edx, ebx
call fcn.004a2e20
mov ecx, dword [esi + 0xc4]
test ecx, ecx
jne 0x48e774
xor ebx, ebx
jmp 0x48e81f
mov ebx, dword [esi + 0xc8]
sub ebx, ecx
sar ebx, 2
jmp 0x48e81f
mov eax, dword [edi + 0x64]
test eax, eax
je 0x48e7ae
mov ecx, dword [edi + 0x68]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
je 0x48e7ae
mov ecx, dword [edi + 0x64]
mov eax, dword [ecx + 0x18]
mov ecx, dword [ecx + 0x1c]
jmp 0x48e7b2
xor eax, eax
xor ecx, ecx
sub eax, ebp
sbb ecx, ebx
mov dword [esp + 0x1c], ecx
jne 0x48e7cf
cmp eax, 0x4000
jae 0x48e7cf
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x10
ret 0x14
mov eax, dword [edi + 0x64]
test eax, eax
je 0x48e80d
mov ecx, dword [edi + 0x68]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add edx, eax
je 0x48e80d
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
push 0
push 0x4000
push ecx
push edx
call fcn.004a2d30
mov ecx, dword [edi + 0x64]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov ecx, 0xe
mov eax, ebp
mov edx, ebx
call fcn.004a2e20
mov ebx, dword [esp + 0x28]
cmp eax, ebx
mov edx, eax
jge 0x48e8b0
shl eax, 0xe
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x2c]
dec eax
cmp edx, eax
jne 0x48e843
mov eax, dword [esi + 0x18]
mov ecx, dword [esp + 0x24]
sub eax, ecx
jmp 0x48e848
mov eax, 0x4000
mov ebp, dword [esi + 0x70]
xor ecx, ecx
add ebp, eax
mov dword [esi + 0x70], ebp
mov ebp, dword [esi + 0x74]
adc ebp, ecx
mov dword [esi + 0x74], ebp
mov ebp, dword [0x4d3738]
add ebp, eax
mov dword [0x4d3738], ebp
mov ebp, dword [0x4d373c]
adc ebp, ecx
mov dword [0x4d373c], ebp
mov ebp, dword [edi + 0x50]
add ebp, eax
mov dword [edi + 0x50], ebp
mov ebp, dword [edi + 0x54]
adc ebp, ecx
mov dword [edi + 0x54], ebp
mov ecx, dword [esi + 0xc4]
mov ebp, dword [ecx + edx*4]
lea ecx, [ecx + edx*4]
cmp ebp, 0xffffffff
je 0x48e8ec
mov dword [ecx], 0xffffffff
mov ecx, dword [esp + 0x24]
inc edx
add ecx, 0x4000
cmp edx, ebx
mov dword [esp + 0x24], ecx
jl 0x48e830
mov edx, dword [esp + 0x30]
mov eax, dword [esi + 0x38]
cmp edx, eax
jne 0x48e8c6
mov eax, dword [esp + 0x34]
mov ecx, dword [esi + 0x3c]
cmp eax, ecx
je 0x48e8d6
mov ecx, dword [esi + 0xc4]
cmp dword [ecx + ebx*4], 0xffffffff
jne 0x48e7c3
mov dword [esi + 8], 0x10004010
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret 0x14
mov ebp, dword [edi + 0x58]
xor ecx, ecx
add ebp, eax
mov dword [edi + 0x58], ebp
mov ebx, dword [edi + 0x5c]
adc ebx, ecx
mov dword [edi + 0x5c], ebx
mov edx, dword [esi + 0x58]
add edx, eax
mov dword [esi + 8], 0x10004010
mov dword [esi + 0x58], edx
mov eax, dword [esi + 0x5c]
adc eax, ecx
pop edi
mov dword [esi + 0x5c], eax
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret 0x14
mov dword [esi + 8], 0x1000400f
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x10
ret 0x14