Function at 0x49dcac
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffec4
push edi
push esi
push ebx
xor eax, eax
lea edi, [esp + 0xc]
mov ecx, ebp
sub ecx, edi
shr ecx, 2
rep stosd dword es:[edi], eax
mov esi, dword [ebp + 0xc]
mov eax, dword [esi + 0xc]
mov edx, eax
mov edi, dword [ebp + 8]
add eax, edi
mov dword [ebp - 0x108], eax
jmp 0x49df3d
movzx eax, byte [edi]
cmp eax, 0x7b
je 0x49dcec
cmp eax, 0x7d
jne 0x49dd21
sub eax, 0x7c
neg eax
add dword [ebp - 0x10c], eax
inc edi
cmp eax, 0xffffffff
jne 0x49df35
mov eax, dword [ebp - 0x10c]
cmp eax, 0x41
jae 0x49dd1c
lea edx, [ebp - 0x100]
movzx eax, byte [eax + edx]
mov dword [ebp - 0x104], eax
jmp 0x49df35
cmp eax, 0xd
je 0x49dd2b
cmp eax, 0xa
jne 0x49dd31
inc edi
jmp 0x49df35
cmp eax, 0x5c
jne 0x49dee9
inc edi
cmp edi, dword [ebp - 0x108]
je 0x49df49
lea esi, [ebp - 0x130]
xor ecx, ecx
movzx eax, byte [edi]
mov byte [esi], al
inc esi
inc edi
mov edx, eax
or edx, 0x20
sub edx, 0x61
sbb ecx, ecx
sub edx, 0x1a
sbb edx, edx
not edx
add edx, ecx
je 0x49dd8c
xor eax, eax
mov byte [esi], al
push dword [ebp + 0xc]
lea eax, [ebp - 0x110]
push eax
push 0
lea eax, [ebp - 0x130]
push eax
call fcn.0049df64
jmp 0x49de22
movzx eax, byte [edi]
mov byte [esi], al
inc esi
inc edi
mov edx, eax
or edx, 0x20
sub edx, 0x61
sbb ecx, ecx
sub edx, 0x1a
sbb edx, edx
not edx
add edx, ecx
jne 0x49ddaa
jmp 0x49dd8c
xor edx, edx
dec esi
mov byte [esi], dl
sub eax, 0x2d
sub eax, 1
sbb ebx, ebx
mov eax, ebx
not eax
add edi, eax
cmp edi, dword [ebp - 0x108]
je 0x49df49
mov dword [ebp - 0x138], ebx
xor ebx, ebx
xor edx, edx
lea ebx, [ebx + ebx*4]
lea ebx, [edx + ebx*2]
movzx eax, byte [edi]
inc edi
mov edx, eax
sub edx, 0x30
sbb ecx, ecx
sub edx, 0xa
sbb eax, eax
not eax
add edx, 0xa
add eax, ecx
jne 0x49ddf4
jmp 0x49ddd3
mov eax, dword [ebp - 0x138]
xor ebx, eax
sub ebx, eax
lea eax, [edx + 0x30]
cmp eax, 0x20
je 0x49de07
dec edi
xor eax, eax
mov byte [esi], al
push dword [ebp + 0xc]
lea eax, [ebp - 0x110]
push eax
push ebx
lea eax, [ebp - 0x130]
push eax
call fcn.0049df64
mov eax, dword [ebp - 0x110]
or al, al
jne 0x49de81
shr eax, 8
and eax, 0xff
or eax, eax
je 0x49de72
cmp dword [ebp - 0x13c], 0
jne 0x49de72
mov eax, dword [ebp - 0x104]
dec dword [ebp - 0x104]
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x48]
add ecx, dword [edx + 0x5c]
lea eax, [ebp - 0x10f]
push 2
push ecx
push 1
push eax
push 1
push 0
call sub.KERNEL32.dll_MultiByteToWideChar
mov edx, dword [ebp + 0xc]
add dword [edx + 0x5c], 2
mov dword [ebp - 0x13c], 0
jmp 0x49df35
cmp al, 1
jne 0x49dec3
mov dword [ebp - 0x13c], 1
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x48]
add ecx, dword [edx + 0x5c]
shr eax, 8
and eax, 0xffff
mov dword [ecx], eax
add dword [edx + 0x5c], 2
lea edx, [ebp - 0x100]
add edx, dword [ebp - 0x10c]
movzx eax, byte [edx]
mov dword [ebp - 0x104], eax
cmp byte [edi], 0x47
jne 0x49df35
inc edi
jmp 0x49df35
cmp al, 2
jne 0x49df35
mov eax, dword [ebp - 0x110]
shr eax, 8
cmp dword [ebp - 0x10c], 0x41
jae 0x49dee7
lea edx, [ebp - 0x100]
add edx, dword [ebp - 0x10c]
mov byte [edx], al
jmp 0x49df35
mov edx, dword [ebp + 0xc]
mov ecx, dword [edx + 0x48]
add ecx, dword [edx + 0x5c]
mov ebx, dword [ebp - 0x110]
shr ebx, 1
and ebx, 7
or ebx, ebx
jne 0x49df35
mov edx, dword [ebp - 0x104]
dec dword [ebp - 0x104]
and eax, 0xff
mov dword [ebp - 0x110], eax
lea eax, [ebp - 0x110]
push 2
push ecx
push 1
push eax
push 1
push 0
call sub.KERNEL32.dll_MultiByteToWideChar
mov edx, dword [ebp + 0xc]
add dword [edx + 0x5c], 2
inc edi
xor eax, eax
mov dword [ebp - 0x110], eax
cmp edi, dword [ebp - 0x108]
jne 0x49dcdf
mov edx, dword [ebp + 0xc]
mov eax, dword [edx + 0x5c]
mov esi, dword [edx + 0x48]
mov dword [esi - 4], eax
sub dword [edx + 0x48], 4
mov eax, esi
pop ebx
pop esi
pop edi
leave
ret 8