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

Disassembly:
sub esp, 0x1c
push esi
mov esi, ecx
mov eax, dword [esi + 4]
cmp eax, 0xf
jne 0x432274
mov ecx, dword [esi]
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
jne 0x432271
xor eax, eax
pop esi
add esp, 0x1c
ret
add eax, 0xa
push ebx
push ebp
mov ebp, dword [esi + 0x1c]
push edi
mov edi, dword [esi + 0x18]
mov dword [esp + 0x20], eax
xor ebx, ebx
xor al, al
xor cl, cl
xor dl, dl
cmp edi, ebp
mov byte [esp + 0x13], bl
jge 0x4323d8
jmp 0x4322a3
mov al, byte [esp + 0x12]
mov cl, byte [esp + 0x11]
mov dl, byte [esp + 0x10]
mov byte [esp + 0x12], cl
mov ecx, dword [esi + 0x20]
mov byte [esp + 0x11], dl
mov byte [esp + 0x13], al
mov dl, byte [edi + ecx]
mov ecx, dword [esi]
mov byte [esp + 0x10], dl
mov eax, dword [ecx]
call dword [eax + 0x18]
cmp eax, 0xffffffff
mov dword [esp + 0x1c], eax
je 0x4323d8
mov ecx, dword [esp + 0x20]
add ecx, 0xfffffff5
cmp ecx, 3
ja case.default.0x4322dd
jmp dword [ecx*4 + 0x4325a0]
mov ecx, dword [esi + 0x20]
mov ebp, dword [esi + 0x18]
mov edx, ecx
sub edx, ebp
mov dl, byte [edx + edi]
add dl, al
mov byte [ecx + edi], dl
jmp 0x4323cc
mov ecx, dword [esi + 0x20]
add ecx, edi
add byte [ecx], al
jmp 0x4323cc
mov ebp, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
mov edx, ebp
sub edx, ecx
xor ecx, ecx
mov cl, byte [edx + edi]
xor edx, edx
mov dl, byte [edi + ebp]
add ecx, edx
sar ecx, 1
add cl, al
mov byte [edi + ebp], cl
jmp 0x4323cc
mov ebp, dword [esi + 0x20]
mov ecx, dword [esi + 0x18]
mov eax, ebp
xor edx, edx
sub eax, ecx
xor ebx, ebx
mov bl, byte [esp + ecx + 0x10]
mov dl, byte [eax + edi]
xor eax, eax
mov al, byte [edi + ebp]
mov dword [esp + 0x28], ebx
mov ecx, eax
sub ecx, ebx
add ecx, edx
mov ebx, ecx
sub ebx, edx
mov dword [esp + 0x24], ebx
jns 0x43235d
neg ebx
mov dword [esp + 0x24], ebx
mov ebx, ecx
sub ebx, eax
mov dword [esp + 0x18], ebx
jns 0x43236d
neg ebx
mov dword [esp + 0x18], ebx
sub ecx, dword [esp + 0x28]
mov dword [esp + 0x14], ecx
jns 0x43237d
neg ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x24]
mov ebx, dword [esp + 0x18]
cmp ecx, ebx
jg 0x43239c
cmp ecx, dword [esp + 0x14]
jg 0x43239c
mov al, byte [esp + 0x1c]
add dl, al
xor ebx, ebx
mov byte [edi + ebp], dl
jmp 0x4323cc
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
cmp edx, ecx
jg 0x4323b5
mov cl, byte [esp + 0x1c]
add al, cl
xor ebx, ebx
mov byte [edi + ebp], al
jmp 0x4323cc
mov al, byte [esp + 0x28]
mov cl, byte [esp + 0x1c]
add al, cl
xor ebx, ebx
mov byte [edi + ebp], al
jmp 0x4323cc
mov edx, dword [esi + 0x20]
mov byte [edi + edx], al
mov eax, dword [esi + 0x1c]
inc edi
cmp edi, eax
jl 0x432297
cmp dword [esi + 4], 2
jne 0x43258b
mov ecx, dword [esi + 0x10]
cmp ecx, 1
jne 0x432442
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x20]
xor edx, edx
mov dl, byte [eax + ecx - 1]
mov ecx, dword [esi + 0x1c]
cmp eax, ecx
mov edi, edx
jge 0x43258b
mov ecx, dword [esi + 0x20]
shl edi, 8
mov dl, byte [eax + ecx]
lea ebp, [eax + ecx]
mov ecx, edx
add eax, 8
and ecx, 0xff
or edi, ecx
mov ecx, dword [esi + 0xc]
mov ebx, edi
shr ebx, cl
xor bl, dl
mov byte [ebp], bl
mov ecx, dword [esi + 0x1c]
cmp eax, ecx
jl 0x432403
mov edx, dword [esi + 0x18]
pop edi
pop ebp
mov dword [esi + 0x24], edx
pop ebx
mov eax, 1
pop esi
add esp, 0x1c
ret
cmp ecx, 8
jne 0x432485
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x1c]
cmp eax, ecx
jge 0x43258b
mov ecx, dword [esi + 0x20]
mov ebp, dword [esi + 0xc]
mov edx, ecx
mov bl, byte [ecx + eax]
sub edx, ebp
mov dl, byte [edx + eax]
add bl, dl
mov byte [ecx + eax], bl
mov ecx, dword [esi + 0x1c]
inc eax
cmp eax, ecx
jl 0x432455
mov edx, dword [esi + 0x18]
pop edi
pop ebp
mov dword [esi + 0x24], edx
pop ebx
mov eax, 1
pop esi
add esp, 0x1c
ret
mov eax, 1
xor edx, edx
shl eax, cl
xor ebp, ebp
mov byte [esp + 0x13], bl
mov byte [esp + 0x12], bl
mov byte [esp + 0x11], bl
mov byte [esp + 0x10], bl
mov dword [esp + 0x1c], ebx
dec eax
mov dword [esp + 0x18], ebx
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x18]
mov dword [esp + 0x14], eax
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x24], ebx
cmp eax, ebx
jle 0x43258b
mov edi, dword [esi + 0x10]
cmp ebp, edi
jge 0x4324ef
mov ecx, dword [esi + 0x20]
mov eax, dword [esp + 0x28]
xor ebx, ebx
mov bl, byte [ecx + eax]
mov ecx, dword [esp + 0x1c]
shl ecx, 8
or ebx, ecx
inc eax
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x28], eax
add ebp, 8
mov al, byte [esp + 0x12]
mov cl, byte [esp + 0x11]
mov byte [esp + 0x13], al
mov al, byte [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov byte [esp + 0x11], al
mov eax, ebp
mov byte [esp + 0x12], cl
sub eax, edi
mov ecx, eax
mov ebp, eax
shr ebx, cl
mov ecx, dword [esi + 0xc]
mov eax, dword [esp + 0x18]
add eax, edi
mov dword [esp + 0x18], eax
add bl, byte [esp + ecx + 0x10]
mov cl, byte [esp + 0x20]
and bl, cl
mov ecx, edi
mov byte [esp + 0x10], bl
shl edx, cl
mov ecx, dword [esp + 0x10]
and ecx, 0xff
or edx, ecx
cmp eax, 8
jle 0x43255c
lea ecx, [eax - 8]
mov eax, dword [esp + 0x14]
mov ebx, edx
shr ebx, cl
mov ecx, dword [esi + 0x20]
inc eax
mov dword [esp + 0x14], eax
mov byte [ecx + eax - 1], bl
mov eax, dword [esp + 0x24]
mov ecx, dword [esi + 0x14]
inc eax
cmp eax, ecx
mov dword [esp + 0x24], eax
jl 0x4324c7
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x43258b
mov ecx, 8
sub ecx, eax
mov eax, dword [esi + 0x20]
shl dl, cl
mov ecx, dword [esp + 0x14]
mov byte [eax + ecx], dl
mov edx, dword [esi + 0x18]
pop edi
pop ebp
mov dword [esi + 0x24], edx
pop ebx
mov eax, 1
pop esi
add esp, 0x1c
ret