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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 0x10], 0
push 0x14
call fcn.0048c888
add esp, 4
mov dword [ebp - 0x14], eax
mov ebx, eax
mov edi, eax
xor eax, eax
mov ecx, 5
rep stosd dword es:[edi], eax
add ebx, 0x10
push ebx
push 0xc
call fcn.0048c888
add esp, 4
pop ebx
mov dword [ebx], eax
mov edi, eax
mov esi, 0x4d2850
lodsd eax, dword [esi]
stosd dword es:[edi], eax
lodsd eax, dword [esi]
stosd dword es:[edi], eax
xor eax, eax
stosd dword es:[edi], eax
push 0x80000301
push 0
push dword [0x4d941c]
push 1
mov ebx, 0xc
mov eax, 0x4a0870
call fcn.0048e6c0
add esp, 0x10
mov ebx, dword [0x4d9450]
call fcn.0040207d
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
xor ecx, ecx
push eax
lea eax, [ebp - 8]
mov ebx, eax
pop eax
inc ecx
push ecx
push ebx
mov dword [ebx], ecx
push eax
cmp ecx, eax
jg 0x412e62
mov eax, 0x4d2ff9
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x90]
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x412bdb
push ebx
call fcn.0048c88e
add esp, 4
mov ebx, dword [0x4d9450]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [ebp - 8]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x18]
push dword [ebx]
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x44]
mov ebx, dword [0x4d9450]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [ebp - 8]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 4
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x18]
push dword [ebx]
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x44]
mov ebx, dword [0x4d9450]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [ebp - 8]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 8
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x18]
push dword [ebx]
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x44]
mov ebx, dword [0x4d9450]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [ebp - 8]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0x10
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x18]
mov ebx, dword [ebx]
call fcn.0040207d
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
xor ecx, ecx
push eax
lea eax, [ebp - 0x10]
mov ebx, eax
pop eax
inc ecx
push ecx
push ebx
mov dword [ebx], ecx
push eax
cmp ecx, eax
jg 0x412d0a
mov ebx, dword [0x4d9450]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [ebp - 8]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
mov ebx, dword [ebx + 0x10]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [ebp - 0x10]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov dword [ebp - 0x18], ebx
push dword [ebp - 0x18]
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x3c]
pop eax
pop ebx
pop ecx
jmp 0x412cb1
add esp, 0xc
fild dword [ebp - 0xc]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fadd qword [0x4d3006]
fstp qword [ebp - 0x24]
push 0
fld qword [ebp - 0x24]
call fcn.00402370
push eax
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0xa8]
push 0x4d9450
push 4
mov eax, 2
call fcn.0048e640
add esp, 8
mov eax, dword [ebp - 8]
dec eax
jl 0x412e53
mov dword [ebp - 0x18], eax
mov ebx, dword [0x4d9450]
mov dword [ebp - 0x20], ebx
call fcn.0040fc20
mov dword [ebp - 0x24], ecx
sub ecx, dword [ebp - 0x18]
jle 0x412e53
cmp ecx, 1
jle 0x412d84
mov ecx, 1
mov dword [ebp - 0x1c], ecx
cmp dword [ebp - 0x1c], 0
jle 0x412e53
mov edi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
mov dword [edi], 1
add edi, 4
mov eax, ecx
sub eax, dword [ebp - 0x1c]
mov dword [edi], eax
add edi, 4
cmp edi, ebx
je 0x412db2
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp - 0x20]
add edi, 8
mov eax, dword [ebp - 0x18]
shl eax, 2
add edi, eax
mov ecx, dword [ebp - 0x1c]
mov ebx, edi
push edi
push ecx
push ebx
mov ebx, dword [ebx]
push ebx
add ebx, 0x10
push ebx
mov ebx, dword [ebx]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x412dec
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x412de8
imul eax, dword [ebx]
jmp 0x412ddd
mov ecx, eax
test ecx, ecx
je 0x412e0b
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x412e04
push ebx
push eax
call fcn.0048c88e
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x412df2
call fcn.0048c88e
add esp, 4
pop ebx
call fcn.0048c88e
add esp, 4
pop ebx
pop ecx
add ebx, 4
dec ecx
jne 0x412dc6
pop edi
mov eax, dword [ebp - 0x1c]
shl eax, 2
mov esi, edi
add esi, eax
mov ecx, dword [ebp - 0x24]
sub ecx, dword [ebp - 0x18]
sub ecx, dword [ebp - 0x1c]
rep movsd dword es:[edi], dword [esi]
sub edi, dword [ebp - 0x20]
push edi
push dword [ebp - 0x20]
call fcn.0048c8a0
add esp, 8
mov dword [0x4d9450], eax
mov eax, dword [ebp - 0x1c]
jmp 0x412e55
xor eax, eax
jmp 0x412e62
add esp, 0xc
push 0x80000301
push 0
push dword [0x4d941c]
push 1
mov ebx, 0x10
mov eax, 0x4a0890
call fcn.0048e6c0
add esp, 0x10
mov ebx, dword [0x4d9454]
add ebx, 8
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x18]
cmp dword [ebx], 0
jle 0x412ec7
mov ebx, dword [0x4d9454]
add ebx, 0xc
mov dword [ebp - 0x20], ebx
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebx]
and eax, 1
xor eax, 1
test eax, eax
je 0x412ec7
mov eax, 1
jmp 0x412ecc
mov eax, 0
test eax, eax
je 0x412f88
mov eax, dword [0x4d9458]
and eax, 1
xor eax, 1
test eax, eax
je 0x412f88
mov dword [0x4d9458], 1
mov ebx, dword [0x4d9454]
add ebx, 0xc
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x18]
mov dword [ebx], 1
push 0x4d93f4
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x1c]
mov dword [ebp - 0x18], eax
push 0x4d93f4
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x108]
mov dword [ebp - 0x1c], eax
push 0x4d93f4
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x10c]
mov dword [ebp - 0x20], eax
mov ebx, dword [0x4d9454]
mov dword [ebp - 0x24], ebx
mov ebx, dword [0x4d9454]
add ebx, 4
mov dword [ebp - 0x28], ebx
mov ebx, dword [0x4d9454]
add ebx, 8
mov dword [ebp - 0x2c], ebx
push 0x4142d1
push 0x4142ff
mov ebx, dword [ebp - 0x2c]
push dword [ebx]
push dword [ebp - 0x28]
mov ebx, dword [ebp - 0x24]
push dword [ebx]
push dword [ebp - 0x20]
push dword [ebp - 0x1c]
push dword [ebp - 0x18]
call fcn.00413416
cmp dword [0x4d93f8], 0
je 0x41300b
push 0
mov ebx, 0x308
call sub.KERNEL32.dll_GetTickCount
add esp, 4
mov dword [ebp - 0x20], eax
fild dword [ebp - 0x20]
fstp qword [ebp - 0x20]
fld qword [ebp - 0x20]
fild dword [0x4d945c]
fstp qword [ebp - 0x28]
fsub qword [ebp - 0x28]
fstp qword [ebp - 0x30]
fld qword [ebp - 0x30]
fsub qword [0x4d300e]
fcomp qword [0x4d3016]
fnstsw ax
test ah, 1
jne 0x41300b
mov ebx, dword [ebp - 0x14]
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x18]
mov dword [ebx], 0x3e5
lea eax, [ebp - 0x14]
push eax
call fcn.00413949
push 0
mov ebx, 0x308
call sub.KERNEL32.dll_GetTickCount
add esp, 4
mov dword [0x4d945c], eax
cmp dword [0x4d9460], 0
je 0x41336c
push 0x4d93f4
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x80]
mov dword [ebp - 0x18], eax
fld dword [ebp - 0x18]
fadd dword [0x4d9464]
fstp qword [ebp - 0x20]
fld qword [ebp - 0x20]
fstp dword [ebp - 0x24]
mov eax, dword [ebp - 0x24]
mov dword [0x4d9464], eax
fld dword [0x4d9464]
fstp qword [ebp - 0x1c]
fld qword [ebp - 0x1c]
fsub qword [0x4d23c0]
fcomp qword [0x4d3016]
fnstsw ax
test ah, 1
jne 0x41336c
mov dword [0x4d9464], 0
push 0x80000301
push 0
push dword [0x4d9468]
push 1
mov ebx, 0xc
mov eax, 0x4a0870
call fcn.0048e6c0
add esp, 0x10
mov ebx, dword [0x4d946c]
call fcn.0040207d
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], 0
jle 0x413348
mov ebx, dword [0x4d946c]
call fcn.0040207d
xor ecx, ecx
push eax
lea eax, [ebp - 8]
mov ebx, eax
pop eax
inc ecx
push ecx
push ebx
mov dword [ebx], ecx
push eax
cmp ecx, eax
jg 0x4132bb
mov ebx, dword [0x4d946c]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [ebp - 8]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x18]
cmp dword [ebx], 2
jne 0x4131f8
mov eax, str.__System_Msg
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x90]
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x41312a
push ebx
call fcn.0048c88e
add esp, 4
push 2
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x44]
mov ebx, dword [0x4d946c]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [ebp - 8]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 4
mov dword [ebp - 0x18], ebx
push dword [ebp - 0x18]
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x3c]
mov ebx, dword [0x4d946c]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [ebp - 8]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 8
mov dword [ebp - 0x18], ebx
push dword [ebp - 0x18]
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x3c]
mov ebx, dword [0x4d946c]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [ebp - 8]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 0xc
mov dword [ebp - 0x18], ebx
push dword [ebp - 0x18]
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x3c]
push 0
push 4
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0xa8]
jmp 0x4132b3
mov ebx, dword [0x4d946c]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [ebp - 8]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x18]
cmp dword [ebx], 3
jne 0x4132b3
mov eax, str.__System_Msg
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
push eax
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x90]
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x413250
push ebx
call fcn.0048c88e
add esp, 4
push 3
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x44]
mov ebx, dword [0x4d946c]
mov ecx, dword [ebx]
inc ecx
shl ecx, 2
add ebx, ecx
push ebx
mov eax, dword [ebp - 8]
dec eax
pop ebx
shl eax, 2
add ebx, eax
mov ebx, dword [ebx]
add ebx, 4
mov dword [ebp - 0x18], ebx
push dword [ebp - 0x18]
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x3c]
push 0
push 2
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0xa8]
pop eax
pop ebx
pop ecx
jmp 0x4130c4
add esp, 0xc
mov ebx, dword [0x4d946c]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x4132df
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x4132db
imul eax, dword [ebx]
jmp 0x4132d0
mov ecx, eax
test ecx, ecx
je 0x413336
push ecx
push ebx
mov ebx, dword [ebx]
push ebx
add ebx, 4
push ebx
mov ebx, dword [ebx]
test ebx, ebx
je 0x4132fd
push ebx
call fcn.0048c88e
add esp, 4
pop ebx
add ebx, 4
push ebx
mov ebx, dword [ebx]
test ebx, ebx
je 0x413311
push ebx
call fcn.0048c88e
add esp, 4
pop ebx
add ebx, 4
push ebx
mov ebx, dword [ebx]
test ebx, ebx
je 0x413325
push ebx
call fcn.0048c88e
add esp, 4
pop ebx
call fcn.0048c88e
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x4132e5
call fcn.0048c88e
add esp, 4
mov eax, 0x4d23d7
mov dword [0x4d946c], eax
push 0x80000301
push 0
push dword [0x4d9468]
push 1
mov ebx, 0x10
mov eax, 0x4a0890
call fcn.0048e6c0
add esp, 0x10
push 1
push 0
push dword [0x4d942c]
call fcn.0041408b
push 1
push 0x4d93f0
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x80]
test eax, eax
jne 0x4133b1
cmp dword [0x4d9470], 0
jne 0x4133b1
xor eax, eax
jmp 0x4133b6
mov eax, 1
jmp 0x4133bb
push eax
mov ebx, dword [ebp - 0x14]
push ebx
add ebx, 0x10
push ebx
mov ebx, dword [ebx]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x4133e1
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x4133dd
imul eax, dword [ebx]
jmp 0x4133d2
mov ecx, eax
test ecx, ecx
je 0x413400
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x4133f9
push ebx
push eax
call fcn.0048c88e
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x4133e7
call fcn.0048c88e
add esp, 4
pop ebx
call fcn.0048c88e
add esp, 4
pop eax
mov esp, ebp
pop ebp
ret