Function at 0x4d0fa0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xe0
mov eax, dword [0x5be9a0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [esi + 0x994c]
push ebx
push edi
mov edi, dword [esi + 0x92a4]
push 0x550
lea ecx, [esi + 0x11468]
push 0
push ecx
mov dword [ebp - 0xd0], edi
mov dword [ebp - 0xcc], eax
xor bl, bl
call fcn.004bd240
mov ecx, dword [ebp - 0xcc]
xor eax, eax
add esp, 0xc
mov dword [ebp - 0xc4], eax
test ecx, ecx
je 0x4d1133
lea edi, [esi + 0x9963]
mov dword [ebp - 0xbc], edi
jmp 0x4d1016
mov eax, dword [ebp - 0xc4]
xor ecx, ecx
cmp byte [edi], cl
jbe 0x4d106b
mov edx, eax
and edx, 0x3f
shr eax, 6
lea edx, [edx*8 + 0x51e298]
mov dword [ebp - 0xc8], eax
jmp 0x4d1039
mov eax, dword [ebp - 0xc8]
mov bl, byte [edi + ecx + 1]
movzx edi, bl
lea eax, [eax + edi*2]
mov edi, dword [edx]
xor dword [esi + eax*8 + 0x11468], edi
mov edi, dword [edx + 4]
xor dword [esi + eax*8 + 0x1146c], edi
mov edi, dword [ebp - 0xbc]
lea eax, [esi + eax*8 + 0x11468]
movzx eax, byte [edi]
inc ecx
cmp ecx, eax
jb 0x4d1033
movzx eax, word [edi - 3]
cmp eax, 1
jbe 0x4d1105
imul eax, eax, 0x9e375365
shr eax, 0x16
lea ecx, [eax*8]
sub ecx, eax
lea edx, [esi + ecx*4 + 0xa468]
xor ecx, ecx
cmp byte [edx + 7], cl
jbe 0x4d1105
mov eax, dword [ebp - 0xc4]
mov edi, eax
and edi, 0x3f
lea edi, [edi*8 + 0x51e298]
shr eax, 6
mov dword [ebp - 0xc0], edi
mov dword [ebp - 0xc8], eax
jmp 0x4d10c6
mov eax, dword [ebp - 0xc8]
mov bl, byte [edx + ecx + 8]
movzx edi, bl
lea eax, [eax + edi*2]
mov edi, dword [ebp - 0xc0]
mov edi, dword [edi]
xor dword [esi + eax*8 + 0x11468], edi
mov edi, dword [ebp - 0xc0]
mov edi, dword [edi + 4]
xor dword [esi + eax*8 + 0x1146c], edi
lea eax, [esi + eax*8 + 0x11468]
movzx eax, byte [edx + 7]
inc ecx
cmp ecx, eax
jb 0x4d10c0
mov edi, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xc4]
inc eax
add edi, 0x1c
mov dword [ebp - 0xc4], eax
mov dword [ebp - 0xbc], edi
cmp eax, dword [ebp - 0xcc]
jb 0x4d1010
mov edi, dword [ebp - 0xd0]
mov ecx, dword [ebp - 0xcc]
xor eax, eax
test edi, edi
je 0x4d1149
lea esp, [esp]
mov byte [ebp + eax - 0x60], al
inc eax
cmp eax, edi
jb 0x4d1140
test ecx, ecx
je 0x4d119d
lea edx, [esi + 0x119b8]
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xbc], ecx
nop
mov eax, dword [esi + 0x11a84]
mov ecx, 0x7f13ac69
mul ecx
mov ecx, dword [ebp - 0xc0]
xor edi, edi
add eax, dword [esi + 0x11a88]
adc edx, edi
mov dword [esi + 0x11a84], eax
mov dword [esi + 0x11a88], edx
mov word [ecx], ax
add ecx, 2
dec dword [ebp - 0xbc]
mov dword [ebp - 0xc0], ecx
jne 0x4d1160
mov edx, dword [ebp - 0xd0]
xor edi, edi
xor eax, eax
mov dword [ebp - 0xbc], edi
mov dword [ebp - 0xc4], eax
test edx, edx
je 0x4d1352
cmp eax, dword [ebp - 0xcc]
jae 0x4d1352
mov ecx, edi
cmp dword [ebp - 0xbc], edx
jae 0x4d123d
mov edx, eax
shr edx, 6
and eax, 0x3f
mov edi, dword [eax*8 + 0x51e298]
mov eax, dword [eax*8 + 0x51e29c]
mov dword [ebp - 0xc8], edx
mov dword [ebp - 0xe0], edi
mov dword [ebp - 0xdc], eax
jmp 0x4d1206
mov edx, dword [ebp - 0xc8]
mov bl, byte [ebp + ecx - 0x60]
movzx eax, bl
lea edx, [edx + eax*2]
mov eax, dword [esi + edx*8 + 0x11468]
mov edx, dword [esi + edx*8 + 0x1146c]
and eax, dword [ebp - 0xe0]
and edx, dword [ebp - 0xdc]
or eax, edx
jne 0x4d1237
inc ecx
cmp ecx, dword [ebp - 0xd0]
jb 0x4d1200
mov eax, dword [ebp - 0xc4]
mov edi, dword [ebp - 0xbc]
cmp ecx, dword [ebp - 0xd0]
je 0x4d133d
mov dl, byte [ebp + edi - 0x60]
mov byte [ebp + ecx - 0x60], dl
inc ecx
mov byte [ebp + edi - 0x60], bl
mov byte [ebp + edi - 0xb8], al
inc edi
mov dword [ebp - 0xbc], edi
mov dword [ebp - 0xd4], ecx
cmp ecx, dword [ebp - 0xd0]
jae 0x4d133d
mov edx, eax
and edx, 0x3f
mov edi, eax
lea edx, [edx*8 + 0x51e298]
shr edi, 6
mov dword [ebp - 0xc0], edx
mov dword [ebp - 0xc8], edi
movzx ecx, byte [ebp + ecx - 0x60]
mov edx, dword [ebp - 0xc0]
add ecx, ecx
add edi, ecx
mov eax, dword [esi + edi*8 + 0x11468]
and eax, dword [edx]
mov edx, dword [esi + edi*8 + 0x1146c]
mov edi, dword [ebp - 0xc0]
and edx, dword [edi + 4]
mov edi, dword [ebp - 0xc8]
or eax, edx
je 0x4d1318
mov edx, dword [ebp - 0xcc]
add edx, 0x3f
shr edx, 6
cmp edi, edx
jae 0x4d1318
add ecx, edi
lea eax, [esi + ecx*8 + 0x11468]
movzx ecx, bl
lea ecx, [edi + ecx*2]
sub edx, edi
lea ecx, [esi + ecx*8 + 0x11468]
mov dword [ebp - 0xd8], edx
lea esp, [esp]
mov edx, dword [ecx]
xor dword [eax], edx
mov edx, dword [ecx + 4]
xor dword [eax + 4], edx
add ecx, 8
add eax, 8
dec dword [ebp - 0xd8]
jne 0x4d1300
mov ecx, dword [ebp - 0xd4]
inc ecx
mov dword [ebp - 0xd4], ecx
cmp ecx, dword [ebp - 0xd0]
jb 0x4d1299
mov edi, dword [ebp - 0xbc]
mov eax, dword [ebp - 0xc4]
mov edx, dword [ebp - 0xd0]
inc eax
mov dword [ebp - 0xc4], eax
cmp edi, edx
jb 0x4d11bb
dec edi
mov dword [ebp - 0xc4], edi
js 0x4d1406
movzx ebx, byte [ebp + edi - 0xb8]
mov al, byte [ebp + edi - 0x60]
inc ebx
mov dword [ebp - 0xbc], 0
cmp ebx, dword [ebp - 0xcc]
jae 0x4d13e2
movzx edi, al
lea eax, [esi + ebx*2 + 0x119b8]
add edi, edi
mov dword [ebp - 0xc0], eax
mov eax, ebx
shr eax, 6
add eax, edi
mov ecx, dword [esi + eax*8 + 0x11468]
mov eax, dword [esi + eax*8 + 0x1146c]
mov edx, ebx
and edx, 0x3f
and ecx, dword [edx*8 + 0x51e298]
and eax, dword [edx*8 + 0x51e29c]
or ecx, eax
je 0x4d13cc
mov ecx, dword [ebp - 0xc0]
mov dx, word [ecx]
xor word [ebp - 0xbc], dx
add dword [ebp - 0xc0], 2
inc ebx
cmp ebx, dword [ebp - 0xcc]
jb 0x4d1390
mov edi, dword [ebp - 0xc4]
movzx eax, byte [ebp + edi - 0xb8]
mov cx, word [ebp - 0xbc]
dec edi
mov word [esi + eax*2 + 0x119b8], cx
mov dword [ebp - 0xc4], edi
jns 0x4d135f
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop ebx
call fcn.004bc40c
mov esp, ebp
pop ebp
ret