Function at 0x4d5de0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push 0xffffffffffffffff
push 0x6c24c8
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x28
push ebx
push ebp
push esi
push edi
mov esi, ecx
lea ecx, [esp + 0x14]
mov dword [esp + 0x40], 0
mov byte [esp + 0x13], 0
call fcn.0061d780
mov ecx, dword [0x715d54]
mov eax, dword [0x715d50]
mov dx, word [0x715d58]
mov dword [esp + 0x20], ecx
push 4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x44], 1
mov dword [esp + 0x20], eax
mov word [esp + 0x28], dx
call fcn.0061daa0
push 5
lea ecx, [esp + 0x4c]
mov byte [esp + 0x1c], al
call fcn.0061daa0
mov edi, dword [esp + 0x18]
mov ecx, edi
and ecx, 0xff
mov edx, ecx
shl edx, 6
sub edx, ecx
shl edx, 2
sub edx, ecx
lea ecx, [ecx + ecx*4]
mov bl, byte [edx*2 + 0x716e09]
lea ecx, [ecx + ecx*4]
shl ecx, 3
movzx dx, byte [ecx + 0x6de818]
cmp dx, 1
jl 0x4d5ea0
lea ecx, [ecx + 0x6de87d]
movsx ebp, dx
cmp al, byte [ecx - 0x64]
jne 0x4d5e9c
mov dl, byte [ecx]
mov byte [esp + 0x13], dl
inc ecx
dec ebp
jne 0x4d5e91
mov al, byte [esi + 0x348]
test al, al
jne 0x4d5ec2
push edi
mov ecx, esi
mov byte [esi + 0x348], 1
call fcn.004d6280
test ax, ax
je 0x4d60e4
mov al, byte [0x72bd0c]
test al, al
je 0x4d5f98
lea ebx, [esi + 0x2e4]
mov edi, 0x64
call fcn.006a7255
cdq
mov ecx, 0xff
idiv ecx
inc ebx
dec edi
mov byte [ebx - 1], dl
jne 0x4d5eda
push 0xf
call fcn.0041afd0
add esp, 4
push ecx
lea eax, [esp + 0x4c]
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.0061d790
lea ecx, [esp + 0x2c]
push ecx
mov ecx, esi
call fcn.004d63a0
mov esi, eax
mov ecx, dword [esi + 8]
mov eax, dword [0x6dd1fc]
mov ebx, ecx
mov byte [esp + 0x40], 4
cmp eax, ebx
jae 0x4d5f2c
mov ebx, eax
mov ebp, dword [esp + 0x4c]
cmp ebp, esi
jne 0x4d6162
mov esi, eax
mov eax, dword [ebp + 8]
cmp eax, ebx
jae 0x4d5f46
call fcn.006a6707
mov ecx, ebp
call fcn.00414b70
mov eax, dword [ebp + 8]
sub eax, ebx
cmp eax, esi
jae 0x4d5f58
mov esi, eax
test esi, esi
jbe 0x4d5f8c
mov edx, dword [ebp + 4]
sub eax, esi
add ebx, edx
push eax
lea ecx, [ebx + esi]
push ecx
push ebx
call fcn.006a6c70
mov ebx, dword [ebp + 8]
add esp, 0xc
sub ebx, esi
mov ecx, ebp
push 0
push ebx
call fcn.00414230
test al, al
je 0x4d5f8c
push ebx
mov ecx, ebp
call fcn.00414210
mov ecx, ebp
call fcn.00414b70
jmp 0x4d6209
mov al, byte [esi + 0x349]
test al, al
jne 0x4d5ffe
shl bl, 1
cmp bl, 0xc
mov byte [esi + 0x349], 0xff
jae 0x4d5fb2
mov bl, 0xc
xor dx, dx
push 0
mov dl, bl
lea eax, [esi + 0x2c0]
push edx
lea ecx, [esp + 0x24]
push eax
push ecx
lea ecx, [esi + 0x350]
call fcn.00553730
test ax, ax
jne 0x4d5ffe
push 0
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x58], esp
push 6
push 0x7133ac
call fcn.0061d820
push ecx
mov byte [esp + 0x50], 2
mov ecx, esp
mov dword [esp + 0x28], esp
jmp 0x4d60c2
mov al, byte [esi + 0x34a]
mov cl, byte [esp + 0x13]
cmp al, cl
jne 0x4d6014
test al, al
jne 0x4d5ef8
lea edi, [esi + 0x2c0]
mov byte [esi + 0x34a], cl
push 0
mov ecx, edi
call fcn.0061b060
mov ecx, dword [eax + 4]
test ecx, ecx
jne 0x4d6034
xor al, al
jmp 0x4d603c
mov eax, dword [eax + 8]
sub eax, ecx
sar eax, 2
xor bx, bx
xor ebp, ebp
mov bl, al
test bx, bx
jle 0x4d6098
movsx edx, bp
push edx
push 0
mov ecx, edi
call fcn.0061b060
mov ecx, eax
call fcn.00690c60
push ecx
mov ecx, esp
mov dword [esp + 0x1c], esp
push eax
call fcn.0061d790
lea ecx, [esp + 0x18]
call fcn.0061dab0
lea ecx, [esp + 0x14]
call fcn.0061dc40
cmp ax, 4
jle 0x4d6092
push 3
lea ecx, [esp + 0x18]
call fcn.0061daa0
cmp al, byte [esp + 0x13]
je 0x4d610b
inc ebp
cmp bp, bx
jl 0x4d6048
push 0
push 1
push ecx
mov byte [esi + 0x349], 0
mov ecx, esp
mov dword [esp + 0x58], esp
push 6
push 0x7133ac
call fcn.0061d820
push ecx
mov byte [esp + 0x50], 3
mov ecx, esp
mov dword [esp + 0x28], esp
push 6
push 0x71345c
call fcn.0061d820
mov ecx, 0x72bae0
mov byte [esp + 0x50], 1
call fcn.0061ef70
mov ecx, esi
call fcn.004d5d50
lea ecx, [esp + 0x14]
mov byte [esp + 0x40], 0
call fcn.0061d8c0
lea ecx, [esp + 0x48]
mov dword [esp + 0x40], 0xffffffff
call fcn.0061d8c0
xor ax, ax
jmp 0x4d625f
push 0
lea ecx, [esp + 0x18]
call fcn.0061daa0
xor ebx, ebx
lea ecx, [esp + 0x14]
push ebx
mov byte [esi + 0x2e4], al
call fcn.0061daa0
test al, al
jbe 0x4d5ef8
lea eax, [ebx + 3]
lea ecx, [esp + 0x14]
push eax
call fcn.0061daa0
movsx ecx, bx
push 0
inc ebx
mov byte [ecx + esi + 0x2e5], al
lea ecx, [esp + 0x18]
call fcn.0061daa0
xor dx, dx
mov dl, al
cmp bx, dx
jl 0x4d6130
jmp 0x4d5ef8
xor edi, edi
cmp ebx, edi
jbe 0x4d61d0
cmp ebx, ecx
jne 0x4d61d0
mov eax, dword [esi + 4]
cmp eax, edi
jne 0x4d6178
mov eax, 0x6dd1f8
cmp byte [eax - 1], 0xfe
jae 0x4d61d0
mov eax, dword [ebp + 4]
cmp eax, edi
je 0x4d61a2
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d6199
cmp al, 0xff
je 0x4d6199
dec al
mov byte [ecx], al
jmp 0x4d61a2
push ecx
call fcn.006a64d0
add esp, 4
mov dword [ebp + 4], edi
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], edi
mov eax, dword [esi + 4]
cmp eax, edi
jne 0x4d61b7
mov eax, 0x6dd1f8
mov dword [ebp + 4], eax
mov ecx, dword [esi + 8]
mov dword [ebp + 8], ecx
mov esi, dword [esi + 0xc]
mov dword [ebp + 0xc], esi
mov cl, byte [eax - 1]
inc cl
mov byte [eax - 1], cl
jmp 0x4d6209
push 1
push ebx
mov ecx, ebp
call fcn.00414230
test al, al
je 0x4d6209
mov esi, dword [esi + 4]
test esi, esi
jne 0x4d61ea
mov esi, 0x6dd1f8
mov edi, dword [ebp + 4]
mov ecx, ebx
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebp + 8], ebx
mov ebp, dword [ebp + 4]
add ebp, ebx
mov byte [ebp], 0
mov eax, dword [esp + 0x2c]
xor esi, esi
cmp eax, esi
je 0x4d6230
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x4d6227
cmp al, 0xff
je 0x4d6227
dec al
mov byte [ecx], al
jmp 0x4d6230
push ecx
call fcn.006a64d0
add esp, 4
lea ecx, [esp + 0x14]
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov byte [esp + 0x40], 0
call fcn.0061d8c0
lea ecx, [esp + 0x48]
mov dword [esp + 0x40], 0xffffffff
call fcn.0061d8c0
mov ax, 1
mov ecx, dword [esp + 0x38]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x34
ret 8