Function at 0x48d310
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x48d627
sub esp, 0x30
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x38]
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x48d358
dec ecx
mov dword [esp + 0x38], ecx
neg ecx
sar ecx, 0x1f
and ecx, 1
add ecx, esi
mov esi, dword [esp + 0x38]
mov esi, eax
mov eax, ecx
mov ecx, dword [esp + 0x38]
test ecx, ecx
jle 0x48d5e0
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], eax
xchg edi, eax
mov byte [esp + 0x22], al
xchg edi, eax
movzx eax, byte [eax]
mov byte [esp + 0x23], al
cmp al, 0x20
jbe 0x48d57a
cmp al, 0x22
je 0x48d41e
cmp al, 0x5c
jne 0x48d39d
lea eax, [esi + 1]
mov esi, dword [esp + 0x34]
cmp ecx, 1
jae 0x48d33d
jmp 0x48d620
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
call fcn.0048d270
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
lea ebx, [ecx + 1]
cmp ebx, edx
jg 0x48d3e7
movzx ebp, byte [esp + 0x23]
xchg ebp, ebx
mov byte [eax + ecx], bl
xchg ebp, ebx
mov ecx, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
mov ebp, ebx
movzx edi, byte [esp + 0x22]
mov ebx, edx
mov edx, eax
xor eax, eax
jmp 0x48d393
mov dword [esp + 0x28], ecx
lea ebp, [0x7b4b60]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
call fcn.00438ba0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebx, [ecx + 1]
mov ecx, dword [esp + 0x28]
jmp 0x48d3c4
mov dword [esp + 0x24], esi
mov eax, esi
sar esi, 0x1f
shr esi, 0x1f
lea ecx, [eax + esi]
sar ecx, 1
mov dword [esp + 0x2c], ecx
mov dword [esp + 0xc], ecx
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
call fcn.0048d270
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
shl ebx, 1
mov ebp, dword [esp + 0x24]
cmp ebp, ebx
jne 0x48d520
movzx ebx, byte [esp + 0x22]
test bl, bl
je 0x48d516
mov ebp, dword [esp + 0x38]
cmp ebp, 1
jle 0x48d510
mov esi, dword [esp + 0x34]
movzx edi, byte [esi + 1]
xchg edi, eax
cmp al, 0x22
xchg edi, eax
jne 0x48d506
lea edi, [ecx + 1]
cmp edi, edx
jg 0x48d4c6
movzx ebx, byte [esp + 0x23]
mov byte [eax + ecx], bl
lea ecx, [esi + 1]
lea ebx, [ebp - 1]
movzx ebp, byte [esp + 0x22]
xor ebp, 1
mov esi, ecx
mov ecx, ebx
mov ebx, edx
mov edx, eax
xor eax, eax
mov eax, ebp
mov ebp, edi
mov edi, eax
xor eax, eax
jmp 0x48d393
lea ebx, [0x7b4b60]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], edi
call fcn.00438ba0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea edi, [ecx + 1]
mov ecx, dword [esp + 0x28]
movzx ebx, byte [esp + 0x22]
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
jmp 0x48d499
mov ecx, esi
mov ebx, ebp
mov edi, dword [esp + 0x28]
jmp 0x48d4a7
mov esi, dword [esp + 0x34]
jmp 0x48d506
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
jmp 0x48d506
lea ebx, [ecx + 1]
cmp ebx, edx
jg 0x48d547
movzx esi, byte [esp + 0x23]
xchg esi, ebx
mov byte [eax + ecx], bl
xchg esi, ebx
mov ecx, dword [esp + 0x34]
mov edi, ebx
movzx ebp, byte [esp + 0x22]
mov ebx, dword [esp + 0x38]
jmp 0x48d4af
lea ebp, [0x7b4b60]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
call fcn.00438ba0
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
lea ebx, [ecx + 1]
mov ecx, dword [esp + 0x28]
jmp 0x48d527
cmp al, 9
jne 0x48d5d6
xchg edi, eax
test al, al
xchg edi, eax
jne 0x48d39d
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
call fcn.0048d270
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
mov eax, dword [esp + 0x38]
dec eax
mov ecx, eax
neg eax
sar eax, 0x1f
and eax, 1
mov edx, dword [esp + 0x34]
add eax, edx
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
add esp, 0x30
ret
cmp al, 0x20
je 0x48d57f
jmp 0x48d39d
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
call fcn.0048d270
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], edx
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
add esp, 0x30
ret
call fcn.004265e0
ud2
call fcn.0044b230
jmp fcn.0048d310