Function at 0x4f4080
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xf8
mov eax, dword [ebp + 8]
push ebx
mov ebx, dword [ebp + 0x20]
push esi
xor esi, esi
push edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x7c], esi
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], esi
mov dword [ebp - 0x68], esi
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x60], esi
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x40], esi
mov edx, edi
lea esp, [esp]
mov ecx, dword [eax]
inc dword [ebp + ecx*4 - 0x7c]
lea ecx, [ebp + ecx*4 - 0x7c]
add eax, 4
dec edx
jne 0x4f40d0
cmp dword [ebp - 0x7c], edi
jne 0x4f40f5
mov eax, dword [ebp + 0x1c]
mov dword [eax], esi
mov dword [ebx], esi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [ebx]
mov dword [ebp - 4], edi
mov ecx, 1
nop
cmp dword [ebp + ecx*4 - 0x7c], esi
jne 0x4f410c
inc ecx
cmp ecx, 0xf
jbe 0x4f4100
mov edx, ecx
mov dword [ebp - 8], edx
cmp edi, ecx
jae 0x4f411a
mov dword [ebp - 4], ecx
mov edi, ecx
mov eax, 0xf
nop
cmp dword [ebp + eax*4 - 0x7c], esi
jne 0x4f4129
dec eax
jne 0x4f4120
mov dword [ebp - 0x1c], eax
cmp edi, eax
jbe 0x4f4135
mov dword [ebp - 4], eax
mov edi, eax
mov dword [ebx], edi
mov ebx, 1
shl ebx, cl
cmp ecx, eax
jae 0x4f4153
sub ebx, dword [ebp + ecx*4 - 0x7c]
js 0x4f4225
inc ecx
add ebx, ebx
cmp ecx, eax
jb 0x4f4142
lea ecx, [eax*4]
mov dword [ebp - 0x14], ecx
mov ecx, dword [ebp + ecx - 0x7c]
sub ebx, ecx
mov dword [ebp - 0x3c], ebx
js 0x4f4225
add ecx, ebx
mov ebx, dword [ebp - 0x14]
mov dword [ebp + ebx - 0x7c], ecx
xor ecx, ecx
dec eax
mov dword [ebp - 0xb8], esi
je 0x4f4193
xor ebx, ebx
add ecx, dword [ebp + ebx - 0x78]
add ebx, 4
dec eax
mov dword [ebp + ebx - 0xb8], ecx
jne 0x4f4182
mov ebx, dword [ebp + 8]
xor ecx, ecx
mov eax, dword [ebx]
add ebx, 4
mov dword [ebp + 8], ebx
cmp eax, esi
je 0x4f41bf
mov ebx, dword [ebp + 0x2c]
lea eax, [ebp + eax*4 - 0xbc]
mov dword [ebp - 0x10], eax
mov eax, dword [eax]
mov dword [ebx + eax*4], ecx
mov ebx, dword [ebp - 0x10]
inc eax
mov dword [ebx], eax
mov ebx, dword [ebp + 8]
inc ecx
cmp ecx, dword [ebp + 0xc]
jb 0x4f4198
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp + ecx - 0xbc]
mov ecx, dword [ebp + 0x2c]
mov ebx, edi
neg ebx
mov dword [ebp + 0xc], eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0xbc], esi
mov dword [ebp + 8], ecx
mov dword [ebp - 0xc], 0xffffffff
mov dword [ebp - 0xf8], esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x2c], esi
cmp edx, dword [ebp - 0x1c]
jg 0x4f4444
mov esi, dword [ebp - 0x24]
lea eax, [ebp + edx*4 - 0x7c]
mov dword [ebp - 0x18], eax
jmp 0x4f4210
mov ecx, dword [ebp - 0x18]
mov eax, dword [ecx]
test eax, eax
je 0x4f4431
lea ecx, [eax + 1]
mov dword [ebp - 0x34], ecx
jmp 0x4f4234
pop edi
pop esi
mov eax, 0xfffffffd
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x14]
dec dword [ebp - 0x34]
dec eax
mov dword [ebp - 0x14], eax
lea eax, [ebx + edi]
cmp edx, eax
jle 0x4f4335
sub ebx, edi
mov dword [ebp - 0x30], ebx
jmp 0x4f4253
mov edi, dword [ebp - 4]
mov edx, dword [ebp - 0x1c]
inc dword [ebp - 0xc]
add dword [ebp - 0x30], edi
mov ebx, eax
mov eax, dword [ebp - 4]
sub edx, ebx
cmp edx, eax
jbe 0x4f4269
mov edx, eax
mov ecx, dword [ebp - 8]
sub ecx, ebx
mov eax, 1
shl eax, cl
cmp eax, dword [ebp - 0x34]
jbe 0x4f42a8
or edi, 0xffffffff
sub edi, dword [ebp - 0x14]
add eax, edi
mov edi, dword [ebp - 0x18]
cmp ecx, edx
jae 0x4f42a8
inc ecx
cmp ecx, edx
jae 0x4f42a8
jmp 0x4f4293
mov edi, dword [ebp - 0x10]
add edi, 4
mov dword [ebp - 0x10], edi
mov edi, dword [edi]
add eax, eax
cmp eax, edi
jbe 0x4f42a8
inc ecx
sub eax, edi
cmp ecx, edx
jb 0x4f4290
mov eax, dword [ebp + 0x28]
mov eax, dword [eax]
mov edx, 1
shl edx, cl
mov dword [ebp - 0x2c], edx
add edx, eax
cmp edx, 0x5a0
ja 0x4f4463
mov edi, dword [ebp + 0x24]
lea edi, [edi + eax*8]
mov eax, dword [ebp - 0xc]
lea eax, [ebp + eax*4 - 0xf8]
mov dword [ebp - 0x38], eax
mov dword [eax], edi
mov eax, dword [ebp + 0x28]
mov dword [eax], edx
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x10], edi
test eax, eax
je 0x4f431e
mov esi, dword [ebp - 0x20]
mov dl, byte [ebp - 4]
mov dword [ebp + eax*4 - 0xbc], esi
mov byte [ebp - 0x28], cl
mov ecx, dword [ebp - 0x30]
mov eax, esi
shr eax, cl
mov ecx, dword [ebp - 0x38]
mov ecx, dword [ecx - 4]
mov esi, edi
sub esi, ecx
mov byte [ebp - 0x27], dl
mov edx, dword [ebp - 0x28]
sar esi, 3
sub esi, eax
mov dword [ecx + eax*8], edx
mov dword [ecx + eax*8 + 4], esi
jmp 0x4f4323
mov eax, dword [ebp + 0x1c]
mov dword [eax], edi
mov ecx, dword [ebp - 4]
lea eax, [ebx + ecx]
cmp dword [ebp - 8], eax
jg 0x4f4250
mov edx, dword [ebp - 8]
mov ecx, dword [ebp + 0x2c]
mov al, dl
sub al, bl
mov byte [ebp - 0x27], al
mov eax, dword [ebp + 0xc]
lea ecx, [ecx + eax*4]
mov eax, dword [ebp + 8]
cmp eax, ecx
jb 0x4f4352
mov byte [ebp - 0x28], 0xc0
jmp 0x4f438b
mov eax, dword [eax]
mov ecx, dword [ebp + 0x10]
cmp eax, ecx
jae 0x4f436f
cmp eax, 0x100
sbb cl, cl
and cl, 0xa0
add cl, 0x60
mov byte [ebp - 0x28], cl
mov esi, eax
jmp 0x4f4387
sub eax, ecx
mov ecx, dword [ebp + 0x18]
add eax, eax
add eax, eax
mov cl, byte [eax + ecx]
add cl, 0x50
mov byte [ebp - 0x28], cl
mov ecx, dword [ebp + 0x14]
mov esi, dword [eax + ecx]
add dword [ebp + 8], 4
mov edi, dword [ebp - 0x20]
mov ecx, edx
sub ecx, ebx
mov edx, 1
shl edx, cl
mov eax, edi
mov ecx, ebx
shr eax, cl
cmp eax, dword [ebp - 0x2c]
jae 0x4f43cb
mov ecx, dword [ebp - 0x10]
lea ecx, [ecx + eax*8]
lea ebx, [ebx]
mov edi, dword [ebp - 0x28]
mov dword [ecx], edi
lea edi, [edx*8]
mov dword [ecx + 4], esi
add eax, edx
add ecx, edi
cmp eax, dword [ebp - 0x2c]
jb 0x4f43b0
mov edi, dword [ebp - 0x20]
mov ecx, dword [ebp - 8]
dec ecx
mov eax, 1
shl eax, cl
test edi, eax
je 0x4f43e8
lea ebx, [ebx]
xor edi, eax
shr eax, 1
test edi, eax
jne 0x4f43e0
mov edx, 1
mov ecx, ebx
shl edx, cl
xor edi, eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x20], edi
dec edx
and edx, edi
cmp edx, dword [ebp + eax*4 - 0xbc]
je 0x4f4421
sub ebx, dword [ebp - 4]
mov edx, 1
mov ecx, ebx
shl edx, cl
dec eax
dec edx
and edx, edi
cmp edx, dword [ebp + eax*4 - 0xbc]
jne 0x4f4405
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0x14], 0
mov edi, dword [ebp - 4]
mov edx, dword [ebp - 8]
jne 0x4f4231
add dword [ebp - 0x18], 4
inc edx
mov dword [ebp - 8], edx
cmp edx, dword [ebp - 0x1c]
jle 0x4f4210
xor esi, esi
cmp dword [ebp - 0x3c], esi
je 0x4f40ec
cmp dword [ebp - 0x1c], 1
je 0x4f40ec
pop edi
pop esi
mov eax, 0xfffffffb
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
mov eax, 0xfffffffc
pop ebx
mov esp, ebp
pop ebp
ret