Function at 0x43f0e0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 0x14]
push ebx
push esi
movzx eax, word [eax]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp + 0xc]
push edi
mov dword [ebp - 0x14], 0
movzx eax, word [eax]
mov dword [ebp - 0x2c], eax
lea eax, [ecx*4]
xor eax, ecx
cmp eax, 4
jae 0x43f1ae
mov ecx, dword [ebp + 8]
mov edx, 8
mov esi, edx
mov edi, edx
add ecx, 2
lea ebx, [edx + 8]
lea esp, [esp]
movzx eax, byte [ecx - 2]
lea ecx, [ecx + 4]
add edx, eax
movzx eax, byte [ecx - 5]
add esi, eax
movzx eax, byte [ecx - 4]
add edi, eax
dec ebx
jne 0x43f130
sar edx, 4
sar esi, 4
sar edi, 4
movzx ecx, byte [edx*2 + 0x4ac020]
movzx eax, byte [esi*2 + 0x4ac220]
shl cx, 6
or cx, ax
movzx eax, byte [edi*2 + 0x4ac020]
shl cx, 5
or cx, ax
movzx eax, cx
movzx ecx, byte [edx*2 + 0x4ac021]
mov dword [ebp + 0x14], eax
movzx eax, byte [esi*2 + 0x4ac221]
mov esi, dword [ebp + 0x14]
shl cx, 6
or cx, ax
movzx eax, byte [edi*2 + 0x4ac021]
shl cx, 5
or cx, ax
movzx edx, cx
jmp 0x43f3f4
mov ebx, dword [ebp + 8]
xor eax, eax
xor esi, esi
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], eax
add ebx, 2
mov dword [ebp - 8], eax
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc], esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x20], 0x10
movzx edi, byte [ebx - 2]
lea ebx, [ebx + 4]
movzx esi, byte [ebx - 5]
mov eax, ecx
and eax, 3
movzx ecx, byte [ebx - 4]
add dword [ebp - 4], edi
add dword [ebp - 0xc], esi
mov edx, dword [eax*4 + 0x45af54]
mov dword [ebp - 0x24], edx
mov edx, dword [ebp - 0x14]
add edx, dword [eax*4 + 0x45af64]
mov eax, edi
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x24]
imul eax, edx
add dword [ebp - 8], eax
mov eax, esi
imul eax, edx
add dword [ebp - 0x10], eax
mov eax, ecx
imul eax, edx
mov edx, dword [ebp - 0x18]
add edx, eax
mov eax, dword [ebp - 0x1c]
add eax, ecx
mov dword [ebp - 0x18], edx
mov ecx, dword [ebp + 0x14]
shr ecx, 2
dec dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
mov dword [ebp + 0x14], ecx
jne 0x43f1d1
mov esi, dword [ebp - 4]
lea eax, [eax + eax*2]
mov edi, dword [ebp - 8]
sub eax, edx
mov ebx, dword [ebp - 0x10]
movss xmm2, dword [0x45af94]
lea ecx, [esi + esi*2]
movss xmm1, dword [0x45a884]
mov esi, dword [ebp - 0xc]
sub ecx, edi
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0x14]
lea ecx, [esi + esi*2]
mov esi, eax
sub ecx, ebx
sar esi, 0x10
mov dword [ebp - 0x10], ecx
mov ecx, eax
sar ecx, 8
movzx eax, al
and ecx, 0xff
mov dword [ebp - 4], ecx
mov ecx, eax
imul ecx, eax
mov dword [ebp + 0x14], eax
mov eax, dword [ebp - 4]
imul eax, esi
mov dword [ebp - 0x1c], esi
sub eax, ecx
mov ecx, dword [ebp + 0x14]
imul ecx, dword [ebp - 0x20]
cvtsi2ss xmm0, eax
mov eax, dword [ebp - 4]
imul eax, edi
divss xmm2, xmm0
sub eax, ecx
mov ecx, 0x1f
cvtsi2ss xmm0, eax
movaps xmm3, xmm2
mulss xmm3, dword [0x45afbc]
mulss xmm0, xmm2
mulss xmm3, dword [0x45af88]
addss xmm0, xmm1
cvttss2si eax, xmm0
test eax, eax
jns 0x43f2df
xor eax, eax
jmp 0x43f2e5
cmp eax, 0x1f
cmovg eax, ecx
mov ecx, dword [ebp + 0x14]
imul ecx, dword [ebp - 0x10]
shl eax, 0xb
movzx esi, ax
mov eax, dword [ebp - 4]
imul eax, ebx
sub eax, ecx
mov ecx, 0x3f
cvtsi2ss xmm0, eax
mulss xmm0, xmm3
addss xmm0, xmm1
cvttss2si eax, xmm0
test eax, eax
jns 0x43f317
xor eax, eax
jmp 0x43f31d
cmp eax, 0x3f
cmovg eax, ecx
mov ecx, dword [ebp - 4]
shl eax, 5
or esi, eax
imul ecx, edx
mov eax, dword [ebp + 0x14]
mov edx, 0x1f
imul eax, dword [ebp - 0xc]
sub ecx, eax
cvtsi2ss xmm0, ecx
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
test eax, eax
jns 0x43f34e
xor eax, eax
jmp 0x43f354
cmp eax, 0x1f
cmovg eax, edx
mov ecx, dword [ebp - 0x1c]
or esi, eax
mov eax, dword [ebp + 0x14]
imul ecx, dword [ebp - 0x20]
imul eax, edi
sub ecx, eax
cvtsi2ss xmm0, ecx
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
test eax, eax
jns 0x43f37d
xor eax, eax
jmp 0x43f383
cmp eax, 0x1f
cmovg eax, edx
mov edi, dword [ebp - 0x1c]
mov ecx, edi
imul ecx, dword [ebp - 0x10]
shl eax, 0xb
movzx edx, ax
mov eax, dword [ebp + 0x14]
imul eax, ebx
sub ecx, eax
cvtsi2ss xmm0, ecx
mulss xmm0, xmm3
addss xmm0, xmm1
cvttss2si eax, xmm0
test eax, eax
jns 0x43f3b2
xor eax, eax
jmp 0x43f3bd
cmp eax, 0x3f
mov ecx, 0x3f
cmovg eax, ecx
mov ecx, dword [ebp + 0x14]
imul edi, dword [ebp - 0xc]
imul ecx, dword [ebp - 0x18]
shl eax, 5
or edx, eax
sub edi, ecx
cvtsi2ss xmm0, edi
mulss xmm0, xmm2
addss xmm0, xmm1
cvttss2si eax, xmm0
test eax, eax
jns 0x43f3e7
xor eax, eax
jmp 0x43f3f2
cmp eax, 0x1f
mov ecx, 0x1f
cmovg eax, ecx
or edx, eax
mov eax, dword [ebp + 0x10]
mov word [eax], dx
mov eax, dword [ebp + 0xc]
mov word [eax], si
cmp word [ebp - 0x28], dx
jne 0x43f415
cmp word [ebp - 0x2c], si
jne 0x43f415
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 1
pop ebx
mov esp, ebp
pop ebp
ret