Function at 0x418360
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub esp, 0x14
push ebx
mov ebx, dword [esp + 0x1c]
push ebp
push esi
mov esi, ecx
mov ebp, edx
mov ecx, dword [esp + 0x28]
push edi
mov dword [esp + 0x18], esi
mov eax, dword [esi + 8]
lea edi, [esi + 0xc]
cdq
xor eax, edx
mov dword [esp + 0x1c], ecx
sub eax, edx
mov dword [esp + 0x10], edi
mov dword [esp + 0x20], eax
cmp eax, ebx
jge 0x4183df
mov dword [esp + 0x10], ebp
neg ecx
mov ebp, edi
mov dword [esp + 0x2c], ecx
mov edi, ebx
mov ebx, eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x1c], esi
cmp edi, eax
jle 0x41846a
lea eax, [edi*2 + 0xc]
push eax
call dword [sym.imp.python35.dll_PyObject_Malloc]
mov esi, eax
mov dword [esp + 0x1c], eax
add esp, 4
mov dword [esi + 8], edi
mov eax, dword [sym.imp.python35.dll_PyLong_Type]
mov dword [esi + 4], eax
mov dword [esi], 1
jmp 0x41846c
mov edi, eax
mov dword [esp + 0x14], edi
jne 0x4183a6
mov ecx, eax
lea edi, [esi + 0xc]
lea edx, [ecx*2]
add edx, ebp
sub edi, ebp
mov ebx, ecx
lea edx, [edx - 2]
sub ecx, 1
js 0x418447
mov ax, word [edi + edx]
cmp ax, word [edx]
je 0x4183f7
movzx edx, word [ebp + ecx*2]
movzx ecx, word [esi + ecx*2 + 0xc]
mov dword [esp + 0x28], ecx
cmp cx, dx
jae 0x418424
mov dword [esp + 0x10], ebp
lea ebp, [esi + 0xc]
mov ecx, dword [esp + 0x2c]
mov edi, ebx
mov eax, dword [esp + 0x20]
neg ecx
cmp word [esp + 0x28], dx
mov dword [esp + 0x14], edi
cmovae ecx, dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
jmp 0x4183a6
mov edi, dword [0x446b14]
inc dword [edi]
add dword [esi], 0xffffffff
jne 0x418460
mov ecx, dword [esi + 4]
push esi
mov ecx, dword [ecx + 0x18]
call ecx
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret
inc dword [esi]
xor edi, edi
mov dword [esp + 0x28], 0
lea ecx, [esi + 0xc]
test ebx, ebx
jle 0x4184d3
mov eax, dword [esp + 0x10]
mov edi, ebx
sub ebp, eax
mov edx, eax
sub ecx, eax
mov dword [esp + 0x20], ecx
mov cx, word [esp + 0x28]
mov esi, dword [esp + 0x20]
nop word [eax + eax]
mov ax, word [edx]
lea edx, [edx + 2]
sub ax, word [edx + ebp - 2]
sub ax, cx
movzx eax, ax
mov dword [esp + 0x28], eax
and eax, 0x7fff
mov cx, word [esp + 0x28]
shr cx, 0xf
mov word [esi + edx - 2], ax
sub ebx, 1
jne 0x4184a0
mov esi, dword [esp + 0x18]
jmp 0x4184d8
mov cx, word [esp + 0x28]
mov eax, dword [esp + 0x14]
cmp edi, eax
jge 0x41851a
mov ebp, dword [esp + 0x10]
lea ebx, [esi + 0xc]
lea edx, [ebx + edi*2]
sub ebp, ebx
mov ebx, eax
sub ebx, edi
mov edi, eax
mov ax, word [edx + ebp]
lea edx, [edx + 2]
sub ax, cx
movzx eax, ax
mov dword [esp + 0x28], eax
and eax, 0x7fff
mov cx, word [esp + 0x28]
shr cx, 0xf
mov word [edx - 2], ax
sub ebx, 1
jne 0x4184f2
lea ebx, [esi + 0xc]
test edi, edi
jle 0x418535
lea eax, [edi - 1]
lea eax, [ebx + eax*2]
cmp word [eax], 0
jne 0x418535
dec edi
sub eax, 2
test edi, edi
jg 0x418527
mov ecx, dword [esp + 0x1c]
mov eax, edi
neg eax
cmp dword [esp + 0x2c], 0
cmovge eax, edi
mov dword [esi + 8], eax
add dword [ecx], 0xffffffff
jne 0x418559
mov eax, dword [ecx + 4]
push ecx
mov eax, dword [eax + 0x18]
call eax
add esp, 4
cmp edi, 1
jg 0x41859c
mov eax, dword [esi + 8]
test eax, eax
jns 0x41856c
movsx edi, word [ebx]
neg edi
jmp 0x418575
jne 0x418572
xor edi, edi
jmp 0x418582
movsx edi, word [ebx]
cmp edi, 0xfffffffb
jl 0x41859c
cmp edi, 0x101
jge 0x41859c
add dword [esi], 0xffffffff
jne 0x418593
mov eax, dword [esi + 4]
push esi
mov eax, dword [eax + 0x18]
call eax
add esp, 4
mov esi, dword [edi*4 + 0x446b14]
inc dword [esi]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x14
ret