Function at 0x72fefc
Capabilities:
Encode data using xor

Disassembly:
push edi
push esi
push ebp
push ebx
sub esp, 0x48
mov ebx, eax
xor ebp, ebp
lea ecx, [edx - 4]
and edx, 3
xor esi, esi
test ecx, ecx
je 0x72fffa
lea edi, [esi + 4]
mov dword [esp + 4], edi
mov dword [esp + 0x10], edx
mov dword [esp + 8], ecx
add ebp, ebp
mov edx, esi
shr edx, 3
mov ecx, dword [esp + 4]
cmp esi, ecx
jbe 0x72ff44
mov edx, 0xa5a5a5a5
mov dword [esp + 0xc], edx
jmp 0x72ffd0
movzx edx, byte [edx + ebx]
xor eax, eax
mov ecx, esi
lea edi, [esi + 4]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], esi
mov ebp, ecx
lea esi, [esi]
lea edi, [edi]
mov esi, 1
mov ecx, ebp
and ecx, 7
xor ecx, 7
shl esi, cl
or eax, esi
movzx eax, al
inc ebp
cmp edi, ebp
ja 0x72ff64
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
xor ecx, ecx
test al, 1
je 0x72ff90
mov ecx, 1
test al, 2
je 0x72ff95
inc ecx
test al, 4
je 0x72ff9a
inc ecx
test al, 8
je 0x72ff9f
inc ecx
test al, 0x10
je 0x72ffa4
inc ecx
test al, 0x20
je 0x72ffa9
inc ecx
test al, 0x40
je 0x72ffae
inc ecx
test eax, 0x80
je 0x72ffb6
inc ecx
and edx, eax
movzx edx, dl
movzx ecx, cl
mov edi, esi
and edi, 7
add ecx, edi
neg ecx
add ecx, 8
shr edx, cl
mov dword [esp + 0xc], edx
xor ebp, dword [esp + 0xc]
test ebp, 0x4000
je 0x72ffe5
xor ebp, 1
and ebp, 0x3fff
inc dword [esp + 4]
inc esi
mov edx, dword [esp + 8]
cmp esi, edx
jb 0x72ff26
mov edx, dword [esp + 0x10]
test edx, edx
je 0x730246
add ebp, ebp
mov eax, esi
lea edi, [esi + 4]
mov ecx, esi
shr ecx, 3
mov dword [esp + 8], ecx
xor ecx, ecx
mov dword [esp + 0x40], ecx
mov ecx, edx
shr ecx, 3
mov dword [esp + 0xc], edx
test dl, 7
mov dword [esp + 4], ecx
lea ecx, [ecx + 1]
jne 0x730031
mov ecx, dword [esp + 4]
cmp edx, 0x20
ja 0x730228
cmp esi, edi
ja 0x73021d
add ebx, dword [esp + 8]
xor edi, edi
test ecx, ecx
jbe 0x730250
mov dword [esp + 0x38], ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], esi
mov ebp, edx
mov dword [esp + 0x10], edx
mov edx, eax
movzx eax, byte [ebx]
xor esi, esi
test ebp, ebp
mov dword [esp + 0x34], eax
mov eax, 0
jbe 0x730196
cmp ebp, 6
jb 0x730164
lea ecx, [ebp - 6]
mov dword [esp + 0x2c], ecx
lea ecx, [esi + edx]
mov dword [esp + 0x28], ecx
lea ecx, [edx + esi + 1]
mov dword [esp + 0x24], ecx
lea ecx, [edx + esi + 2]
mov dword [esp + 0x20], ecx
lea ecx, [edx + esi + 3]
mov dword [esp + 4], ecx
lea ecx, [edx + esi + 4]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x3c], edx
mov edx, dword [esp + 0x28]
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x24]
mov dword [esp + 8], edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0xc], ebp
mov ebx, ecx
mov ebp, dword [esp + 0x20]
nop
mov edi, 1
mov ecx, edx
and ecx, 7
xor ecx, 7
shl edi, cl
or eax, edi
mov edi, 1
mov ecx, esi
and ecx, 7
xor ecx, 7
add edx, 5
shl edi, cl
or eax, edi
mov edi, 1
mov ecx, ebp
and ecx, 7
xor ecx, 7
add esi, 5
shl edi, cl
or eax, edi
mov edi, 1
mov ecx, dword [esp + 4]
and ecx, 7
xor ecx, 7
shl edi, cl
or eax, edi
mov edi, 1
mov ecx, ebx
and ecx, 7
xor ecx, 7
add ebp, 5
shl edi, cl
or eax, edi
movzx eax, al
add dword [esp + 4], 5
add ebx, 5
mov ecx, dword [esp + 0x44]
add ecx, 5
mov edi, dword [esp + 0x2c]
cmp ecx, edi
mov dword [esp + 0x44], ecx
jbe 0x7300d4
mov edx, dword [esp + 0x3c]
mov esi, ecx
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0x1c]
mov ebp, dword [esp + 0xc]
add edx, esi
mov dword [esp + 8], edi
mov dword [esp + 0x1c], ebx
lea esi, [esi]
mov ebx, 1
mov ecx, edx
and ecx, 7
xor ecx, 7
shl ebx, cl
or eax, ebx
movzx eax, al
inc edx
inc esi
cmp esi, ebp
jb 0x730174
mov edi, dword [esp + 8]
mov ebx, dword [esp + 0x1c]
xor edx, edx
test al, 1
je 0x7301a1
mov edx, 1
test al, 2
je 0x7301a6
inc edx
test al, 4
je 0x7301ab
inc edx
test al, 8
je 0x7301b0
inc edx
test al, 0x10
je 0x7301b5
inc edx
test al, 0x20
je 0x7301ba
inc edx
test al, 0x40
je 0x7301bf
inc edx
test eax, 0x80
je 0x7301c7
inc edx
mov ecx, dword [esp + 0x34]
and ecx, eax
movzx esi, cl
mov ecx, dword [esp + 0x40]
shl ecx, 8
or ecx, esi
mov dword [esp + 0x40], ecx
movzx ecx, dl
sub ebp, ecx
xor edx, edx
inc ebx
inc edi
mov esi, dword [esp + 0x38]
cmp edi, esi
jb 0x730064
mov eax, edx
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x18]
mov edx, dword [esp + 0x10]
cmp edx, 8
ja 0x730207
mov eax, esi
and eax, 7
add ecx, eax
neg ecx
add ecx, 8
mov eax, dword [esp + 0x40]
shr eax, cl
mov dword [esp + 0x40], eax
jmp 0x730231
mov eax, 0xa5a5a5a5
mov dword [esp + 0x40], eax
jmp 0x730231
mov eax, 0xa5a5a5a5
mov dword [esp + 0x40], eax
xor ebp, dword [esp + 0x40]
test ebp, 0x4000
je 0x730246
xor ebp, 1
and ebp, 0x3fff
mov eax, ebp
add esp, 0x48
pop ebx
pop ebp
pop esi
pop edi
ret
xor ecx, ecx
jmp 0x730200