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

Disassembly:
sub esp, 0x2c
push esi
mov esi, ecx
xor eax, eax
cmp dword [esi + 0x444], eax
je 0x4a3e99
mov eax, dword [esi + 0x48]
mov edx, dword [eax + 0x28]
push ebx
push ebp
push edi
lea edi, [esi + 0x48]
mov ecx, edi
call edx
mov ebx, eax
mov eax, dword [edi]
mov edx, dword [eax + 0x28]
shr ebx, 0x10
mov ecx, edi
and ebx, 0xff
call edx
mov ebp, eax
mov eax, dword [edi]
mov edx, dword [eax + 0x28]
and ebp, 0xff
shl ebp, 0x10
mov ecx, edi
or ebp, ebx
call edx
fldz
mov ebx, dword [esp + 0x44]
fst dword [esp + 0x28]
mov edi, eax
fstp dword [esp + 0x20]
mov eax, dword [esp + 0x4c]
fld dword [esi + 0x1f1c]
mov ecx, eax
sub ecx, ebx
add ecx, 1
mov dword [esp + 0x34], ecx
fidiv dword [esp + 0x34]
mov dword [esi + 0x1f08], ecx
mov ecx, dword [esp + 0x50]
and edi, 0xff00
or edi, ebp
mov ebp, dword [esp + 0x48]
mov edx, ecx
sub edx, ebp
add edx, 1
mov dword [esp + 0x2c], edx
mov dword [esi + 0x1f0c], edx
sub eax, ebx
mov edx, ecx
movzx eax, ax
sub edx, ebp
movzx edx, dx
movzx ebx, cx
mov dword [esp + 0x1c], eax
movzx eax, ax
mov dword [esp + 0x24], edx
xor edx, edx
sub ebx, 1
mov dword [esp + 0x30], edi
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], edx
mov byte [esp + 0x13], dl
fstp dword [esi + 0x1f10]
imul ebx, eax
fld dword [esi + 0x1f1c]
fidiv dword [esp + 0x2c]
fstp dword [esi + 0x1f14]
fld dword [esi + 0x1f18]
fstp dword [esi + 0x450]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x24]
cmp bp, ax
jae 0x4a3e8c
sub eax, ebp
movzx eax, ax
mov dword [esp + 0x34], eax
jmp 0x4a3d60
fld dword [esi + 0x1f18]
mov eax, dword [esp + 0x44]
cmp ax, word [esp + 0x1c]
fchs
mov ecx, dword [esp + 0x18]
fstp dword [esi + 0x454]
mov dword [esp + 0x14], ecx
jae 0x4a3e5e
mov edx, dword [esp + 0x1c]
movzx ebp, ax
add ebp, ebx
add ebp, ebp
add ebp, ebp
sub edx, eax
movzx eax, dx
mov dword [esp + 0x2c], eax
jmp 0x4a3da0
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x2c]
push edx
mov edx, dword [esi + 0x3fc]
lea eax, [esp + 0x1b]
push eax
mov eax, dword [esi + 0x3f8]
lea ecx, [esp + 0x20]
push ecx
add edx, esi
push edx
call eax
test al, al
je 0x4a3e29
fild dword [esi + 0x434]
mov ecx, dword [esi + 0x430]
fld dword [esp + 0x20]
mov dword [esp + 0x24], ecx
fld1
fsubrp st(1)
fmulp st(1)
call fcn.004bad40
fild dword [esp + 0x24]
mov edi, eax
imul edi, dword [esp + 0x24]
fmul dword [esp + 0x28]
call fcn.004bad40
movzx edx, byte [esp + 0x13]
imul edx, edx, 0x45c
add edi, eax
lea eax, [edi + edi*2]
add eax, dword [edx + esi + 0x4e4]
xor edx, edx
mov cl, byte [eax]
mov dh, byte [eax + 2]
add eax, 1
mov dl, byte [eax]
movzx eax, cl
shl edx, 8
or edx, eax
mov edi, edx
mov ecx, dword [esi + 0x444]
mov dword [ecx + ebp], edi
fld dword [esi + 0x1f10]
fadd dword [esi + 0x454]
mov edi, dword [esp + 0x30]
mov eax, 1
add dword [esp + 0x14], eax
add ebp, 4
fstp dword [esi + 0x454]
sub dword [esp + 0x2c], eax
jne 0x4a3da0
fld dword [esi + 0x450]
movzx eax, word [esp + 0x1c]
mov edx, dword [esi + 0x1f08]
fsub dword [esi + 0x1f14]
add dword [esp + 0x18], edx
sub ebx, eax
sub dword [esp + 0x34], 1
fstp dword [esi + 0x450]
jne 0x4a3d60
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x38]
pop edi
pop ebp
pop ebx
pop esi
add esp, 0x2c
ret 0x14