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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
push ebx
push esi
push edi
mov dword [ebp - 0x44], 0x47800000
mov dword [ebp - 0x20], 0x40c00000
mov dword [ebp - 8], 0x548f48
mov eax, dword [0x579054]
add eax, 0xff
shl eax, 8
mov dword [ebp - 0x10], eax
mov ebx, dword [0x5790a4]
add ebx, 0x7f
shl ebx, 8
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x38], 0
jmp 0x4156cf
mov eax, dword [ebp - 0x38]
add eax, 1
mov dword [ebp - 0x38], eax
mov ecx, dword [ebp - 0x38]
cmp ecx, dword [0x545938]
jae 0x415c86
mov edx, dword [ebp - 0x38]
imul edx, edx, 0x1c
fld dword [edx + 0x548f58]
fcomp dword [0x439224]
fnstsw ax
test ah, 0x41
jne 0x41572a
mov eax, dword [ebp - 0x38]
imul eax, eax, 0x1c
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], 0
fild qword [ebp - 0x50]
fmul dword [0x4392f4]
fsubr dword [eax + 0x548f58]
mov edx, dword [ebp - 0x38]
imul edx, edx, 0x1c
fstp dword [edx + 0x548f58]
jmp 0x415d42
mov eax, dword [ebp - 0x38]
imul eax, eax, 0x1c
mov dword [eax + 0x548f58], 0
mov ecx, dword [ebp - 8]
mov dword [ebp - 0x28], ecx
mov edx, dword [ebp - 0x38]
add edx, 1
mov dword [ebp - 0x48], edx
jmp 0x415754
mov eax, dword [ebp - 0x48]
add eax, 1
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x48]
cmp ecx, dword [0x545938]
jae 0x4159bb
mov edx, dword [ebp - 0x28]
add edx, 0x1c
mov dword [ebp - 0x28], edx
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 8]
mov eax, dword [edi + 0x10]
and eax, eax
jne 0x4159b5
fld dword [esi]
fsub dword [edi]
fld dword [esi + 4]
fsub dword [edi + 4]
fxch st(1)
fmul st(0), st(0)
fxch st(1)
fmul st(0), st(0)
faddp st(1)
fstp dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x20]
cmp eax, ebx
jae 0x4159b5
mov eax, dword [ebp - 0x38]
imul eax, eax, 0x1c
mov ecx, dword [ebp - 0x48]
imul ecx, ecx, 0x1c
fld dword [eax + 0x548f48]
fcomp dword [ecx + 0x548f48]
fnstsw ax
test ah, 1
je 0x415824
mov edx, dword [ebp - 0x38]
imul edx, edx, 0x1c
mov eax, dword [ebp - 0x48]
imul eax, eax, 0x1c
fld dword [edx + 0x548f50]
fsub dword [eax + 0x548f50]
fstp dword [ebp - 0x34]
fld dword [ebp - 0x34]
fcomp dword [0x439224]
fnstsw ax
test ah, 0x41
jne 0x415822
mov ecx, dword [ebp - 0x38]
imul ecx, ecx, 0x1c
fld dword [ecx + 0x548f50]
fsub dword [ebp - 0x34]
mov edx, dword [ebp - 0x38]
imul edx, edx, 0x1c
fstp dword [edx + 0x548f50]
mov eax, dword [ebp - 0x48]
imul eax, eax, 0x1c
fld dword [ebp - 0x34]
fadd dword [eax + 0x548f50]
mov ecx, dword [ebp - 0x48]
imul ecx, ecx, 0x1c
fstp dword [ecx + 0x548f50]
jmp 0x415885
mov edx, dword [ebp - 0x48]
imul edx, edx, 0x1c
mov eax, dword [ebp - 0x38]
imul eax, eax, 0x1c
fld dword [edx + 0x548f50]
fsub dword [eax + 0x548f50]
fstp dword [ebp - 0x34]
fld dword [ebp - 0x34]
fcomp dword [0x439224]
fnstsw ax
test ah, 0x41
jne 0x415885
mov ecx, dword [ebp - 0x48]
imul ecx, ecx, 0x1c
fld dword [ecx + 0x548f50]
fsub dword [ebp - 0x34]
mov edx, dword [ebp - 0x48]
imul edx, edx, 0x1c
fstp dword [edx + 0x548f50]
mov eax, dword [ebp - 0x38]
imul eax, eax, 0x1c
fld dword [ebp - 0x34]
fadd dword [eax + 0x548f50]
mov ecx, dword [ebp - 0x38]
imul ecx, ecx, 0x1c
fstp dword [ecx + 0x548f50]
mov edx, dword [ebp - 0x38]
imul edx, edx, 0x1c
mov eax, dword [ebp - 0x48]
imul eax, eax, 0x1c
fld dword [edx + 0x548f4c]
fcomp dword [eax + 0x548f4c]
fnstsw ax
test ah, 1
je 0x415907
mov ecx, dword [ebp - 0x38]
imul ecx, ecx, 0x1c
mov edx, dword [ebp - 0x48]
imul edx, edx, 0x1c
fld dword [ecx + 0x548f54]
fsub dword [edx + 0x548f54]
fstp dword [ebp - 0x34]
fld dword [ebp - 0x34]
fcomp dword [0x439224]
fnstsw ax
test ah, 0x41
jne 0x415905
mov eax, dword [ebp - 0x38]
imul eax, eax, 0x1c
fld dword [eax + 0x548f54]
fsub dword [ebp - 0x34]
mov ecx, dword [ebp - 0x38]
imul ecx, ecx, 0x1c
fstp dword [ecx + 0x548f54]
mov edx, dword [ebp - 0x48]
imul edx, edx, 0x1c
fld dword [ebp - 0x34]
fadd dword [edx + 0x548f54]
mov eax, dword [ebp - 0x48]
imul eax, eax, 0x1c
fstp dword [eax + 0x548f54]
jmp 0x415968
mov ecx, dword [ebp - 0x48]
imul ecx, ecx, 0x1c
mov edx, dword [ebp - 0x38]
imul edx, edx, 0x1c
fld dword [ecx + 0x548f54]
fsub dword [edx + 0x548f54]
fstp dword [ebp - 0x34]
fld dword [ebp - 0x34]
fcomp dword [0x439224]
fnstsw ax
test ah, 0x41
jne 0x415968
mov eax, dword [ebp - 0x48]
imul eax, eax, 0x1c
fld dword [eax + 0x548f54]
fsub dword [ebp - 0x34]
mov ecx, dword [ebp - 0x48]
imul ecx, ecx, 0x1c
fstp dword [ecx + 0x548f54]
mov edx, dword [ebp - 0x38]
imul edx, edx, 0x1c
fld dword [ebp - 0x34]
fadd dword [edx + 0x548f54]
mov eax, dword [ebp - 0x38]
imul eax, eax, 0x1c
fstp dword [eax + 0x548f54]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x40]
sub ecx, dword [0x57ab4c]
cmp ecx, 0x32
jbe 0x4159ad
push 0x3f800000
mov edx, dword [ebp - 0x38]
imul edx, edx, 0x1c
mov eax, dword [edx + 0x548f60]
push eax
push 0x3c1374bc
mov ecx, dword [ebp - 0x38]
imul ecx, ecx, 0x1c
mov edx, dword [ecx + 0x548f5c]
push edx
push 1
call fcn.0040ab60
add esp, 0x14
mov eax, dword [ebp - 0x40]
mov dword [0x57ab4c], eax
nop
jmp 0x41574b
mov dword [ebp - 0x3c], 0
jmp 0x4159cd
mov ecx, dword [ebp - 0x3c]
add ecx, 2
mov dword [ebp - 0x3c], ecx
mov edx, dword [ebp - 0x3c]
cmp edx, dword [ebp + 8]
jae 0x415ba1
mov esi, dword [ebp - 8]
fld dword [ebp - 0x44]
fld dword [esi + 8]
fmul dword [0x57905c]
fadd dword [esi]
fld dword [esi + 0xc]
fmul dword [0x57905c]
fadd dword [esi + 4]
fld dword [esi]
fmul st(3)
fld dword [esi + 4]
fmul st(4)
fxch st(3)
fmul st(4)
fxch st(2)
fmulp st(4)
fistp dword [ebp - 0x14]
fistp dword [ebp - 0x2c]
fistp dword [ebp - 0x24]
fistp dword [ebp - 0x30]
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x24]
sar eax, 0x10
mov ecx, dword [ebp - 0x2c]
sar ebx, 0x10
mov edx, dword [ebp - 0x30]
sar ecx, 0x10
mov dword [ebp - 0x14], eax
sar edx, 0x10
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x2c], ecx
sub eax, ecx
mov dword [ebp - 0x30], edx
sub ebx, edx
or eax, ebx
je 0x415b7b
mov eax, dword [ebp - 0x30]
push eax
mov ecx, dword [ebp - 0x2c]
push ecx
call fcn.00415610
add esp, 8
test eax, eax
je 0x415b7b
mov edx, dword [ebp - 0x14]
cmp edx, dword [ebp - 0x2c]
je 0x415b09
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x30]
je 0x415b09
mov ecx, dword [ebp - 0x30]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.00415610
add esp, 8
test eax, eax
jne 0x415aa3
mov eax, dword [ebp - 0x38]
imul eax, eax, 0x1c
fld dword [eax + 0x548f50]
fchs
mov ecx, dword [ebp - 0x38]
imul ecx, ecx, 0x1c
fstp dword [ecx + 0x548f50]
jmp 0x415b07
mov edx, dword [ebp - 0x24]
push edx
mov eax, dword [ebp - 0x2c]
push eax
call fcn.00415610
add esp, 8
test eax, eax
jne 0x415ad3
mov ecx, dword [ebp - 0x38]
imul ecx, ecx, 0x1c
fld dword [ecx + 0x548f54]
fchs
mov edx, dword [ebp - 0x38]
imul edx, edx, 0x1c
fstp dword [edx + 0x548f54]
jmp 0x415b07
mov eax, dword [ebp - 0x38]
imul eax, eax, 0x1c
fld dword [eax + 0x548f50]
fchs
mov ecx, dword [ebp - 0x38]
imul ecx, ecx, 0x1c
fstp dword [ecx + 0x548f50]
mov edx, dword [ebp - 0x38]
imul edx, edx, 0x1c
fld dword [edx + 0x548f54]
fchs
mov eax, dword [ebp - 0x38]
imul eax, eax, 0x1c
fstp dword [eax + 0x548f54]
jmp 0x415b2e
mov esi, dword [ebp - 8]
mov eax, dword [ebp - 0x14]
mov ebx, dword [ebp - 0x2c]
cmp eax, ebx
je 0x415b1d
xor dword [esi + 8], 0x80000000
mov eax, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x30]
cmp eax, ebx
je 0x415b2e
xor dword [esi + 0xc], 0x80000000
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x40], eax
mov ecx, dword [ebp - 0x40]
sub ecx, dword [0x57ab4c]
cmp ecx, 0x32
jbe 0x415b73
push 0x3f000000
mov edx, dword [ebp - 0x38]
imul edx, edx, 0x1c
mov eax, dword [edx + 0x548f60]
push eax
push 0x3c1374bc
mov ecx, dword [ebp - 0x38]
imul ecx, ecx, 0x1c
mov edx, dword [ecx + 0x548f5c]
push edx
push 0
call fcn.0040ab60
add esp, 0x14
mov eax, dword [ebp - 0x40]
mov dword [0x57ab4c], eax
mov esi, dword [ebp - 8]
fld dword [esi + 8]
fmul dword [0x57905c]
fadd dword [esi]
fld dword [esi + 0xc]
fmul dword [0x57905c]
fadd dword [esi + 4]
fxch st(1)
fstp dword [esi]
fstp dword [esi + 4]
jmp 0x4159c4
mov ecx, dword [ebp - 0x24]
push ecx
mov edx, dword [ebp - 0x14]
push edx
call fcn.00415610
add esp, 8
test eax, eax
je 0x415c24
mov eax, dword [ebp - 0x38]
imul eax, eax, 0x1c
mov dword [eax + 0x548f48], 0x42000000
mov ecx, dword [ebp - 0x38]
imul ecx, ecx, 0x1c
mov dword [ecx + 0x548f4c], 0x42820000
mov edx, dword [ebp - 0x38]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x54], 0
fild qword [ebp - 0x58]
fmul dword [0x439334]
fadd dword [0x4392a4]
mov eax, dword [ebp - 0x38]
imul eax, eax, 0x1c
fstp dword [eax + 0x548f58]
mov ecx, dword [ebp - 0x38]
imul ecx, ecx, 0x1c
mov edx, dword [ecx + 0x548f60]
push edx
push 0x3c23d70a
mov eax, dword [ebp - 0x38]
imul eax, eax, 0x1c
mov ecx, dword [eax + 0x548f5c]
push ecx
call fcn.004160c0
add esp, 0xc
mov edx, dword [ebp - 0x38]
imul edx, edx, 0x1c
fld dword [edx + 0x548f48]
fmul dword [0x439334]
fdiv dword [0x439260]
fadd dword [0x439394]
mov eax, dword [ebp - 0x38]
imul eax, eax, 0x1c
fstp dword [eax + 0x548f5c]
mov ecx, dword [ebp - 0x38]
imul ecx, ecx, 0x1c
fld dword [ecx + 0x548f4c]
fmul dword [0x439334]
fdiv dword [0x439260]
fadd dword [0x439394]
mov edx, dword [ebp - 0x38]
imul edx, edx, 0x1c
fstp dword [edx + 0x548f60]
mov eax, dword [ebp - 8]
add eax, 0x1c
mov dword [ebp - 8], eax
jmp 0x4156c6
mov eax, dword [ebp - 0x10]
mov ebx, dword [ebp - 0x1c]
shr eax, 8
shr ebx, 8
sub eax, 0xff
sub ebx, 0x7f
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x1c], ebx
mov ecx, dword [ebp - 0x10]
mov edx, dword [ecx + 0x78]
mov dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x10]
mov cl, byte [eax + 0x59]
mov byte [ebp - 4], cl
mov eax, dword [ebp - 0xc]
mov ebx, dword [ebp - 0x1c]
add eax, 0x217
mov dl, byte [ebp - 4]
xor eax, 0xe5
and eax, 0x3f
cmp al, dl
je 0x415ccf
mov byte [ebx], 1
mov edx, dword [ebp + 8]
mov dword [ebp - 0x60], edx
mov dword [ebp - 0x5c], 0
fild qword [ebp - 0x60]
fmul dword [0x4392bc]
fmul dword [0x57905c]
fadd dword [0x5790f0]
fstp dword [0x5790f0]
fld dword [0x5790f0]
fcomp dword [0x439230]
fnstsw ax
test ah, 0x41
jne 0x415d1c
fld dword [0x5790f0]
fsub dword [0x439230]
fstp dword [0x5790f0]
mov eax, dword [0x5790f0]
push eax
mov ecx, dword [0x5810ac]
push ecx
call fcn.00401160
add esp, 8
mov edx, dword [0x5810ac]
push edx
call fcn.00401570
add esp, 4
jmp 0x415d47
jmp 0x415c24
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret