Function at 0x41b4ca
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x6c
push ebx
mov ebx, dword [edx]
push esi
push edi
mov edi, dword [ebp + 8]
xor esi, esi
mov dword [esp + 0x54], edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x40], ebx
mov eax, dword [edi]
mov dword [esp + 0x28], eax
mov eax, dword [0x4d261c]
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
test eax, eax
jne 0x45859c
mov eax, dword [ebp + 0x30]
mov edx, dword [ebp + 0x18]
mov dword [esp + 0x70], eax
mov dword [esp + 0x24], esi
mov dword [esp + 0x38], esi
mov esi, dword [ebp + 0x34]
lea ecx, [edx + 4]
push 0xfffffffffffffffe
pop eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x20]
sub eax, dword [esi + 0x10]
sar eax, 1
mov dword [esp + 0x64], eax
mov eax, 0x85
mov dword [esp + 0x74], ebx
mov dword [esp + 0x10], ecx
cmp word [ebx], ax
je 0x41b6e1
xor eax, eax
mov dword [esp + 0x18], ebx
mov word [ebx + 2], ax
lea eax, [edx*2 + 4]
mov edi, dword [esi + 0x40]
mov dword [esp + 0x5c], eax
add eax, ebx
mov ebx, dword [ebp + 0x38]
mov edx, ebx
neg edx
mov dword [esp + 0x20], edi
mov dword [esp + 0x58], edi
lea edi, [esp + 0x10]
sbb edx, edx
and edx, edi
mov dword [esp + 0x60], edx
cmp dword [ebp + 0x14], 0
mov edi, dword [esp + 0x20]
mov dword [esp + 0x34], eax
jne 0x4585b4
cmp dword [ebp + 0x10], 0
jne 0x4585c3
push edx
push esi
push dword [ebp + 0x1c]
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x64]
push eax
push dword [ebp + 0xc]
lea eax, [esp + 0x4c]
push eax
lea edx, [esp + 0x5c]
lea ecx, [esp + 0x44]
call fcn.0041b731
add esp, 0x28
test eax, eax
je 0x458726
cmp dword [esi + 0x40], edi
ja 0x41b708
mov edx, dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
test ebx, ebx
jne 0x41b627
mov eax, dword [esp + 0x18]
push 0x77
pop ecx
cmp word [eax], cx
je 0x4585ec
mov ecx, dword [esp + 0x48]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x14], ecx
cmp dword [ebp + 0x10], 0
jne 0x458678
mov ebx, dword [esp + 0x28]
push 0x7c
pop eax
cmp word [ebx], ax
je 0x4586b9
cmp dword [ebp + 0x38], 0
jne 0x41b65f
mov esi, dword [esp + 0x18]
mov edx, edi
sub edx, esi
sar edx, 1
movzx ecx, word [esi + 2]
mov word [esi + 2], dx
mov edx, ecx
mov eax, edx
neg eax
lea esi, [esi + eax*2]
test ecx, ecx
jne 0x41b647
mov esi, dword [ebp + 0x34]
mov ecx, dword [esp + 0x40]
push 0x78
pop eax
mov word [edi], ax
mov eax, edi
sub eax, ecx
sar eax, 1
mov word [edi + 2], ax
add edi, 4
cmp dword [esp + 0x50], 0
ja 0x41b714
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov edx, dword [ebp + 8]
mov dword [esi + 0x40], eax
mov eax, dword [esp + 0x54]
mov dword [edx], ebx
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x14]
mov dword [eax], edi
mov eax, dword [ebp + 0x20]
mov dword [eax], edx
mov eax, dword [ebp + 0x24]
mov edx, dword [esp + 0x3c]
mov dword [eax], edx
mov eax, dword [ebp + 0x28]
mov edx, dword [esp + 0x24]
mov dword [eax], edx
mov eax, dword [ebp + 0x2c]
mov dword [eax], ebx
mov ebx, dword [ebp + 0x38]
test ebx, ebx
je 0x41b6d7
mov edx, dword [ebx]
mov eax, 0x7fffffeb
sub eax, edx
cmp eax, ecx
jl 0x4587a6
add ecx, edx
mov dword [ebx], ecx
xor eax, eax
inc eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, word [ebx + 4]
mov dword [esp + 0x50], eax
mov word [esp + 0x6c], ax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x68], eax
xor eax, eax
mov word [esp + 0x6e], ax
lea eax, [esp + 0x68]
mov dword [esi + 0x24], eax
jmp 0x41b549
mov eax, dword [esi + 0x40]
mov dword [esp + 0x20], eax
jmp 0x41b5e1
mov eax, dword [esi + 0x24]
xor edx, edx
cmp word [eax + 6], dx
jne 0x458736
mov ecx, dword [esp + 0x10]
mov eax, dword [eax]
mov dword [esi + 0x24], eax
jmp 0x41b685
mov eax, 0xe0558dff
cmp dx, ax
ja 0xd2cab4f5
mov eax, dword [ebp + 0x6a004d2c]
movzx ecx, dx
movzx eax, byte [ecx + eax]
cmp ax, dx
je 0xd2cab4f5
mov dh, 4
add dword [esi + 0x3b], esp
ret 0x840f
mov eax, 0x6a0080
push 0
or dword [ebx + 0xc], eax
jmp 0xd2cab4f5
jmp 0x84d2d66c
add al, byte [eax]
invalid
jmp 0x458675
or edx, dword [ecx + 0x33]
invalid
add cl, byte [ebp + 0x54890442]
and al, 0x18
mov dword [esp + 0x74], edi
jmp 0x83a6859c
add ebx, 2
mov dword [esp + esi*2], esp
push eax
inc ebp
pop ebp
cmp cl, ch
jbe 0x458771
test edx, edx
cmp ecx, 0xfffffffe
jne 0x45874f
push 0x24
pop eax
jmp 0x45875e
xor eax, eax
cmp ecx, 0xfffffffc
jmp 0x45878d
push eax
push 0x7f
mov dword [ecx], eax
mov edx, dword [ebp + 8]
mov esi, dword [esi - 5]
sub byte [ecx - 0x163fccfe], cl
movsb byte es:[edi], byte [esi]
das
push ss
ret 0x74ff
pop ds
add al, 0xc7
inc ebx
inc eax
or dword [ecx + ebp*8 + 0x5a], 0xffffffbf
sti
invalid
lahf
cld
dec esp
jmp 0xb8928613