Function at 0x480740
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 0x40
add esp, 0xfffff004
push eax
dec eax
jne 0x480749
mov eax, dword [ebp - 4]
add esp, 0xffffff14
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x400e8], edx
mov dword [ebp - 0x400e4], edx
mov dword [ebp - 0x400a0], edx
mov dword [ebp - 0x4006c], edx
mov dword [ebp - 0x40014], edx
mov dword [ebp - 0x4001c], edx
mov dword [ebp - 0x40018], edx
mov dword [ebp - 0xc], eax
lea esi, [ebp - 0xc]
xor eax, eax
push ebp
push 0x480f83
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x53f424
call sub.kernel32.dll_QueryPerformanceCounter_1
mov eax, dword [esi]
mov byte [eax + 0x96580], 1
push 0x8000
lea eax, [ebp - 0x40014]
mov ecx, 1
mov edx, dword [0x47fd58]
call fcn.00405854
add esp, 4
push 0x8000
lea eax, [ebp - 0x4001c]
mov ecx, 1
mov edx, dword [0x47fd58]
call fcn.00405854
add esp, 4
push 0x8000
lea eax, [ebp - 0x40018]
mov ecx, 1
mov edx, dword [0x47fd58]
call fcn.00405854
add esp, 4
mov eax, dword [esi]
inc dword [eax + 0x330]
lea eax, [ebp - 0x4006c]
push eax
mov eax, dword [esi]
mov eax, dword [eax + 0x330]
mov dword [ebp - 0x40074], eax
mov byte [ebp - 0x40070], 0
lea edx, [ebp - 0x40074]
xor ecx, ecx
mov eax, 0x480f9c
call fcn.004096b8
mov edx, dword [ebp - 0x4006c]
mov eax, dword [esi]
mov eax, dword [eax + 0x300]
call fcn.0043715c
mov eax, dword [esi]
mov eax, dword [eax + 0x31c]
mov edx, 0x480fb4
call fcn.0043715c
mov eax, dword [esi]
mov eax, dword [eax + 0x320]
mov edx, 0x480fb4
call fcn.0043715c
mov eax, dword [esi]
mov byte [eax + 0x56558], 1
mov eax, dword [esi]
xor edx, edx
mov dword [eax + 0x56560], edx
mov dword [eax + 0x56564], edx
mov eax, dword [esi]
xor edx, edx
mov dword [eax + 0x56568], edx
mov dword [eax + 0x5656c], edx
mov eax, dword [esi]
xor edx, edx
mov dword [eax + 0x56570], edx
mov dword [eax + 0x56574], edx
mov eax, dword [esi]
xor edx, edx
mov dword [eax + 0x56578], edx
mov eax, dword [esi]
add eax, 0x338
mov edx, 0xac43
call fcn.00427f44
fstp qword [ebp - 8]
wait
xor ebx, ebx
mov eax, dword [esi]
fld qword [eax + ebx*8 + 0x338]
fsub qword [ebp - 8]
mov eax, dword [esi]
fstp qword [eax + ebx*8 + 0x338]
wait
inc ebx
cmp ebx, 0xac44
jne 0x4808d3
push ebp
lea eax, [ebp - 0x4009c]
call fcn.0047fd84
pop ecx
push esi
lea esi, [ebp - 0x4009c]
lea edi, [ebp - 0x40068]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
pop esi
mov eax, dword [esi]
mov edx, dword [ebp - 0x40060]
mov dword [eax + 0x56560], edx
mov edx, dword [ebp - 0x4005c]
mov dword [eax + 0x56564], edx
lea eax, [ebp - 0x400a0]
push eax
fld qword [ebp - 0x40060]
fstp xword [ebp - 0x400c4]
wait
lea eax, [ebp - 0x400c4]
mov dword [ebp - 0x400b8], eax
mov byte [ebp - 0x400b4], 3
fld qword [ebp - 0x40058]
fstp xword [ebp - 0x400d0]
wait
lea eax, [ebp - 0x400d0]
mov dword [ebp - 0x400b0], eax
mov byte [ebp - 0x400ac], 3
fld qword [ebp - 0x40050]
fstp xword [ebp - 0x400dc]
wait
lea eax, [ebp - 0x400dc]
mov dword [ebp - 0x400a8], eax
mov byte [ebp - 0x400a4], 3
lea edx, [ebp - 0x400b8]
mov ecx, 2
mov eax, 0x480fc0
call fcn.004096b8
mov edx, dword [ebp - 0x400a0]
mov eax, dword [esi]
mov eax, dword [eax + 0x31c]
call fcn.0043715c
cmp byte [ebp - 0x40068], 0
jne 0x480f30
xor ebx, ebx
mov eax, ebx
add eax, eax
mov edx, dword [ebp - 0x40014]
mov ecx, dword [esi]
mov edi, dword [ecx + ebx*8 + 0x338]
mov dword [edx + eax*8], edi
mov edi, dword [ecx + ebx*8 + 0x33c]
mov dword [edx + eax*8 + 4], edi
mov edx, dword [ebp - 0x40014]
xor ecx, ecx
mov dword [edx + eax*8 + 8], ecx
mov dword [edx + eax*8 + 0xc], ecx
inc ebx
cmp ebx, 0x8000
jne 0x4809cc
mov eax, dword [ebp - 0x4001c]
call fcn.004056a0
push eax
push 0x8000
mov eax, dword [ebp - 0x40014]
call fcn.004056a0
mov edx, eax
mov ecx, dword [ebp - 0x4001c]
mov eax, dword [ebp - 0x40014]
call fcn.0047bb1c
mov eax, dword [ebp - 0x4001c]
mov edx, dword [ebp - 0x40014]
push esi
mov esi, eax
mov edi, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
mov ebx, 1
fld dword [0x480fe8]
mov eax, ebx
add eax, eax
mov edx, dword [ebp - 0x4001c]
fmul qword [edx + eax*8]
mov edx, dword [ebp - 0x40014]
fstp qword [edx + eax*8]
wait
fld dword [0x480fe8]
mov edx, dword [ebp - 0x4001c]
fmul qword [edx + eax*8 + 8]
mov edx, dword [ebp - 0x40014]
fstp qword [edx + eax*8 + 8]
wait
inc ebx
cmp ebx, 0x4000
jne 0x480a50
mov ebx, 0x4000
mov eax, ebx
add eax, eax
mov edx, dword [ebp - 0x40014]
xor ecx, ecx
mov dword [edx + eax*8], ecx
mov dword [edx + eax*8 + 4], ecx
mov edx, dword [ebp - 0x40014]
xor ecx, ecx
mov dword [edx + eax*8 + 8], ecx
mov dword [edx + eax*8 + 0xc], ecx
inc ebx
cmp ebx, 0x8000
jne 0x480a96
mov eax, dword [ebp - 0x4001c]
call fcn.004056a0
push eax
push 0x8000
mov eax, dword [ebp - 0x40014]
call fcn.004056a0
mov edx, eax
mov ecx, dword [ebp - 0x4001c]
mov eax, dword [ebp - 0x40014]
call fcn.0047bce0
mov edi, 0x7fff
sub edi, dword [ebp - 0x40048]
test edi, edi
jl 0x480b8d
inc edi
xor ebx, ebx
fld qword [ebp - 0x40060]
fsub dword [0x480fec]
fld xword [0x480ff0]
fmulp st(1)
mov dword [ebp - 0x400e0], ebx
fild dword [ebp - 0x400e0]
fmulp st(1)
fdiv dword [0x480ffc]
call fcn.00402a04
mov eax, dword [ebp - 0x40048]
add eax, ebx
add eax, eax
fstp qword [eax*8 + 0x4bf41c]
wait
fld qword [ebp - 0x40060]
fsub dword [0x480fec]
fld xword [0x480ff0]
fmulp st(1)
mov dword [ebp - 0x400e0], ebx
fild dword [ebp - 0x400e0]
fmulp st(1)
fdiv dword [0x480ffc]
call fcn.00402a4c
mov eax, dword [ebp - 0x40048]
add eax, ebx
add eax, eax
fstp qword [eax*8 + 0x4bf424]
wait
inc ebx
dec edi
jne 0x480b07
xor ebx, ebx
mov eax, 0x4bf41c
mov edx, ebx
add edx, edx
mov ecx, dword [ebp - 0x4001c]
fld qword [ecx + edx*8]
fmul qword [eax]
mov ecx, dword [ebp - 0x4001c]
fld qword [ecx + edx*8 + 8]
fmul qword [eax + 8]
faddp st(1)
mov edx, dword [esi]
fstp qword [edx + ebx*8 + 0x338]
wait
inc ebx
add eax, 0x10
cmp ebx, 0x8000
jne 0x480b94
push ebp
lea eax, [ebp - 0x4009c]
call fcn.0047fd84
pop ecx
push esi
lea esi, [ebp - 0x4009c]
lea edi, [ebp - 0x40068]
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
pop esi
mov eax, dword [esi]
mov edx, dword [ebp - 0x40058]
mov dword [eax + 0x56568], edx
mov edx, dword [ebp - 0x40054]
mov dword [eax + 0x5656c], edx
mov eax, dword [esi]
mov edx, dword [ebp - 0x40050]
mov dword [eax + 0x56570], edx
mov edx, dword [ebp - 0x4004c]
mov dword [eax + 0x56574], edx
lea eax, [ebp - 0x400e4]
push eax
fld qword [ebp - 0x40060]
fstp xword [ebp - 0x400c4]
wait
lea eax, [ebp - 0x400c4]
mov dword [ebp - 0x400b8], eax
mov byte [ebp - 0x400b4], 3
fld qword [ebp - 0x40058]
fstp xword [ebp - 0x400d0]
wait
lea eax, [ebp - 0x400d0]
mov dword [ebp - 0x400b0], eax
mov byte [ebp - 0x400ac], 3
fld qword [ebp - 0x40050]
fstp xword [ebp - 0x400dc]
wait
lea eax, [ebp - 0x400dc]
mov dword [ebp - 0x400a8], eax
mov byte [ebp - 0x400a4], 3
lea edx, [ebp - 0x400b8]
mov ecx, 2
mov eax, 0x481008
call fcn.004096b8
mov edx, dword [ebp - 0x400e4]
mov eax, dword [esi]
mov eax, dword [eax + 0x320]
call fcn.0043715c
xor ebx, ebx
mov eax, ebx
add eax, eax
mov edx, dword [ebp - 0x40014]
mov ecx, dword [esi]
mov edi, dword [ecx + ebx*8 + 0x338]
mov dword [edx + eax*8], edi
mov edi, dword [ecx + ebx*8 + 0x33c]
mov dword [edx + eax*8 + 4], edi
mov edx, dword [ebp - 0x40014]
xor ecx, ecx
mov dword [edx + eax*8 + 8], ecx
mov dword [edx + eax*8 + 0xc], ecx
inc ebx
cmp ebx, 0x8000
jne 0x480caf
mov eax, dword [ebp - 0x4001c]
call fcn.004056a0
push eax
push 0x8000
mov eax, dword [ebp - 0x40014]
call fcn.004056a0
mov edx, eax
mov ecx, dword [ebp - 0x4001c]
mov eax, dword [ebp - 0x40014]
call fcn.0047bb1c
mov eax, dword [ebp - 0x4001c]
mov edx, dword [ebp - 0x40014]
push esi
mov esi, eax
mov edi, edx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
pop esi
mov ebx, 1
fld dword [0x480fe8]
mov eax, ebx
add eax, eax
mov edx, dword [ebp - 0x4001c]
fmul qword [edx + eax*8]
mov edx, dword [ebp - 0x40014]
fstp qword [edx + eax*8]
wait
fld dword [0x480fe8]
mov edx, dword [ebp - 0x4001c]
fmul qword [edx + eax*8 + 8]
mov edx, dword [ebp - 0x40014]
fstp qword [edx + eax*8 + 8]
wait
inc ebx
cmp ebx, 0x4000
jne 0x480d33
mov ebx, 0x4000
mov eax, ebx
add eax, eax
mov edx, dword [ebp - 0x40014]
xor ecx, ecx
mov dword [edx + eax*8], ecx
mov dword [edx + eax*8 + 4], ecx
mov edx, dword [ebp - 0x40014]
xor ecx, ecx
mov dword [edx + eax*8 + 8], ecx
mov dword [edx + eax*8 + 0xc], ecx
inc ebx
cmp ebx, 0x8000
jne 0x480d79
mov eax, dword [ebp - 0x4001c]
call fcn.004056a0
push eax
push 0x8000
mov eax, dword [ebp - 0x40014]
call fcn.004056a0
mov edx, eax
mov ecx, dword [ebp - 0x4001c]
mov eax, dword [ebp - 0x40014]
call fcn.0047bce0
fld qword [ebp - 0x40058]
fchs
fld xword [0x481034]
fmulp st(1)
fdiv dword [0x481040]
call fcn.00402a04
fstp qword [0x4bf41c]
wait
fld qword [ebp - 0x40058]
fchs
fld xword [0x481034]
fmulp st(1)
fdiv dword [0x481040]
call fcn.00402a4c
fstp qword [0x4bf424]
wait
xor ebx, ebx
mov eax, ebx
add eax, eax
mov edx, dword [ebp - 0x4001c]
fld qword [edx + eax*8]
fmul qword [0x4bf41c]
mov edx, dword [ebp - 0x4001c]
fld qword [edx + eax*8 + 8]
fmul qword [0x4bf424]
faddp st(1)
mov eax, dword [esi]
fstp qword [eax + ebx*8 + 0x338]
wait
inc ebx
cmp ebx, 0x8000
jne 0x480e1a
xor ebx, ebx
mov eax, dword [ebp - 0x40048]
add eax, ebx
mov edx, dword [esi]
mov ecx, dword [esi]
mov edi, dword [edx + eax*8 + 0x338]
mov dword [ecx + ebx*8 + 0x56580], edi
mov edi, dword [edx + eax*8 + 0x33c]
mov dword [ecx + ebx*8 + 0x56584], edi
inc ebx
cmp ebx, 0x8000
jne 0x480e54
push 0x53f42c
call sub.kernel32.dll_QueryPerformanceCounter_1
lea eax, [ebp - 0x400e8]
push eax
mov eax, dword [0x53f42c]
mov edx, dword [0x53f430]
sub eax, dword [0x53f424]
sbb edx, dword [0x53f428]
push edx
push eax
mov eax, 0x3e8
xor edx, edx
call fcn.004053c8
mov dword [ebp - 0x400f0], eax
mov dword [ebp - 0x400ec], edx
fild qword [ebp - 0x400f0]
fild qword [0x53f41c]
fdivp st(1)
fstp xword [ebp - 0x400c4]
wait
lea eax, [ebp - 0x400c4]
mov dword [ebp - 0x40074], eax
mov byte [ebp - 0x40070], 3
lea edx, [ebp - 0x40074]
xor ecx, ecx
mov eax, 0x48104c
call fcn.004096b8
mov edx, dword [ebp - 0x400e8]
mov eax, dword [esi]
mov eax, dword [eax + 0x328]
call fcn.0043715c
push 0
push 0
push 0x469
mov eax, dword [0x4832b8]
mov eax, dword [eax]
call fcn.0043d914
push eax
call sub.user32.dll_PostMessageA
mov eax, dword [esi]
mov byte [eax + 0x96580], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x480f8a
lea eax, [ebp - 0x400e8]
mov edx, 2
call fcn.004045c4
lea eax, [ebp - 0x400a0]
call fcn.004045a0
lea eax, [ebp - 0x4006c]
call fcn.004045a0
lea eax, [ebp - 0x4001c]
mov edx, dword [0x47fd58]
mov ecx, 3
call fcn.00405028
ret