Function at 0x402fa0
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, eax
mov ebx, ecx
call fcn.00403140
mov eax, dword [edi]
cmp word [ebx + eax*2], 0x30
je 0x4030c0
mov byte [ebp - 1], 0
mov esi, eax
mov dword [ebp - 8], 0x17
nop
mov ecx, dword [edi]
movzx edx, word [ebx + ecx*2]
mov ecx, edx
mov eax, edx
cmp eax, 0x2b
jl case.0x402ff3.44
cmp eax, 0x31
je case.0x402ff3.48
sub eax, 0x2b
cmp eax, 0x3a
ja case.0x402ff3.44
movzx eax, byte [eax + 0x4030fc]
jmp dword [eax*4 + 0x4030e8]
mov edx, dword [ebp - 8]
and edx, 0xffffffef
or edx, 0x20
mov dword [ebp - 8], edx
mov al, byte [ebp - 8]
test al, 0x20
je 0x40303b
mov eax, dword [edi]
movzx ecx, word [ebx + eax*2]
inc eax
mov dword [edi], eax
mov eax, dword [ebp + 0xc]
push ecx
call fcn.00402e10
and dword [ebp - 8], 0xffffffdf
jmp 0x402fd0
and ecx, 0xffffffdf
cmp ecx, 0x41
jge 0x4030b2
cmp edx, 0x5f
jne 0x403006
jmp 0x42b680
test al, 0x10
jne 0x42b62e
cmp byte [ebp - 1], 0
jne 0x42b698
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx]
push eax
call fcn.00413205
mov ebx, eax
add esp, 4
mov edi, edx
xor eax, eax
cmp word [ebp + 0x10], 0x4a
mov dword [ebp - 8], edi
je 0x42b6ba
mov ecx, 0x7fffffff
cmp edi, eax
jg 0x42b6db
jl 0x403086
cmp ebx, ecx
ja 0x42b6db
mov esi, dword [ebp + 8]
movzx eax, word [esi + 8]
cmp ax, 0x3f
jle 0x4030dc
mov edx, 5
mov word [esi + 8], dx
mov dword [esi], 0
mov dword [esi], ebx
mov dword [esi + 4], edi
mov al, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
cmp ecx, 0x5a
jg 0x403031
jmp 0x42b680
movzx ecx, word [ebx + eax*2 + 2]
cmp ecx, 0x78
je 0x42b5b5
cmp ecx, 0x58
jne 0x402fc2
jmp 0x42b5b5
cmp ax, 0x30
jl 0x403093
jmp 0x42b6c4
into
and bl, cl
pop dword [ecx - 1]
cmp byte [esi], 0x1f
inc ebx
shr dword [ebx + 0xd], 1
inc ebx
jmp 0x966741d8
lea esi, [ecx - 0x1840baed]
pop ebp
out dx, al
xor dword [ebp - 0x7fd63546], esp
or dword [edx - 0x221102fc], 0xa99b3a6
in eax, 0xcb
sar dword [edx], 1
xchg esp, eax
pop eax
invalid
frstor dword [esi - 0x1af5664d]
retf
mov dh, 0x94
sub al, 0xa3
out 0x7e, al
cmp edi, dword [ecx + 0x37]
xchg edi, eax
pop ds
sbb al, 0xf9
mov eax, 0xe2380d62
fdivr st(7), st(0)
mov esi, 0x421fdb7d
pop ds
inc edx
jmp 0xd73b49e6
int 0x94
clc
jns 0x42b657
rol ah, 0xc5
mov al, byte [0xced82496]
sub bh, byte [edx - 0x1f]
loopne 0x42b5f2
pop es
pop esp
push ebx
jmp 0x42b605
mov ebx, 0x6fc39976
or al, 0xa9
pop ss
push es
mov byte [0x7d6a5cb6], al
and byte [edx], bh
jbe 0x42b6b0
or al, 0xfb
dec edi
mov ebx, 0xc0fdc48a
pushal
xchg ecx, eax
sub eax, 0x87e9e87b
pop esp
push ebp
sbb eax, 0xd4d987a7
retf 0x9a4
jmp 0x1d9812fb
xchg esp, eax
jge 0x42b66f
cli
rep movsb byte es:[edi], byte [esi]
mov bh, 3
and byte [0xae84ee79], ch
inc ebp
popfd
cmp edi, dword [esp - 0x5c7e8b7f]
sub al, 0xc9
in al, 0x81
je 0x42b617
mov dword [0x68c9c92c], eax
or ah, byte [eax + 0x48077b05]
leave
leave
push 0x7b05a00a
pop es
dec eax
xchg ebx, eax
insd dword es:[edi], dx
das
in eax, 0x49
jne 0x42b6d0
shr dword [ecx], 1
adc al, 0xe1
fiadd word [eax]
jae 0x42b692
insb byte es:[edi], dx
cmp ecx, dword [ecx]
call 0xc0609ec2
add ebp, dword [eax - 0xb]
or eax, ebp
or ch, al
sbb eax, 0xf56803c0
cmc
mov al, byte [0xf1cda40a]
cmp al, 0x70
xchg ecx, eax
push es
fbld tbyte [eax - 0x3483384e]
nop
invalid
inc eax
test byte [esp + edx], al
mov eax, dword [0x71b9afa4]
adc ecx, esp
dec ebx
xor esi, dword [edi - 0x68]
sbb byte [ebx + 0x2b], ah
movsb byte es:[edi], byte [esi]
jne 0x42b6d0
fsubrp st(4)
imul edi, ebp, 0x885d9353
jno 0x42b748
and eax, 0x2fb852bd
sbb byte [ebp - 0x7c], 0x4d
mov ch, 0x7f
mov dword [0x921bc4c1], eax
call 0x67d06981
sbb byte [eax - 0x4b02b9d8], al
aas
and al, 0xe5
in eax, 0x9c
cmp dl, byte [ecx]
and byte [0xe63efaf], 0
and al, 9
push eax
add byte [edx], ah
dec ebx
sti
inc esi
sti
jo 0x42b6b2
out dx, eax
mov al, byte [0xcc623eee]
sbb dword [eax + 0x68], ecx
adc dword [edi - 0x41dcd3d3], 5
invalid
movsd dword es:[edi], dword [esi]
add ebx, dword [eax + ebp*4]
in al, 0x69
dec esp
sbb eax, 0xd97bff6
ret 0x6dc0