Function at 0x4e5190
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xfd4
mov eax, dword [0x5be9a0]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
mov ebx, dword [eax]
mov dword [ebp - 0xfd4], eax
mov eax, dword [ebp + 8]
push esi
add eax, 0x1f
push edi
mov edi, edx
shr eax, 5
xor edx, edx
mov dword [ebp - 0xfb4], ecx
mov dword [ebp - 0xfcc], edi
mov dword [ebp - 0xfc8], ebx
mov dword [ebp - 0xfc4], eax
test ebx, ebx
je 0x4e5202
add ecx, 4
lea ecx, [ecx]
xor eax, eax
cmp dword [ecx], eax
jbe 0x4e51f4
mov esi, dword [ecx - 4]
mov esi, dword [esi + eax*4]
inc eax
mov dword [edi + esi*8], edx
cmp eax, dword [ecx]
jb 0x4e51e6
inc edx
add ecx, 0x10
cmp edx, ebx
jb 0x4e51e0
mov ecx, dword [ebp - 0xfb4]
mov dword [ebp - 0xfb0], 0
test ebx, ebx
je 0x4e54dc
mov eax, ecx
mov dword [ebp - 0xfbc], ecx
lea esp, [esp]
mov ecx, dword [eax]
test ecx, ecx
je 0x4e54b8
xor edx, edx
cmp dword [eax + 4], edx
jbe 0x4e54b8
mov esi, dword [ecx]
cmp dword [edi + esi*8 + 4], 2
lea esi, [edi + esi*8]
je 0x4e524f
inc edx
add ecx, 4
cmp edx, dword [eax + 4]
jb 0x4e5235
jmp 0x4e54b8
mov esi, dword [esi]
mov dword [ebp - 0xfd0], esi
cmp esi, 0xffffffff
je 0x4e54b8
cmp esi, dword [ebp - 0xfb0]
je 0x4e54b8
mov ebx, esi
shl ebx, 4
add ebx, dword [ebp - 0xfb4]
cmp dword [ebx], 0
je 0x4e54b2
mov edx, dword [ebx + 4]
mov ecx, dword [eax + 4]
add ecx, edx
cmp ecx, 0x3e8
jae 0x4e54b2
xor ecx, ecx
test edx, edx
je 0x4e52b3
lea ebx, [ebx]
mov edx, dword [ebx]
mov edx, dword [edx + ecx*4]
dec dword [edi + edx*8 + 4]
lea edx, [edi + edx*8 + 4]
inc ecx
cmp ecx, dword [ebx + 4]
jb 0x4e52a0
xor ecx, ecx
cmp dword [eax + 4], ecx
jbe 0x4e52d3
lea ebx, [ebx]
mov edx, dword [eax]
mov edx, dword [edx + ecx*4]
dec dword [edi + edx*8 + 4]
lea edx, [edi + edx*8 + 4]
inc ecx
cmp ecx, dword [eax + 4]
jb 0x4e52c0
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov esi, dword [ebx + 4]
mov dword [ebp - 0xfac], ecx
mov dword [ebp - 0xfb8], edx
xor eax, eax
xor edx, edx
xor ecx, ecx
mov dword [ebp - 0xfa8], eax
test esi, esi
je 0x4e5368
cmp edx, dword [ebp - 0xfac]
jae 0x4e5331
mov esi, dword [ebx]
mov edi, dword [ebp - 0xfb8]
mov esi, dword [esi + ecx*4]
mov edi, dword [edi + edx*4]
cmp esi, edi
jae 0x4e531c
mov dword [ebp + eax*4 - 0xfa4], esi
inc eax
inc ecx
jmp 0x4e532a
jbe 0x4e5328
mov dword [ebp + eax*4 - 0xfa4], edi
inc eax
jmp 0x4e5329
inc ecx
inc edx
cmp ecx, dword [ebx + 4]
jb 0x4e52f7
jmp 0x4e5362
mov edi, dword [ebx + 4]
mov dword [ebp - 0xfa8], eax
cmp ecx, edi
jae 0x4e5368
mov esi, dword [ebx]
sub edi, ecx
lea esi, [esi + ecx*4]
mov dword [ebp - 0xfc0], edi
mov ecx, edi
lea edi, [ebp + eax*4 - 0xfa4]
add eax, dword [ebp - 0xfc0]
mov dword [ebp - 0xfa8], esi
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xfa8], eax
cmp edx, dword [ebp - 0xfac]
jae 0x4e539c
mov ecx, dword [ebp - 0xfb8]
lea esi, [ecx + edx*4]
mov ecx, dword [ebp - 0xfac]
sub ecx, edx
mov dword [ebp - 0xfc0], ecx
lea edi, [ebp + eax*4 - 0xfa4]
add eax, dword [ebp - 0xfc0]
rep movsd dword es:[edi], dword [esi]
mov dword [ebp - 0xfa8], eax
mov esi, dword [ebp - 0xfc4]
test esi, esi
je 0x4e53d6
mov ecx, dword [ebx + 4]
mov edx, dword [ebx]
mov edi, dword [ebp - 0xfac]
lea edx, [edx + ecx*4]
mov ecx, dword [ebp - 0xfb8]
lea eax, [ebp + eax*4 - 0xfa4]
lea ecx, [ecx + edi*4]
mov edi, dword [edx]
xor edi, dword [ecx]
add ecx, 4
mov dword [eax], edi
add edx, 4
add eax, 4
dec esi
jne 0x4e53c4
mov eax, dword [ebx]
push eax
call fcn.004b7229
mov edx, dword [ebp - 0xfc4]
mov edi, dword [ebp - 0xfa8]
lea esi, [edi + edx]
add esi, esi
add esi, esi
push esi
call fcn.004b7263
add esp, 8
push esi
test eax, eax
je 0x4e5524
lea ecx, [ebp - 0xfa4]
push ecx
push eax
mov dword [ebx], eax
call fcn.004bd390
mov esi, dword [ebp - 0xfbc]
mov eax, dword [ebx + 0xc]
mov dword [ebx + 4], edi
mov edi, dword [esi + 8]
add edi, dword [ebx + 8]
add edi, edi
add edi, edi
push edi
push eax
call fcn.004b95e6
add esp, 0x14
test eax, eax
je 0x4e5538
mov dword [ebx + 0xc], eax
mov edx, dword [esi + 8]
mov ecx, dword [esi + 0xc]
add edx, edx
add edx, edx
push edx
mov edx, dword [ebx + 8]
push ecx
lea eax, [eax + edx*4]
push eax
call fcn.004bd390
mov ecx, dword [esi + 8]
add dword [ebx + 8], ecx
xor ecx, ecx
add esp, 0xc
cmp dword [ebx + 4], ecx
jbe 0x4e5485
mov edx, dword [ebx]
mov eax, dword [edx + ecx*4]
mov edx, dword [ebp - 0xfcc]
inc dword [edx + eax*8 + 4]
lea eax, [edx + eax*8]
mov edx, dword [ebp - 0xfd0]
inc ecx
mov dword [eax], edx
cmp ecx, dword [ebx + 4]
jb 0x4e5465
mov eax, dword [esi]
push eax
call fcn.004b7229
mov ecx, dword [esi + 0xc]
push ecx
mov dword [esi], 0
call fcn.004b7229
mov edi, dword [ebp - 0xfcc]
mov eax, dword [ebp - 0xfbc]
add esp, 8
mov dword [esi + 0xc], 0
mov ebx, dword [ebp - 0xfc8]
mov ecx, dword [ebp - 0xfb0]
inc ecx
add eax, 0x10
mov dword [ebp - 0xfb0], ecx
mov dword [ebp - 0xfbc], eax
cmp ecx, ebx
jb 0x4e5220
mov ecx, dword [ebp - 0xfb4]
xor edx, edx
test ebx, ebx
je 0x4e550b
mov eax, ecx
mov esi, ebx
cmp dword [eax], 0
je 0x4e5505
mov edi, dword [eax]
mov dword [ecx], edi
mov edi, dword [eax + 4]
mov dword [ecx + 4], edi
mov edi, dword [eax + 8]
mov dword [ecx + 8], edi
mov edi, dword [eax + 0xc]
mov dword [ecx + 0xc], edi
inc edx
add ecx, 0x10
add eax, 0x10
dec esi
jne 0x4e54e6
mov ecx, dword [ebp - 4]
mov eax, dword [ebp - 0xfd4]
pop edi
pop esi
xor ecx, ebp
mov dword [eax], edx
pop ebx
call fcn.004bc40c
mov esp, ebp
pop ebp
ret
push 0x5c13a4
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
push edi
push 0x5c13e0
call fcn.004b7f6d
add esp, 8
push 0xffffffffffffffff
call fcn.004b856d
int3