Function at 0x40b340
Capabilities:
Create thread
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x18
fldz
push ebx
xor ebx, ebx
mov dword [esp + 0x10], ebx
xor eax, eax
mov word [esp + 0xc], ax
fst qword [esp + 0x14]
fldz
push ebp
fstp dword [esp + 0x14]
push esi
xor ecx, ecx
xor esi, esi
fstp qword [esp + 0xc]
push edi
mov word [esp + 0x10], cx
mov dword [0x42964c], ebx
lea ebp, [ebx + 1]
cmp dword [0x427cf8], ebx
je 0x40b3c9
mov edi, dword [sym.imp.KERNEL32.dll_CreateThread]
lea ebx, [ebx]
push ebx
push ebx
push esi
push 0x401690
push ebx
push ebx
mov dword [esi*4 + 0x429188], ebx
call edi
dec dword [esp + 0x18]
mov dx, word [esp + 0x18]
movsx eax, dx
mov dword [esp + 0x10], eax
add esi, ebp
fild dword [esp + 0x10]
fadd qword [esp + 0x20]
fstp qword [esp + 0x20]
cmp esi, dword [0x427cf8]
jne 0x40b390
fld qword [esp + 0x20]
call fcn.0040bcd0
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [0x426350], eax
fld qword [esp + 0x20]
fadd qword [0x420378]
push 0xa
fstp qword [esp + 0x24]
fld dword [esp + 0x20]
fsub qword [0x420b90]
fstp dword [esp + 0x20]
call edi
mov esi, 0x427cfc
movzx ecx, word [esi]
mov edx, dword [ecx*4 + 0x429188]
push edx
call dword [sym.imp.KERNEL32.dll_SetEvent]
movzx eax, word [esi]
cmp dword [eax*4 + 0x429188], ebx
je 0x40b430
nop
push 0xa
call edi
movzx ecx, word [esi]
cmp dword [ecx*4 + 0x429188], ebx
jne 0x40b420
mov dx, word [esp + 0x18]
mov cx, word [0x426e94]
dec word [0x426e94]
movsx eax, dx
movsx edx, cx
mov ecx, 0xe39832c0
sub eax, 0x10cfb99
sub ecx, edx
cmp eax, ecx
jle 0x40b489
mov dx, word [0x4252f0]
mov ecx, dword [0x4262b4]
movsx eax, dx
lea edx, [ecx + eax + 0x4c52df32]
mov dword [esp + 0x1c], edx
fild dword [esp + 0x1c]
fadd qword [esp + 0x20]
fstp qword [esp + 0x20]
add word [0x4252f0], bp
jmp 0x40b4a2
mov ax, word [0x426354]
cwde
add eax, 0xcc3aed15
add dword [0x427d24], eax
add word [0x426354], bp
mov cx, word [0x426ea4]
movzx edx, word [esp + 0x18]
movsx eax, cx
movsx ecx, dx
movzx edx, word [esp + 0x18]
add dword [esp + 0x18], ebp
add ecx, eax
movsx eax, dx
mov edx, 0x971f8416
sub edx, eax
cmp ecx, edx
je 0x40b4d8
mov eax, 0x4108
mov word [0x4254ac], ax
add esi, 2
cmp esi, 0x427d04
jne 0x40b402
call dword [0x42964c]
cwde
inc eax
cmp edx, dword [edx + 0x4f74cfca]
jns 0x40b549
mov ah, byte [0x971df037]
mov ebp, 0x98c5620
enter 0xfffffffffffff873, 0x4a
cmp al, 0xe1
inc ebp
xor dword [esi - 0x58], eax
mov ah, 0xaa
sti
or al, 0x51
aas
movsd dword es:[edi], dword [esi]
fiadd word [edi]
daa
mov dh, byte [edi]
popal
mov dh, 0x1d
inc ebx
adc ebx, dword [ebx + 0x56177956]
jae 0x40b589
stc
mov dh, 0xe1
push 0x6b
push edi
test al, 0x6d
int 0xf0
or al, 0x6e
sbb al, 0xce
fisubr word [edi + 0x2b]
in eax, 0x37
out dx, eax
in al, 7
inc ebx
das
scasd eax, dword es:[edi]
adc eax, 0xf190cf79
aas
mov al, byte [0x18c76a20]
loopne 0x40b5b9
sbb al, ah
insd dword es:[edi], dx
mov ebx, 0x856e6cd0
push cs
outsd dx, dword [esi]
lcall 0x4db3, 0x95efbe1d
das
adc al, byte [eax + 0x5f51cfef]
xlatb
aas
invalid
cmpsd dword [esi], dword es:[edi]
test al, dl
lds ecx, [ebp - 0x5f7256b2]
and dword [0xe0], edi
pop edi
xor eax, eax
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret 0x10
add al, byte [edx]