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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffc8
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x38], edx
mov dword [ebp - 0x34], edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x48bd04
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x4baf80], 1
jne 0x48bcdc
cmp byte [0x4bafc0], 0
jne 0x48bcdc
call sub.kernel32.dll_GetTickCount
mov dword [ebp - 8], eax
cmp byte [0x4b9800], 0
je 0x48b35c
cmp byte [0x4b97e8], 0
je 0x48b35c
mov eax, dword [ebp - 8]
cmp eax, dword [0x4bb060]
jle 0x48b35c
mov dword [0x4baf80], 4
mov eax, dword [ebp - 4]
call fcn.004a2840
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d0]
mov edx, 0x48bd1c
call fcn.004728d0
mov eax, dword [ebp - 8]
cdq
push edx
push eax
mov eax, dword [0x4bafb4]
add eax, 0xc8
xor edx, edx
cmp edx, dword [esp + 4]
jne 0x48b37d
cmp eax, dword [esp]
pop edx
pop eax
jae 0x48b3a6
jmp 0x48b381
pop edx
pop eax
jge 0x48b3a6
cmp dword [0x4bafb0], 1
jne 0x48b396
mov dword [0x4bafb0], 0xffffffff
jmp 0x48b39c
inc dword [0x4bafb0]
add dword [0x4bafb4], 0xc8
fild dword [ebp - 8]
fdiv dword [0x48bd28]
call fcn.00402a4c
fmul dword [0x48bd2c]
fadd dword [0x48bd30]
call fcn.00402a5c
mov byte [0x4bafb8], al
lea edx, [ebp - 9]
mov eax, dword [0x4bad9c]
call fcn.004b54b0
cmp byte [0x4baf64], 0
jne 0x48b728
mov eax, dword [0x4badcc]
cmp eax, dword [0x4badc8]
jle 0x48b45b
mov eax, dword [0x4badd0]
cmp eax, dword [0x4badc8]
jle 0x48b406
inc byte [0x4badd4]
jmp 0x48b422
mov eax, dword [0x4badd0]
cmp eax, dword [0x4badc8]
jge 0x48b422
cmp byte [0x4badd4], 1
jle 0x48b422
dec byte [0x4badd4]
movsx eax, byte [0x4badd4]
add dword [0x4badc8], eax
mov eax, dword [0x4badc8]
cmp eax, dword [0x4badcc]
jle 0x48b457
mov eax, dword [0x4badc8]
mov dword [0x4badcc], eax
mov eax, dword [0x4badc8]
mov dword [0x4badd0], eax
mov byte [0x4badd4], 0
mov byte [ebp - 9], 1
mov eax, dword [0x4badcc]
cmp eax, dword [0x4badc8]
jge 0x48b4d2
mov eax, dword [0x4badd0]
cmp eax, dword [0x4badc8]
jge 0x48b47d
dec byte [0x4badd4]
jmp 0x48b499
mov eax, dword [0x4badd0]
cmp eax, dword [0x4badc8]
jle 0x48b499
cmp byte [0x4badd4], 0xff
jge 0x48b499
inc byte [0x4badd4]
movsx eax, byte [0x4badd4]
add dword [0x4badc8], eax
mov eax, dword [0x4badc8]
cmp eax, dword [0x4badcc]
jge 0x48b4ce
mov eax, dword [0x4badc8]
mov dword [0x4badcc], eax
mov eax, dword [0x4badc8]
mov dword [0x4badd0], eax
mov byte [0x4badd4], 0
mov byte [ebp - 9], 1
mov eax, dword [ebp - 8]
cmp eax, dword [0x4bade8]
jl 0x48b4fc
cmp byte [0x4b97d8], 0
jne 0x48b4fc
mov eax, dword [ebp - 4]
call fcn.0048c82c
mov eax, dword [ebp - 8]
add eax, dword [0x4bae48]
mov dword [0x4bade8], eax
mov eax, dword [ebp - 8]
cmp eax, dword [0x4baeb8]
jge 0x48b56a
cmp dword [0x4bb000], 0xffffffff
je 0x48b540
cmp byte [0x4b97a0], 0
jne 0x48b540
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 4]
mov edx, dword [0x4bb000]
mov eax, dword [eax + edx*4]
mov edx, dword [0x475598]
call fcn.00403140
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [0x4baeb8]
sub eax, dword [ebp - 8]
mov ecx, 0x3e8
cdq
idiv ecx
lea edx, [ebp - 0x24]
call fcn.004087d0
mov ecx, dword [ebp - 0x24]
mov edx, 0x48bd3c
mov eax, dword [ebp - 4]
call fcn.004935c8
jmp 0x48b59a
cmp dword [0x4bb000], 0xffffffff
je 0x48b59a
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 4]
mov edx, dword [0x4bb000]
mov eax, dword [eax + edx*4]
mov edx, dword [0x475598]
call fcn.00403140
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [ebp - 8]
cmp eax, dword [0x4baebc]
jge 0x48b5ff
cmp dword [0x4bb004], 0xffffffff
je 0x48b5d5
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 4]
mov edx, dword [0x4bb004]
mov eax, dword [eax + edx*4]
mov edx, dword [0x475598]
call fcn.00403140
mov dl, 1
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov eax, dword [0x4baebc]
sub eax, dword [ebp - 8]
mov ecx, 0x3e8
cdq
idiv ecx
lea edx, [ebp - 0x28]
call fcn.004087d0
mov ecx, dword [ebp - 0x28]
mov edx, 0x48bd54
mov eax, dword [ebp - 4]
call fcn.004935c8
jmp 0x48b62f
cmp dword [0x4bb004], 0xffffffff
je 0x48b62f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 4]
mov edx, dword [0x4bb004]
mov eax, dword [eax + edx*4]
mov edx, dword [0x475598]
call fcn.00403140
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x2c]
cmp byte [0x4b97a0], 0
jne 0x48b8c7
mov eax, dword [0x4baf90]
call fcn.00405248
cmp eax, 5
jle 0x48b6d7
mov edx, dword [0x4baf90]
mov edx, dword [edx]
mov ecx, edx
shl edx, 3
sub edx, ecx
mov ecx, dword [0x4bae08]
cmp dword [ecx + edx*8 + 4], 5
jne 0x48b6d0
mov edx, dword [0x4baf90]
mov edx, dword [edx + eax*4]
mov ecx, edx
shl edx, 3
sub edx, ecx
mov ecx, dword [0x4bae08]
mov edx, dword [ecx + edx*8 + 4]
mov ecx, dword [0x4baf90]
mov eax, dword [ecx + eax*4 - 4]
mov ecx, eax
shl eax, 3
sub eax, ecx
mov ecx, dword [0x4bae08]
cmp edx, dword [ecx + eax*8 + 4]
jne 0x48b6d0
cmp byte [0x4baf6c], 0
jne 0x48b6d0
mov eax, dword [ebp - 8]
cmp eax, dword [0x4baeb8]
jle 0x48b6d0
cmp byte [0x4b97a4], 0
jne 0x48b6c7
mov eax, dword [ebp - 8]
mov dword [0x4bafd8], eax
mov byte [0x4b97a4], 1
jmp 0x48b6d7
mov byte [0x4b97a4], 0
cmp byte [0x4b97a4], 0
je 0x48b8c7
mov eax, dword [ebp - 8]
sub eax, dword [0x4bafd8]
cmp eax, dword [0x4b97a8]
jle 0x48b8c7
mov dword [0x4baf80], 4
mov edx, 0x48bd70
mov eax, dword [ebp - 4]
call fcn.004a2cd0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d0]
mov edx, 0x48bd84
call fcn.004728d0
jmp 0x48b8c7
cmp dword [0x4baf78], 0
jle 0x48b8c7
mov eax, dword [0x4badc8]
sub eax, dword [0x4badc0]
cmp eax, dword [0x4bae6c]
jge 0x48b75d
cmp byte [0x4badd4], 0
jge 0x48b75d
mov al, byte [0x4baf78]
add eax, eax
mov byte [0x4badd4], al
mov eax, dword [0x4badc8]
add eax, dword [0x4badc4]
cmp eax, dword [0x4bae70]
jle 0x48b789
cmp byte [0x4badd4], 0
jle 0x48b789
mov al, byte [0x4baf78]
mov edx, eax
neg eax
add eax, eax
mov byte [0x4badd4], al
movsx eax, byte [0x4badd4]
add dword [0x4badc8], eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d0]
mov edx, dword [eax + 4]
mov ecx, 0x48bd9c
call fcn.0047bc10
mov ebx, eax
cmp ebx, 0xffffffff
je 0x48b8c3
call sub.kernel32.dll_GetTickCount
mov dword [ebp - 0x30], eax
xor eax, eax
mov dword [ebp - 0x2c], eax
fild qword [ebp - 0x30]
fdiv dword [0x48bd30]
call fcn.00402a4c
fcomp dword [0x48bdb4]
fnstsw ax
sahf
jbe 0x48b851
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 4]
mov eax, dword [eax + ebx*4]
mov edx, dword [0x475914]
call fcn.00403140
add eax, 0x38
push eax
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 4]
mov eax, dword [eax + ebx*4]
mov edx, dword [0x475914]
call fcn.00403140
mov esi, eax
mov eax, dword [esi + 0x4c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 4]
mov eax, dword [eax + ebx*4]
mov edx, dword [0x475914]
call fcn.00403140
mov eax, esi
mov ecx, 1
pop edx
call fcn.00476500
mov edx, dword [ebp - 0x34]
pop eax
call fcn.00403c8c
jmp 0x48b8c3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 4]
mov eax, dword [eax + ebx*4]
mov edx, dword [0x475914]
call fcn.00403140
add eax, 0x38
push eax
lea eax, [ebp - 0x38]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 4]
mov eax, dword [eax + ebx*4]
mov edx, dword [0x475914]
call fcn.00403140
mov esi, eax
mov eax, dword [esi + 0x4c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x2d0]
mov eax, dword [eax + 4]
mov eax, dword [eax + ebx*4]
mov edx, dword [0x475914]
call fcn.00403140
mov eax, esi
mov ecx, 2
pop edx
call fcn.00476500
mov edx, dword [ebp - 0x38]
pop eax
call fcn.00403c8c
mov byte [ebp - 9], 1
cmp byte [0x4b9790], 0
je 0x48b8e2
mov eax, dword [ebp - 8]
cmp eax, dword [0x4baf74]
jle 0x48b8e2
mov byte [0x4b9790], 0
mov eax, dword [0x4bae34]
call fcn.00405248
mov edi, eax
test edi, edi
jl 0x48b96f
inc edi
xor ebx, ebx
imul esi, ebx, 0x17
mov eax, dword [0x4bae34]
mov eax, dword [eax + esi*4 + 0x1c]
cmp eax, dword [ebp - 8]
jge 0x48b96b
mov eax, dword [0x4bae34]
mov eax, dword [eax + esi*4 + 0x14]
call fcn.00405240
dec eax
jle 0x48b96b
mov byte [ebp - 9], 1
mov eax, dword [0x4bae34]
mov eax, dword [eax + esi*4 + 0x14]
call fcn.00405248
mov edx, dword [0x4bae34]
cmp eax, dword [edx + esi*4 + 0x20]
jle 0x48b940
mov eax, dword [0x4bae34]
inc dword [eax + esi*4 + 0x20]
jmp 0x48b94b
mov eax, dword [0x4bae34]
xor edx, edx
mov dword [eax + esi*4 + 0x20], edx
mov eax, dword [0x4bae34]
mov eax, dword [eax + esi*4 + 0x20]
mov edx, dword [0x4bae34]
mov edx, dword [edx + esi*4 + 0x18]
mov eax, dword [edx + eax*4]
mov edx, dword [0x4bae34]
add dword [edx + esi*4 + 0x1c], eax
inc ebx
dec edi
jne 0x48b8f5
cmp byte [ebp - 9], 0
je 0x48b97d
mov eax, dword [ebp - 4]
call fcn.004a2840
mov eax, dword [0x4baf60]
call fcn.00405248
mov edi, eax
test edi, edi
jl 0x48bb68
inc edi
xor ebx, ebx
mov esi, ebx
shl esi, 2
mov eax, dword [0x4baf60]
mov eax, dword [eax + esi*8 + 0x14]
call fcn.00405248
inc eax
je 0x48ba97
mov eax, dword [0x4baf60]
lea eax, [eax + esi*8]
mov dword [ebp - 0x18], eax
mov eax, dword [0x4baf60]
mov eax, dword [eax + esi*8]
mov edx, dword [0x4baec8]
call fcn.00403fc8
jne 0x48ba97
mov eax, dword [ebp - 0x18]
mov eax, dword [eax + 0x14]
call fcn.00405248
test eax, eax
jl 0x48ba97
inc eax
mov dword [ebp - 0x1c], eax
xor esi, esi
lea eax, [esi + esi*4]
mov edx, dword [ebp - 0x18]
mov edx, dword [edx + 0x14]
mov eax, dword [edx + eax*8 + 0x20]
mov edx, dword [ebp - 0x18]
add eax, dword [edx + 0x1c]
cmp eax, dword [ebp - 8]
jle 0x48ba8d
lea eax, [esi + esi*4]
mov edx, dword [ebp - 0x18]
mov edx, dword [edx + 0x14]
push dword [edx + eax*8 + 0x24]
mov eax, dword [ebp - 8]
pop edx
sub eax, edx
lea edx, [esi + esi*4]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 0x14]
mov ecx, dword [ecx + edx*8 + 0x18]
cdq
idiv ecx
test eax, eax
jle 0x48ba8d
mov dword [ebp - 0x20], eax
call sub.kernel32.dll_GetTickCount
xor edx, edx
push edx
push eax
lea eax, [esi + esi*4]
mov edx, dword [ebp - 0x18]
mov edx, dword [edx + 0x14]
mov eax, dword [edx + eax*8 + 0x24]
lea edx, [esi + esi*4]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 0x14]
add eax, dword [ecx + edx*8 + 0x18]
cdq
cmp edx, dword [esp + 4]
jne 0x48ba64
cmp eax, dword [esp]
pop edx
pop eax
jae 0x48ba88
jmp 0x48ba68
pop edx
pop eax
jge 0x48ba88
push 0
mov ecx, esi
mov edx, ebx
mov eax, dword [ebp - 4]
call fcn.004a9b24
call sub.kernel32.dll_GetTickCount
lea edx, [esi + esi*4]
mov ecx, dword [ebp - 0x18]
mov ecx, dword [ecx + 0x14]
mov dword [ecx + edx*8 + 0x24], eax
dec dword [ebp - 0x20]
jne 0x48ba31
inc esi
dec dword [ebp - 0x1c]
jne 0x48b9eb
mov esi, ebx
shl esi, 2
mov eax, dword [0x4baf60]
cmp dword [eax + esi*8 + 0x18], 0xffffffff
je 0x48bb60
mov eax, dword [0x4baf60]
mov eax, dword [eax + esi*8]
mov edx, dword [0x4baec8]
call fcn.00403fc8
jne 0x48bb60
mov eax, dword [0x4baf60]
mov eax, dword [eax + esi*8 + 0x1c]
mov edx, ebx
shl edx, 2
mov ecx, dword [0x4baf60]
add eax, dword [ecx + edx*8 + 0x18]
cmp eax, dword [ebp - 8]
jge 0x48bb60
mov eax, dword [0x4baf60]
mov edx, dword [ebp - 8]
mov dword [eax + esi*8 + 0x1c], edx
mov eax, dword [0x4baf60]
mov eax, dword [eax + esi*8 + 0x14]
call fcn.00405248
test eax, eax
jl 0x48bb2d
inc eax
mov dword [ebp - 0x1c], eax
xor eax, eax
mov edx, ebx
shl edx, 2
mov ecx, dword [0x4baf60]
push dword [ecx + edx*8 + 0x1c]
mov ecx, dword [0x4baf60]
mov edx, dword [ecx + edx*8 + 0x14]
lea ecx, [eax + eax*4]
pop esi
mov dword [edx + ecx*8 + 0x24], esi
inc eax
dec dword [ebp - 0x1c]
jne 0x48bb06
push 0xffffffffffffffff
push 0xffffffffffffffff
lea ecx, [ebp - 0x30]
xor edx, edx
xor eax, eax
call fcn.004103a0
lea eax, [ebp - 0x30]
push eax
push 0
mov esi, ebx
shl esi, 2
mov eax, dword [0x4baf60]
mov ecx, dword [eax + esi*8]
mov eax, dword [0x4baf60]
mov edx, dword [eax + esi*8]
mov eax, dword [ebp - 4]
call fcn.004a8ef4
inc ebx
dec edi
jne 0x48b994
mov eax, dword [0x4baed0]
call fcn.00405248
mov edi, eax
test edi, edi
jl 0x48bc72
inc edi
xor ebx, ebx
lea esi, [ebx + ebx*2]
mov eax, dword [0x4baed0]
mov eax, dword [eax + esi*8 + 0x10]
mov edx, dword [0x4baed0]
add eax, dword [edx + esi*8 + 8]
cmp eax, dword [ebp - 8]
jge 0x48bc6a
mov eax, dword [0x4baed0]
cmp dword [eax + esi*8 + 0x14], 0
je 0x48bc21
mov eax, dword [0x4bae34]
call fcn.00405248
test eax, eax
jl 0x48bc37
inc eax
mov dword [ebp - 0x1c], eax
xor esi, esi
imul eax, esi, 0x17
mov edx, dword [0x4bae34]
mov eax, dword [edx + eax*4]
lea edx, [ebx + ebx*2]
mov ecx, dword [0x4baed0]
mov edx, dword [ecx + edx*8 + 0x14]
call fcn.00403fc8
jne 0x48bc19
imul eax, esi, 0x17
mov edx, dword [0x4bae34]
mov eax, dword [edx + eax*4 + 0x40]
lea edx, [ebx + ebx*2]
mov ecx, dword [0x4baed0]
add eax, dword [ecx + edx*8]
mov dword [ebp - 0x14], eax
imul eax, esi, 0x17
mov edx, dword [0x4bae34]
mov eax, dword [edx + eax*4 + 0x44]
lea edx, [ebx + ebx*2]
mov ecx, dword [0x4baed0]
add eax, dword [ecx + edx*8 + 4]
mov dword [ebp - 0x10], eax
jmp 0x48bc37
inc esi
dec dword [ebp - 0x1c]
jne 0x48bbbe
jmp 0x48bc37
lea eax, [ebx + ebx*2]
mov edx, dword [0x4baed0]
mov ecx, dword [edx + eax*8]
mov dword [ebp - 0x14], ecx
mov ecx, dword [edx + eax*8 + 4]
mov dword [ebp - 0x10], ecx
push 0xffffffffffffffff
push 0xffffffffffffffff
lea eax, [ebp - 0x14]
push eax
push 0
lea esi, [ebx + ebx*2]
mov eax, dword [0x4baed0]
mov ecx, dword [eax + esi*8 + 0xc]
mov eax, dword [0x4baed0]
mov edx, dword [eax + esi*8 + 0xc]
mov eax, dword [ebp - 4]
call fcn.004a8ef4
mov eax, dword [0x4baed0]
mov edx, dword [ebp - 8]
mov dword [eax + esi*8 + 0x10], edx
inc ebx
dec edi
jne 0x48bb7f
mov eax, dword [0x4bad9c]
mov eax, dword [eax + 0x18]
call fcn.00405248
mov edi, eax
test edi, edi
jl 0x48bcdc
inc edi
xor ebx, ebx
imul edx, ebx, 0x2b
mov eax, dword [0x4bad9c]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + edx*8 + 0xf0]
cmp eax, 0xffffffff
je 0x48bcd8
imul ecx, ebx, 0x2b
mov esi, dword [0x4bad9c]
mov esi, dword [esi + 0x18]
mov ecx, eax
shl eax, 3
sub eax, ecx
mov ecx, dword [0x4bae08]
mov eax, dword [ecx + eax*8 + 8]
sub eax, dword [0x4badc8]
add eax, dword [0x4badc0]
add eax, 5
mov ecx, dword [0x4bad9c]
mov ecx, dword [ecx + 0x18]
mov dword [ecx + edx*8 + 0x44], eax
inc ebx
dec edi
jne 0x48bc88
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x48bd0b
lea eax, [ebp - 0x38]
mov edx, 2
call fcn.00403c5c
lea eax, [ebp - 0x28]
mov edx, 2
call fcn.00403c5c
ret