Function at 0x49e05c
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 0x49e2ed
movzx eax, byte [edi]
cmp eax, 0x7b
je 0x49e09c
cmp eax, 0x7d
jne 0x49e0d1
sub eax, 0x7c
neg eax
add dword [ebp - 0x10c], eax
inc edi
cmp eax, 0xffffffff
jne 0x49e2e5
mov eax, dword [ebp - 0x10c]
cmp eax, 0x41
jae 0x49e0cc
lea edx, [ebp - 0x100]
movzx eax, byte [eax + edx]
mov dword [ebp - 0x104], eax
jmp 0x49e2e5
cmp eax, 0xd
je 0x49e0db
cmp eax, 0xa
jne 0x49e0e1
inc edi
jmp 0x49e2e5
cmp eax, 0x5c
jne 0x49e299
inc edi
cmp edi, dword [ebp - 0x108]
je 0x49e2f9
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 0x49e13c
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.0049e314
jmp 0x49e1d2
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 0x49e15a
jmp 0x49e13c
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 0x49e2f9
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 0x49e1a4
jmp 0x49e183
mov eax, dword [ebp - 0x138]
xor ebx, eax
sub ebx, eax
lea eax, [edx + 0x30]
cmp eax, 0x20
je 0x49e1b7
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.0049e314
mov eax, dword [ebp - 0x110]
or al, al
jne 0x49e231
shr eax, 8
and eax, 0xff
or eax, eax
je 0x49e222
cmp dword [ebp - 0x13c], 0
jne 0x49e222
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 0x49e2e5
cmp al, 1
jne 0x49e273
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 0x49e2e5
inc edi
jmp 0x49e2e5
cmp al, 2
jne 0x49e2e5
mov eax, dword [ebp - 0x110]
shr eax, 8
cmp dword [ebp - 0x10c], 0x41
jae 0x49e297
lea edx, [ebp - 0x100]
add edx, dword [ebp - 0x10c]
mov byte [edx], al
jmp 0x49e2e5
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 0x49e2e5
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 0x49e08f
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