Function at 0x474c00
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x474f0f
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 0x474c48
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 0x474ec8
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 0x474e62
cmp al, 0x22
je 0x474d0e
cmp al, 0x5c
jne 0x474c8d
lea eax, [esi + 1]
mov esi, dword [esp + 0x34]
cmp ecx, 1
jae 0x474c2d
jmp 0x474f08
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
call fcn.00474b60
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
lea ebx, [ecx + 1]
cmp ebx, edx
ja 0x474cd7
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
mov ebx, edx
movzx edi, byte [esp + 0x22]
mov edx, eax
xor eax, eax
jmp 0x474c83
mov dword [esp + 0x28], ecx
lea ebp, [0x62bba0]
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.00438b20
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 0x474cb4
mov dword [esp + 0x24], esi
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov eax, esi
shr esi, 0x1f
lea ecx, [eax + esi]
sar ecx, 1
mov dword [esp + 0x2c], ecx
mov dword [esp + 0xc], ecx
call fcn.00474b60
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 0x474e08
movzx ebx, byte [esp + 0x22]
test bl, bl
je 0x474dfe
mov ebp, dword [esp + 0x38]
cmp ebp, 1
jle 0x474df8
mov esi, dword [esp + 0x34]
cmp byte [esi + 1], 0x22
jne 0x474dee
lea edi, [ecx + 1]
cmp edi, edx
ja 0x474dae
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 0x474c83
lea ebx, [0x62bba0]
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.00438b20
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 0x474d81
mov ebx, ebp
mov ecx, esi
mov edi, dword [esp + 0x28]
jmp 0x474d8f
mov esi, dword [esp + 0x34]
jmp 0x474dee
mov ebp, dword [esp + 0x38]
mov esi, dword [esp + 0x34]
jmp 0x474dee
lea ebx, [ecx + 1]
cmp ebx, edx
ja 0x474e2f
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 0x474d97
lea ebp, [0x62bba0]
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.00438b20
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 0x474e0f
cmp al, 9
jne 0x474ebe
xchg edi, eax
test al, al
xchg edi, eax
jne 0x474c8d
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
call fcn.00474b60
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 0x474e67
jmp 0x474c8d
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], ebx
mov dword [esp + 0xc], esi
call fcn.00474b60
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.00426ff0
ud2
call fcn.0044b170
jmp fcn.00474c00