Function at 0x40a530
Capabilities:
Create thread
Encrypt data using rc4 prga
Initialize winsock library

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x24
fldz
xor eax, eax
fst dword [esp + 8]
xor ecx, ecx
fldz
push ebx
fst qword [esp + 0x20]
push esi
push edi
mov word [esp + 0xc], ax
mov word [esp + 0x10], cx
fstp qword [esp + 0x20]
mov dword [0x42784c], eax
fstp dword [esp + 0x18]
fld qword [esp + 0x28]
mov edx, dword [0x4255b8]
fsub qword [0x41fa70]
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fmulp st(1)
call fcn.0040b140
mov dword [0x4255b8], eax
fld qword [esp + 0x28]
fld1
xor esi, esi
fadd st(1), st(0)
fxch st(1)
fstp qword [esp + 0x28]
mov ax, word [esp + 0xc]
movsx ecx, ax
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
fadd qword [esp + 0x20]
call fcn.0040b140
mov word [esp + 0xc], ax
fld qword [esp + 0x20]
fsub st(1)
lea ebx, [esi + 1]
fstp qword [esp + 0x20]
cmp dword [0x425f28], esi
je 0x40a661
mov edi, dword [sym.imp.KERNEL32.dll_CreateThread]
fld qword [0x425620]
mov dword [esi*4 + 0x427388], 0
fsub qword [0x41fa68]
fstp qword [0x425620]
fld dword [esp + 0x18]
fsub st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fadd dword [0x4248dc]
mov dx, word [esp + 0x10]
movsx eax, dx
mov dword [esp + 0x1c], eax
fsub qword [0x41fa60]
fild dword [esp + 0x1c]
faddp st(1)
call fcn.0040b140
push 0
push 0
push esi
mov word [esp + 0x1c], ax
fsubr dword [0x4248dc]
push 0x401c80
push 0
fstp dword [0x4248dc]
push 0
call edi
fld dword [esp + 0x14]
fsub qword [0x41fa58]
add esi, ebx
fstp dword [esp + 0x14]
fld1
cmp esi, dword [0x425f28]
jne 0x40a5d4
mov cx, word [esp + 0xc]
mov word [0x423180], cx
mov ecx, 0xffffffff
add dword [esp + 0xc], ecx
add word [0x423174], bx
movzx edx, word [0x425710]
movsx eax, dx
movzx edx, word [0x423174]
movsx edx, dx
add edx, eax
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fmul dword [esp + 0x14]
fstp dword [esp + 0x14]
add word [0x425710], cx
mov ax, word [0x4233e4]
movsx ecx, ax
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
fadd dword [0x424968]
fadd dword [esp + 0x14]
fld qword [esp + 0x20]
fadd qword [0x41fa50]
fsub qword [0x41fa48]
fcompp
fnstsw ax
fadd qword [esp + 0x20]
fstp qword [esp + 0x20]
test ah, 5
jp 0x40a71e
fld dword [esp + 0x18]
mov dx, word [0x423800]
mov cx, word [esp + 0xc]
movsx eax, dx
mov dword [esp + 0x1c], eax
movsx edx, cx
fild dword [esp + 0x1c]
mov dword [esp + 0x1c], edx
fsubp st(1)
fild dword [esp + 0x1c]
faddp st(1)
call fcn.0040b140
mov word [esp + 0x10], ax
add dword [esp + 0xc], ebx
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
push 0xa
call edi
fld dword [esp + 0x14]
mov ax, word [esp + 0x10]
fsub qword [0x41fa40]
movsx ecx, ax
mov dword [esp + 0x1c], ecx
mov esi, 0x425f2c
fild dword [esp + 0x1c]
fsubp st(1)
fstp dword [0x42344c]
add dword [esp + 0x10], ebx
fld qword [esp + 0x20]
mov ebx, dword [sym.imp.KERNEL32.dll_SetEvent]
fsub qword [0x41fa38]
fstp qword [esp + 0x20]
jmp 0x40a770
fld qword [esp + 0x28]
mov dx, word [esp + 0xc]
movzx ecx, word [esi]
movsx eax, dx
mov edx, dword [ecx*4 + 0x427388]
add eax, 0x760896c4
mov dword [esp + 0x1c], eax
push edx
fild dword [esp + 0x20]
fsubp st(1)
fstp qword [esp + 0x2c]
call ebx
movzx eax, word [esi]
cmp dword [eax*4 + 0x427388], 0
je 0x40a7c1
lea esp, [esp]
push 0xa
call edi
movzx ecx, word [esi]
cmp dword [ecx*4 + 0x427388], 0
jne 0x40a7b0
add esi, 2
cmp esi, 0x425f34
jne 0x40a770
fld qword [0x423500]
mov dx, word [esp + 0x10]
fadd qword [0x41fa30]
movsx eax, dx
mov dword [esp + 0x1c], eax
fild dword [esp + 0x1c]
fadd qword [esp + 0x20]
fsub qword [0x41fa28]
fld qword [esp + 0x20]
fsubp st(2)
fcompp
fnstsw ax
fld qword [0x423500]
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [0x423500]
test ah, 5
jp 0x40a852
fld dword [esp + 0x14]
fcomp dword [0x41fa20]
fnstsw ax
test ah, 0x44
jnp 0x40a852
fadd dword [esp + 0x18]
fstp dword [esp + 0x18]
mov ecx, dword [0x423664]
mov dword [esp + 0x1c], ecx
fild dword [esp + 0x1c]
fadd dword [0x424968]
fsub dword [esp + 0x18]
fadd qword [0x423728]
fstp qword [0x423728]
jmp 0x40a854
fstp st(0)
call dword [0x42784c]
in eax, 0x4c
sub byte [ebx], dl
je 0x40a8cc
sti
pushal
push ss
out 0x4b, eax
or byte [edx - 0x79670298], 0x99
cmpsb byte [esi], byte es:[edi]
xchg esp, eax
mov bl, byte [edi]
mov edx, dword [edx - 0x6e623b8f]
sbb cl, byte [edx - 0x3df8efea]
rcl eax, cl
scasd eax, dword es:[edi]
mov cl, 0x30
test al, 0x89
add byte [eax - 0x2c], 0x38
cwde
clc
or dh, ah
xchg esp, eax
movsb byte es:[edi], byte [esi]
inc ebx
pop ss
xchg edx, eax
mov al, byte [ebp + 0x3a1d91bc]
xor byte [eax], dl
push esi
push 0x35
sal bl, 1
invalid
salc
cmp dword [ebp - 0x71c95ecd], 0x72a50841
clc
fdiv qword [0x7936a41b]
xchg dword [edx + 0x1d6f6343], ecx
jns 0x40a948
push 0xb1ff72e
pushfd
cmp eax, 0x3f497c63
invalid
inc ecx
invalid