Function at 0x43e10c
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x13c
mov ecx, dword [esp + 0x150]
mov eax, dword [0x7c3824]
xor eax, esp
mov dword [esp + 0x138], eax
xorpd xmm0, xmm0
movsd xmm4, qword [0x6148a8]
movsd xmm5, qword [str.33333]
movsd xmm6, qword [0x6120f8]
movsd xmm7, qword [0x6148b8]
xorpd xmm3, xmm3
movapd xmm1, xmm3
mulsd xmm1, qword [0x614890]
mulsd xmm1, xmm3
movapd xmm2, xmm3
mulsd xmm2, xmm3
subsd xmm1, xmm2
movapd xmm2, xmm3
mulsd xmm2, qword [0x614898]
mulsd xmm2, xmm3
addsd xmm2, qword [0x6148a0]
divsd xmm1, xmm2
addsd xmm1, xmm0
movapd xmm2, xmm3
mulsd xmm2, xmm4
addsd xmm2, xmm1
movapd xmm0, xmm5
cmpltsd xmm0, xmm1
andpd xmm2, xmm0
andnpd xmm0, xmm1
orpd xmm0, xmm2
addsd xmm3, xmm6
ucomisd xmm7, xmm3
ja 0x43e153
xorpd xmm1, xmm1
ucomisd xmm1, xmm0
jbe 0x43e218
cmp dl, byte [esi + 0x7d]
xor dword [ecx + 0x43], esp
inc eax
inc ecx
pop edx
je 0x43e24c
push 0x5f707d55
sub dword [ebx + 0x63], edi
pop esi
xchg ebx, eax
xchg edi, eax
push edi
xchg ebp, eax
push esi
popfd
push edi
mov al, byte [0x9463a163]
pop edi
cwde
pop ebx
xchg esp, eax
arpl word [ebx - 0x6a9c68a5], bx
mov al, byte gs:[0x9a5f9a57]
popal
cwde
push esi
xchg esi, eax
pop esi
xchg esi, eax
cdq
pop edx
xchg ebp, eax
xchg ebp, eax
wait
pop edx
mov al, byte [0x9b569b58]
pop edx
mov byte [0xa262a161], al
push edi
mov eax, dword [0x74e99956]
add eax, dword [eax]
add byte [ebp + 0x43e1d73d], cl
add byte [esi + 0xf], ah
outsd dx, dword [esi]
or eax, 0x612110
lea edi, [0x43e1d7]
movdqa xmm1, xmmword [0x612110]
xor eax, eax
movdqa xmm2, xmmword [0x612120]
movdqu xmmword [esp + eax + 0x1a], xmm1
add eax, 0x10
paddb xmm1, xmm2
cmp eax, 0x100
jne 0x43e230
movsd xmm1, qword [0x612130]
movapd xmm2, xmm0
subsd xmm2, xmm1
cvttsd2si eax, xmm2
lea ecx, [0x43e1c4]
mov dword [esp + 8], ecx
xor eax, 0x80000000
cvttsd2si ecx, xmm0
ucomisd xmm0, xmm1
cmovae ecx, eax
mov eax, ecx
shr eax, 0x18
mov dword [esp + 0x10], eax
mov dword [esp], ecx
shr ecx, 0x10
mov dword [esp + 4], ecx
mov ebp, 0xff
xor ecx, ecx
xor ebx, ebx
mov dword [esp + 0x14], edi
xor edx, edx
inc edx
cmp ebp, 2
jb 0x43e2a4
xor edx, edx
inc edx
add edx, edx
inc edx
cmp edx, ebp
jb 0x43e29d
mov edi, 0xc
cmp ecx, 3
ja case.default.0x43e2ae
jmp dword [ecx*4 + 0x6149a8]
movzx eax, bl
add eax, esp
add eax, 0x1a
mov ebx, dword [esp]
jmp 0x43e2fd
movzx eax, bl
mov bl, byte [esp + eax + 0x1a]
mov eax, dword [esp + 8]
add eax, ecx
add eax, 0xfffffffc
jmp 0x43e2fd
movzx eax, bl
add eax, esp
add eax, 0x1a
mov ebx, dword [esp]
mov bl, bh
jmp 0x43e2fd
movzx eax, bl
add eax, esp
add eax, 0x1a
mov ebx, dword [esp + 4]
jmp 0x43e2fd
movzx eax, bl
add eax, esp
add eax, 0x1a
mov ebx, dword [esp + 0x10]
add bl, byte [eax]
inc ecx
movzx eax, bl
add bl, 0x17
cmp ecx, 0x16
movzx ebx, bl
cmovbe ebx, eax
mov eax, 0
cmova ecx, eax
movzx esi, bl
mov eax, edx
and eax, esi
dec edi
je 0x43e327
cmp eax, ebp
ja 0x43e2a9
jmp 0x43e32d
xor edx, edx
div ebp
mov eax, edx
cmp ebp, eax
mov edi, dword [esp + 0x14]
je 0x43e34d
mov dl, byte [esp + ebp + 0x1a]
xor dl, byte [esp + eax + 0x1a]
mov byte [esp + ebp + 0x1a], dl
xor dl, byte [esp + eax + 0x1a]
mov byte [esp + eax + 0x1a], dl
xor byte [esp + ebp + 0x1a], dl
dec ebp
jne 0x43e292
movzx ecx, byte [esp + 0x1b]
mov bl, byte [esp + 0x1f]
movzx ebp, byte [esp + 0x21]
movzx esi, byte [esp + esi + 0x1a]
mov ah, byte [edi]
mov bh, byte [edi + 1]
movzx edx, byte [esp + esi + 0x1a]
mov dword [esp], edx
mov al, byte [esp + ecx + 0x1a]
mov edx, ecx
mov dword [esp + 4], ecx
add al, byte [esp + 0x1d]
mov byte [esp + 8], al
movzx edi, al
mov cl, byte [esp + edi + 0x1a]
mov byte [esp + esi + 0x1a], cl
mov cl, byte [esp + ebp + 0x1a]
mov byte [esp + edi + 0x1a], cl
mov ecx, edx
inc cl
movzx ecx, cl
mov dh, byte [esp + ecx + 0x1a]
mov byte [esp + ebp + 0x1a], dh
mov edx, dword [esp]
mov byte [esp + ecx + 0x1a], dl
add bh, 0x6d
shl ah, 4
add ah, 0xa0
or ah, bh
add bl, byte [esp + edx + 0x1a]
movzx ecx, byte [esp + edi + 0x1a]
add ecx, edx
movzx edi, byte [esp + ebp + 0x1a]
movzx esi, byte [esp + esi + 0x1a]
add esi, edi
mov byte [esp + 0x10], bl
movzx edi, bl
movzx edi, byte [esp + edi + 0x1a]
add edi, esi
mov edx, 0xff
and ecx, edx
mov cl, byte [esp + ecx + 0x1a]
xor cl, ah
and edi, edx
movzx edi, byte [esp + edi + 0x1a]
xor cl, byte [esp + edi + 0x1a]
mov edx, dword [esp + 4]
add dl, 2
movzx edx, dl
mov dword [esp + 4], edx
xor ebp, ebp
mov edx, dword [esp + 0x14]
mov al, byte [esp + 8]
add al, byte [esp]
mov byte [esp + 8], al
movzx edi, ah
mov ah, byte [edx + ebp*2 + 2]
mov al, byte [edx + ebp*2 + 3]
movzx edx, byte [esp + edi + 0x1a]
mov dword [esp], edx
movzx esi, byte [esp + 8]
mov dh, byte [esp + esi + 0x1a]
mov byte [esp + edi + 0x1a], dh
movzx edx, cl
mov cl, byte [esp + edx + 0x1a]
mov byte [esp + esi + 0x1a], cl
mov ebx, dword [esp + 4]
add ebx, ebp
mov ecx, 0xff
and ebx, ecx
mov cl, byte [esp + ebx + 0x1a]
mov byte [esp + edx + 0x1a], cl
mov ecx, dword [esp]
mov byte [esp + ebx + 0x1a], cl
mov bl, byte [esp + 0x10]
add bl, byte [esp + ecx + 0x1a]
movzx edx, byte [esp + edx + 0x1a]
movzx edi, byte [esp + edi + 0x1a]
add edi, edx
mov byte [esp + 0x10], bl
movzx edx, bl
movzx edx, byte [esp + edx + 0x1a]
add edx, edi
add al, 0x6d
shl ah, 4
add ah, 0xa0
or ah, al
movzx ecx, byte [esp + esi + 0x1a]
add ecx, dword [esp]
mov esi, 0xff
and ecx, esi
mov cl, byte [esp + ecx + 0x1a]
xor cl, ah
and edx, esi
movzx edx, byte [esp + edx + 0x1a]
xor cl, byte [esp + edx + 0x1a]
mov byte [esp + ebp + 0x11a], cl
inc ebp
cmp ebp, 0xe
jne 0x43e407
add dword [esp + 4], ebp
xor esi, esi
mov al, byte [esp + 8]
add al, byte [esp]
movzx edx, ah
mov edi, dword [esp + 0x14]
mov ah, byte [edi + esi*2 + 0x1e]
mov byte [esp + 0xf], ah
mov ch, byte [edi + esi*2 + 0x1f]
movzx edi, byte [esp + edx + 0x1a]
mov dword [esp], edi
mov byte [esp + 8], al
movzx edi, al
mov bl, byte [esp + edi + 0x1a]
mov byte [esp + edx + 0x1a], bl
movzx ebx, cl
mov cl, byte [esp + ebx + 0x1a]
mov byte [esp + edi + 0x1a], cl
mov ebp, dword [esp + 4]
add ebp, esi
mov eax, 0xff
and ebp, eax
mov cl, byte [esp + ebp + 0x1a]
mov byte [esp + ebx + 0x1a], cl
mov eax, dword [esp]
mov byte [esp + ebp + 0x1a], al
mov cl, byte [esp + 0x10]
add cl, byte [esp + eax + 0x1a]
mov ebp, eax
movzx ebx, byte [esp + ebx + 0x1a]
movzx edx, byte [esp + edx + 0x1a]
add edx, ebx
mov byte [esp + 0x10], cl
movzx ebx, cl
movzx ebx, byte [esp + ebx + 0x1a]
add ebx, edx
add ch, 0x6d
mov ah, byte [esp + 0xf]
shl ah, 4
add ah, 0xa0
or ah, ch
movzx ecx, byte [esp + edi + 0x1a]
mov edx, ebp
add ecx, ebp
mov edx, 0xff
and ecx, edx
mov cl, byte [esp + ecx + 0x1a]
xor cl, ah
and ebx, edx
movzx edx, byte [esp + ebx + 0x1a]
xor cl, byte [esp + edx + 0x1a]
mov byte [esp + esi + 0x128], cl
inc esi
cmp esi, 0xf
jne 0x43e4c0
mov byte [esp + 0x137], 0
mov ecx, dword [esp + 0x150]
lea eax, [esp + 0x11a]
push eax
push ecx
call fcn.005fecc0
add esp, 8
mov ecx, dword [esp + 0x138]
xor ecx, esp
call fcn.005db451
add esp, 0x13c
pop esi
pop edi
pop ebx
pop ebp
ret