Function at 0x4d287c
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
push ebx
push esi
push edi
mov esi, ecx
mov ebx, edx
mov dword [ebp - 4], eax
mov edi, dword [ebp + 8]
mov eax, dword [0x595f00]
mov eax, dword [eax]
cmp bl, byte [eax + 9]
jae 0x4d30d7
xor eax, eax
mov al, bl
imul eax, eax, 0x8f9
mov edx, dword [0x596370]
mov edx, dword [edx]
cmp byte [edx + eax*4 + 0x204], 0
jbe 0x4d30d7
xor eax, eax
mov al, bl
imul eax, eax, 0x2c7
mov edx, dword [0x596370]
mov edx, dword [edx]
cmp byte [edx + eax*4 + 0x385a0], 0
je 0x4d30d7
xor eax, eax
mov dword [ebp - 0x14], eax
xor edx, edx
mov dl, bl
imul edx, edx, 0x2c7
mov ecx, dword [0x596370]
mov ecx, dword [ecx]
lea edx, [ecx + edx*4]
push edx
movzx edx, si
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx*2]
push edx
mov eax, edi
and eax, 0xff
imul eax, eax, 0x49
pop edx
add edx, eax
xor ecx, ecx
mov cl, byte [ebp - 0x14]
movzx edx, byte [edx + ecx + 0x38604]
mov dword [ebp - 0x1c], edx
xor edx, edx
mov dl, bl
imul edx, edx, 0x2c7
mov ecx, dword [0x596370]
mov ecx, dword [ecx]
lea edx, [ecx + edx*4]
push edx
movzx edx, si
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx*2]
push edx
pop edx
add edx, eax
xor ecx, ecx
mov cl, byte [ebp - 0x14]
movzx edx, byte [edx + ecx + 0x385fb]
mov dword [ebp - 8], edx
xor edx, edx
mov dl, bl
imul edx, edx, 0x2c7
mov ecx, dword [0x596370]
mov ecx, dword [ecx]
lea edx, [ecx + edx*4]
push edx
movzx edx, si
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx*2]
push edx
pop edx
movzx edx, byte [edx + eax + 0x385f3]
cmp edx, dword [ebp - 8]
jl 0x4d30d7
dec dword [ebp - 8]
cmp dword [ebp - 8], 0
jl 0x4d30d7
xor edx, edx
mov dl, bl
imul edx, edx, 0x2c7
mov ecx, dword [0x596370]
mov ecx, dword [ecx]
lea edx, [ecx + edx*4]
push edx
movzx edx, si
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx*2]
push edx
pop edx
add edx, eax
xor ecx, ecx
mov cl, byte [ebp - 8]
mov byte [edx + ecx + 0x385c0], 0
xor edx, edx
mov dl, bl
imul edx, edx, 0x2c7
mov ecx, dword [0x596370]
mov ecx, dword [ecx]
lea edx, [ecx + edx*4]
push edx
movzx edx, si
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx*2]
push edx
pop edx
lea eax, [edx + eax]
xor edx, edx
mov dl, byte [ebp - 0x14]
movzx eax, byte [eax + edx*2 + 0x385fe]
dec eax
xor edx, edx
mov dl, bl
imul edx, edx, 0x2c7
mov ecx, dword [0x596370]
mov ecx, dword [ecx]
lea edx, [ecx + edx*4]
push edx
movzx edx, si
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx*2]
push edx
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx]
push edx
xor edx, edx
mov dl, byte [ebp - 0x14]
pop ecx
movzx edx, byte [ecx + edx*2 + 0x385ff]
dec edx
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x1c]
cmp edx, 6
ja case.default.0x4d2a49
jmp dword [edx*4 + 0x4d2a50]
mov edx, dword [ebp - 0x10]
sub edx, eax
jl case.default.0x4d2a49
inc edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], eax
xor eax, eax
mov al, bl
imul eax, eax, 0x2c7
mov edx, dword [0x596370]
mov edx, dword [edx]
lea eax, [edx + eax*4]
movzx edx, si
imul edx, edx, 0x49
lea eax, [eax + edx*2]
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0x18]
mov al, byte [eax + edx + 0x385c0]
xor edx, edx
mov dl, bl
imul edx, edx, 0x2c7
mov ecx, dword [0x596370]
mov ecx, dword [ecx]
lea edx, [ecx + edx*4]
push edx
movzx edx, si
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx*2]
push edx
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx]
push edx
xor edx, edx
mov dl, byte [ebp - 8]
pop ecx
add byte [ecx + edx + 0x385c0], al
inc dword [ebp - 0x18]
dec dword [ebp - 0x20]
jne 0x4d2a7e
jmp case.default.0x4d2a49
mov edx, dword [ebp - 0x10]
sub edx, eax
jl case.default.0x4d2a49
inc edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], eax
xor eax, eax
mov al, bl
imul eax, eax, 0x2c7
mov edx, dword [0x596370]
mov edx, dword [edx]
lea eax, [edx + eax*4]
movzx edx, si
imul edx, edx, 0x49
lea eax, [eax + edx*2]
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
add eax, edx
xor edx, edx
mov dl, byte [ebp - 8]
mov al, byte [eax + edx + 0x385c0]
xor edx, edx
mov dl, bl
imul edx, edx, 0x2c7
mov ecx, dword [0x596370]
mov ecx, dword [ecx]
lea edx, [ecx + edx*4]
push edx
movzx edx, si
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx*2]
push edx
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx]
push edx
xor edx, edx
mov dl, byte [ebp - 0x18]
pop ecx
xor al, byte [ecx + edx + 0x385c0]
xor edx, edx
mov dl, bl
imul edx, edx, 0x2c7
mov ecx, dword [0x596370]
mov ecx, dword [ecx]
lea edx, [ecx + edx*4]
push edx
movzx edx, si
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx*2]
push edx
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx]
push edx
xor edx, edx
mov dl, byte [ebp - 8]
pop ecx
mov byte [ecx + edx + 0x385c0], al
inc dword [ebp - 0x18]
dec dword [ebp - 0x20]
jne 0x4d2b12
jmp case.default.0x4d2a49
mov edx, dword [ebp - 0x10]
sub edx, eax
jl 0x4d2c65
inc edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], eax
xor eax, eax
mov al, bl
imul eax, eax, 0x2c7
mov edx, dword [0x596370]
mov edx, dword [edx]
lea eax, [edx + eax*4]
movzx edx, si
imul edx, edx, 0x49
lea eax, [eax + edx*2]
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0x18]
mov al, byte [eax + edx + 0x385c0]
xor edx, edx
mov dl, bl
imul edx, edx, 0x2c7
mov ecx, dword [0x596370]
mov ecx, dword [ecx]
lea edx, [ecx + edx*4]
push edx
movzx edx, si
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx*2]
push edx
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx]
push edx
xor edx, edx
mov dl, byte [ebp - 8]
pop ecx
add byte [ecx + edx + 0x385c0], al
inc dword [ebp - 0x18]
dec dword [ebp - 0x20]
jne 0x4d2be8
xor eax, eax
mov al, bl
imul eax, eax, 0x2c7
mov edx, dword [0x596370]
mov edx, dword [edx]
lea eax, [edx + eax*4]
movzx edx, si
imul edx, edx, 0x49
lea eax, [eax + edx*2]
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
add eax, edx
xor edx, edx
mov dl, byte [ebp - 8]
mov cl, 0xff
sub cl, byte [eax + edx + 0x385c0]
xor eax, eax
mov al, bl
imul eax, eax, 0x2c7
mov edx, dword [0x596370]
mov edx, dword [edx]
lea eax, [edx + eax*4]
push eax
movzx eax, si
imul eax, eax, 0x49
pop edx
lea eax, [edx + eax*2]
push eax
mov eax, edi
and eax, 0xff
imul eax, eax, 0x49
pop edx
lea eax, [edx + eax]
push eax
xor eax, eax
mov al, byte [ebp - 8]
pop edx
mov byte [edx + eax + 0x385c0], cl
jmp case.default.0x4d2a49
mov edx, dword [ebp - 0x10]
sub edx, eax
jl 0x4d2d6f
inc edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], eax
xor eax, eax
mov al, bl
imul eax, eax, 0x2c7
mov edx, dword [0x596370]
mov edx, dword [edx]
lea eax, [edx + eax*4]
movzx edx, si
imul edx, edx, 0x49
lea eax, [eax + edx*2]
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0x18]
mov al, byte [eax + edx + 0x385c0]
xor edx, edx
mov dl, bl
imul edx, edx, 0x2c7
mov ecx, dword [0x596370]
mov ecx, dword [ecx]
lea edx, [ecx + edx*4]
push edx
movzx edx, si
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx*2]
push edx
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx]
push edx
xor edx, edx
mov dl, byte [ebp - 8]
pop ecx
add byte [ecx + edx + 0x385c0], al
inc dword [ebp - 0x18]
dec dword [ebp - 0x20]
jne 0x4d2cf2
xor eax, eax
mov al, bl
imul eax, eax, 0x2c7
mov edx, dword [0x596370]
mov edx, dword [edx]
lea eax, [edx + eax*4]
movzx edx, si
imul edx, edx, 0x49
lea eax, [eax + edx*2]
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
add eax, edx
xor edx, edx
mov dl, byte [ebp - 8]
mov cl, 0x7f
sub cl, byte [eax + edx + 0x385c0]
xor eax, eax
mov al, bl
imul eax, eax, 0x2c7
mov edx, dword [0x596370]
mov edx, dword [edx]
lea eax, [edx + eax*4]
push eax
movzx eax, si
imul eax, eax, 0x49
pop edx
lea eax, [edx + eax*2]
push eax
mov eax, edi
and eax, 0xff
imul eax, eax, 0x49
pop edx
lea eax, [edx + eax]
push eax
xor eax, eax
mov al, byte [ebp - 8]
pop edx
mov byte [edx + eax + 0x385c0], cl
jmp case.default.0x4d2a49
mov edx, dword [ebp - 0x10]
sub edx, eax
jl 0x4d2e79
inc edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], eax
xor eax, eax
mov al, bl
imul eax, eax, 0x2c7
mov edx, dword [0x596370]
mov edx, dword [edx]
lea eax, [edx + eax*4]
movzx edx, si
imul edx, edx, 0x49
lea eax, [eax + edx*2]
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0x18]
mov al, byte [eax + edx + 0x385c0]
xor edx, edx
mov dl, bl
imul edx, edx, 0x2c7
mov ecx, dword [0x596370]
mov ecx, dword [ecx]
lea edx, [ecx + edx*4]
push edx
movzx edx, si
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx*2]
push edx
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx]
push edx
xor edx, edx
mov dl, byte [ebp - 8]
pop ecx
add byte [ecx + edx + 0x385c0], al
inc dword [ebp - 0x18]
dec dword [ebp - 0x20]
jne 0x4d2dfc
xor eax, eax
mov al, bl
imul eax, eax, 0x2c7
mov edx, dword [0x596370]
mov edx, dword [edx]
lea eax, [edx + eax*4]
movzx edx, si
imul edx, edx, 0x49
lea eax, [eax + edx*2]
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
add eax, edx
xor edx, edx
mov dl, byte [ebp - 8]
mov al, byte [eax + edx + 0x385c0]
not al
inc eax
xor edx, edx
mov dl, bl
imul edx, edx, 0x2c7
mov ecx, dword [0x596370]
mov ecx, dword [ecx]
lea edx, [ecx + edx*4]
push edx
movzx edx, si
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx*2]
push edx
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx]
push edx
xor edx, edx
mov dl, byte [ebp - 8]
pop ecx
mov byte [ecx + edx + 0x385c0], al
jmp case.default.0x4d2a49
mov edx, dword [ebp - 0x10]
sub edx, eax
jl 0x4d2f85
inc edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], eax
xor eax, eax
mov al, bl
imul eax, eax, 0x2c7
mov edx, dword [0x596370]
mov edx, dword [edx]
lea eax, [edx + eax*4]
movzx edx, si
imul edx, edx, 0x49
lea eax, [eax + edx*2]
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0x18]
mov al, byte [eax + edx + 0x385c0]
xor edx, edx
mov dl, bl
imul edx, edx, 0x2c7
mov ecx, dword [0x596370]
mov ecx, dword [ecx]
lea edx, [ecx + edx*4]
push edx
movzx edx, si
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx*2]
push edx
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx]
push edx
xor edx, edx
mov dl, byte [ebp - 8]
pop ecx
add byte [ecx + edx + 0x385c0], al
inc dword [ebp - 0x18]
dec dword [ebp - 0x20]
jne 0x4d2f08
xor eax, eax
mov al, bl
imul eax, eax, 0x2c7
mov edx, dword [0x596370]
mov edx, dword [edx]
lea eax, [edx + eax*4]
movzx edx, si
imul edx, edx, 0x49
lea eax, [eax + edx*2]
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
add eax, edx
xor edx, edx
mov dl, byte [ebp - 8]
movzx eax, byte [eax + edx + 0x385c0]
and eax, 0x7f
xor edx, edx
mov dl, bl
imul edx, edx, 0x2c7
mov ecx, dword [0x596370]
mov ecx, dword [ecx]
lea edx, [ecx + edx*4]
push edx
movzx edx, si
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx*2]
push edx
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx]
push edx
xor edx, edx
mov dl, byte [ebp - 8]
pop ecx
mov byte [ecx + edx + 0x385c0], al
jmp case.default.0x4d2a49
mov edx, dword [ebp - 0x10]
sub edx, eax
jl 0x4d3092
inc edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x18], eax
xor eax, eax
mov al, bl
imul eax, eax, 0x2c7
mov edx, dword [0x596370]
mov edx, dword [edx]
lea eax, [edx + eax*4]
movzx edx, si
imul edx, edx, 0x49
lea eax, [eax + edx*2]
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
add eax, edx
xor edx, edx
mov dl, byte [ebp - 0x18]
mov al, byte [eax + edx + 0x385c0]
xor edx, edx
mov dl, bl
imul edx, edx, 0x2c7
mov ecx, dword [0x596370]
mov ecx, dword [ecx]
lea edx, [ecx + edx*4]
push edx
movzx edx, si
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx*2]
push edx
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
pop ecx
lea edx, [ecx + edx]
push edx
xor edx, edx
mov dl, byte [ebp - 8]
pop ecx
add byte [ecx + edx + 0x385c0], al
inc dword [ebp - 0x18]
dec dword [ebp - 0x20]
jne 0x4d3015
xor eax, eax
mov al, bl
imul eax, eax, 0x2c7
mov edx, dword [0x596370]
mov edx, dword [edx]
lea eax, [edx + eax*4]
movzx edx, si
imul edx, edx, 0x49
lea eax, [eax + edx*2]
mov edx, edi
and edx, 0xff
imul edx, edx, 0x49
add eax, edx
xor edx, edx
mov dl, byte [ebp - 8]
add byte [eax + edx + 0x385c0], 0x20
inc dword [ebp - 0x14]
cmp dword [ebp - 0x14], 3
jne 0x4d28e4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4