Function at 0x40a7e0
Capabilities:
Create thread
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x20
fldz
push ebx
xor ebx, ebx
mov dword [esp + 0xc], ebx
fstp dword [esp + 8]
fldz
push ebp
fst qword [esp + 0x20]
push esi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], ebx
fstp qword [esp + 0x1c]
mov eax, dword [0x42577c]
imul eax, eax, 0x9d1731cd
xor esi, esi
mov dword [0x4277ec], ebx
push edi
mov dword [0x42577c], eax
cmp dword [0x423900], ebx
je 0x40a85f
mov edi, dword [sym.imp.KERNEL32.dll_CreateThread]
push ebx
push ebx
push esi
push 0x402780
push ebx
push ebx
mov dword [esi*4 + 0x427328], ebx
call edi
mov ecx, dword [0x42577c]
imul ecx, ecx, 0x9d1731cd
inc esi
mov dword [0x42577c], ecx
cmp esi, dword [0x423900]
jne 0x40a831
mov edx, dword [0x423ba0]
sub edx, 0x3e428719
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
or ecx, 0xffffffff
fld dword [esp + 0x14]
fsub dword [0x423434]
fucompp
fnstsw ax
fld dword [esp + 0x14]
fld1
fadd st(1), st(0)
fxch st(1)
fstp dword [esp + 0x14]
add dword [0x423ba0], ecx
test ah, 0x44
jp 0x40a8e0
mov eax, dword [0x423aac]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fadd qword [0x425bd0]
fsub qword [0x424900]
fmul qword [0x423a00]
fstp qword [0x423a00]
fadd qword [0x424900]
fstp qword [0x424900]
add dword [0x423aac], ecx
jmp 0x40a8e2
fstp st(0)
movzx ecx, word [0x423444]
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
imul ecx, ecx, 0x49ffc642
mov word [0x423444], cx
push 0xa
call edi
mov ebp, dword [sym.imp.KERNEL32.dll_SetEvent]
fld dword [esp + 0x14]
mov esi, 0x423904
fld dword [0x425be4]
fsub qword [0x41fae8]
fsubp st(1)
fstp dword [esp + 0x14]
fld1
fld qword [0x424960]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
fsub dword [0x4256a8]
fsubp st(1)
fstp qword [0x424960]
fadd dword [0x4256a8]
movzx eax, word [esi]
mov ecx, dword [eax*4 + 0x427328]
push ecx
fstp dword [0x4256a8]
call ebp
movzx edx, word [esi]
cmp dword [edx*4 + 0x427328], ebx
jne 0x40aa92
fld1
mov edx, dword [str._aH0_]
mov eax, 0x8a79fb85
sub eax, edx
add dword [esp + 0x18], eax
inc dword [str._aH0_]
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
add esi, 2
fsub dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x20], ecx
fiadd dword [esp + 0x20]
fstp qword [esp + 0x28]
fld dword [esp + 0x14]
fld dword [0x425be4]
fsub qword [0x41fae8]
fsubp st(1)
fstp dword [esp + 0x14]
cmp esi, 0x42390c
jne 0x40a923
fstp st(0)
call dword [0x4277ec]
jge 0x40aa06
sal al, 1
imul dword [0xc6b41107]
mov ch, 0x38
cmp al, 0x29
add ah, 0x98
mov byte [0xd31ba99], al
xchg esp, eax
test dword [esi - 0x72], edi
adc bl, byte [edx]
insd dword es:[edi], dx
push ss
mov ss, word [edx]
sbb ch, byte [ebp + 0x16]
rcl ebp, 1
das
sal dword [eax], 1
xor cl, byte [esi + 0x6f]
rol byte [ecx - 0x33], 0xfe
cmp al, bh
add esi, ebp
les esp, [esp + edx*2]
imul edi, dword [edx - 0x7a302eb6], 0xfffffffd
ror edi, 1
test ebp, edi
jg 0x40a9eb
sbb ah, byte [esi]
test dword [esi + 0x9334bd5], ecx
xor bh, byte [ebp + 0x7e]
lea eax, [ecx + 0x66]
in al, dx
adc eax, 0x902eebf8
and al, 0xad
iretd
fstp st(0)
push 0xa
call edi
fld qword [0x425588]
fadd qword [0x41fae0]
fadd qword [esp + 0x28]
mov eax, dword [0x423968]
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmulp st(1)
call fcn.0040b450
mov dword [0x423968], eax
fld qword [esp + 0x28]
fld1
fadd st(1), st(0)
fxch st(1)
fstp qword [esp + 0x28]
fld qword [0x425588]
movzx ecx, word [esi]
fadd st(1)
fstp qword [0x425588]
cmp dword [ecx*4 + 0x427328], ebx
jne 0x40aa90
jmp 0x40a96e