Function at 0x4d9dc0
Capabilities:
Encode data using xor

Disassembly:
mov eax, dword [0x8ccc48]
sub esp, 0x34
push ebx
xor ebx, ebx
cmp eax, ebx
push esi
push edi
je 0x4d9dfe
mov ecx, dword [0x8ec038]
xor edi, edi
call fcn.004bc830
mov ecx, dword [0x8ca494]
mov edi, dword [0x8ccc4c]
mov edx, ecx
sub edx, edi
cmp edx, eax
jl 0x4d9dfe
mov dword [0x8ccc48], ebx
mov dword [0x8ccc4c], ecx
mov edi, dword [0x8ccc50]
lea ecx, [edi + 0x190]
mov eax, 0x51eb851f
imul ecx
mov ecx, dword [0x7283c0]
mov eax, dword [0x8ccc54]
imul ecx, ecx, 0x320
push ebp
push ebx
sar edx, 8
push 0xfa
mov esi, edx
push 0xa
push eax
shr esi, 0x1f
mov eax, edi
add esi, edx
call fcn.004893a0
push ebx
add edi, eax
push ebx
mov dword [0x8ccc54], eax
push ebx
lea eax, [esp + 0x3c]
mov dword [0x8ccc50], edi
call fcn.004dc670
add esp, 0x1c
push ebx
push 0xffffffffffffffff
push 0x32
mov ecx, eax
push ecx
mov ecx, dword [0x8ec040]
push ebx
push 0x3e8
push 0xffffffffffffff9c
call fcn.004bc350
mov eax, dword [0x8ccc54]
cmp eax, 0xffffffce
jl 0x4d9f29
cmp eax, 0x32
setle al
test al, al
je 0x4d9f29
mov edx, dword [0x8ca494]
imul esi, esi, 0x320
mov ebp, dword [0x8ccc4c]
mov eax, dword [0x8ccc48]
mov ecx, dword [0x8ec038]
sub edx, ebp
push edx
push eax
push ebx
push ebx
push ebx
push ebx
push 0x3e8
add esi, 0xffffff83
push esi
push ecx
mov edx, 0x32
call fcn.004bc2e0
mov edx, dword [0x8ca494]
mov ebp, dword [0x8ccc4c]
mov eax, dword [0x8ccc48]
mov ecx, dword [0x8ec034]
sub edx, ebp
push edx
push eax
push ebx
push ebx
push ebx
push ebx
push 0x3e8
push esi
push ecx
mov edx, 0x32
call fcn.004bc2e0
mov edx, dword [0x8ca494]
mov ebp, dword [0x8ccc4c]
mov eax, dword [0x8ccc48]
mov ecx, dword [0x8ec03c]
sub edx, ebp
push edx
push eax
push ebx
push ebx
push ebx
push ebx
push 0x3e8
push esi
push ecx
mov edx, 0x32
call fcn.004bc2e0
mov ecx, 0x8ec014
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], ebx
mov ebp, 0x8162f8
mov dword [esp + 0x14], ecx
nop
mov eax, dword [0x8ccc50]
sub eax, ebx
cmp eax, 0xfffff37f
jl 0x4da068
cmp eax, 0x321
setle al
test al, al
je 0x4da068
cmp dword [ecx], 0
je 0x4da068
mov ecx, dword [0x8ca494]
mov edx, dword [esp + 0x10]
shr ecx, 4
add ecx, edx
imul ecx, ecx, 0xb60b60
mov eax, 0x2222222
call fcn.004dcac0
movsx edx, word [ebp]
imul edx, edx, 0x44
mov esi, dword [edx + 0x725b08]
cmp esi, 5
mov dword [esp + 0x18], eax
jge 0x4d9fa5
mov esi, 5
movsx ecx, word [ebp]
fild dword [esp + 0x18]
mov eax, 0x38e38e39
imul ecx
imul ecx, ecx, 0x44
fmul qword [0x715728]
mov ecx, dword [ecx + 0x725b08]
sar edx, 1
mov eax, edx
shr eax, 0x1f
lea edx, [edx + eax + 4]
lea edi, [edx + edx*4]
mov eax, 0x2aaaaaab
imul dword [esp + 0x18]
sub ecx, 8
lea ebx, [ebx + ecx*2]
add ebx, ecx
mov ecx, edx
shr ecx, 0x1f
sub esp, 8
add ecx, edx
mov dword [esp + 0x20], ecx
fstp dword [esp + 4]
lea eax, [esp + 0x28]
shl edi, 2
fild dword [esp + 0x20]
fmul qword [0x715728]
fstp dword [esp]
push 0
call fcn.004dc670
imul esi, esi, 0xb4
add esp, 0xc
push 0
push 0xffffffffffffffff
push edi
mov edx, eax
mov eax, dword [esp + 0x20]
mov ecx, dword [eax]
push edx
push 0
add esi, 0x1f4
push esi
push ebx
call fcn.004bc350
mov ecx, dword [0x8ca494]
shr ecx, 1
push ecx
mov esi, eax
push 9
mov ecx, esi
call fcn.004bc4e0
mov eax, 0xaaaaaaab
mul dword [0x8ca494]
shr edx, 1
push edx
push 0xb
mov ecx, esi
call fcn.004bc4e0
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
add ecx, 4
add eax, 0x64
add ebx, 0x320
add ebp, 0x45c
cmp ecx, 0x8ec034
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], ebx
jl 0x4d9f40
mov esi, dword [0x8ccc50]
mov eax, 0x2bc
mov ecx, 0x3e38e38f
add esi, 0xffffff38
call fcn.004dcac0
mov ebx, eax
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x7d00
mov ecx, ebx
mov edi, 1
pop ebp
jle 0x4da0de
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
cdq
xor eax, edx
sub eax, edx
add edi, edi
cmp eax, 0x7d00
jg 0x4da0c7
mov edx, ecx
mov ecx, 0x15555555
call fcn.00495330
imul eax, edi
sub esi, eax
mov eax, ebx
mov ecx, 0x55555555
call fcn.004dcac0
mov edi, 0x226
sub edi, eax
mov ecx, 0xfffffd44
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x7d00
mov ebx, 1
jle 0x4da137
lea ebx, [ebx]
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
cdq
xor eax, edx
sub eax, edx
add ebx, ebx
cmp eax, 0x7d00
jg 0x4da120
push 0x2aaaaaaa
push 0
push 0xfe38e38f
mov edx, ecx
push 0x15555555
mov ecx, 0x1c71c70
call fcn.00495330
imul eax, ebx
add eax, 0x8c
push eax
push edi
push esi
call fcn.004ad540
add esp, 0x1c
pop edi
pop esi
pop ebx
add esp, 0x34
ret