Function at 0x42aaf0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
mov eax, dword [ebp + 8]
movzx eax, ax
inc eax
mov dword [ebp - 0x14], edx
push ebx
shr eax, 1
movzx edx, ax
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], edx
push esi
push edi
cmp cl, 0x14
ja 0x42adad
movzx esi, cl
shl esi, 4
mov dword [ebp - 0x28], esi
mov eax, dword [esi + 0x541d30]
test eax, eax
je 0x42adad
cmp word [esi + 0x541d3c], 0
jge 0x42adad
movzx ecx, word [esi + 0x541d32]
xor edi, edi
mov ebx, dword [esi + 0x541d38]
movzx eax, ax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0xc], ecx
test dx, dx
je 0x42ad86
lea eax, [edx + edx]
movzx esi, ax
movzx eax, cx
mov ecx, 0x1000
sub ecx, eax
mov dword [ebp - 0x10], esi
movzx eax, si
cmp eax, ecx
jbe 0x42acf5
mov cx, word [0x541d28]
mov eax, 0x1000
sub eax, dword [ebp - 0xc]
movzx esi, ax
mov dword [ebp - 0x10], esi
cmp cx, word [0x541e90]
jae 0x42aba4
xor edi, edi
jmp 0x42acdf
mov ax, word [0xd50ac8]
test ax, ax
je 0x42abbd
mov edx, 0xffff
add ax, dx
mov word [0xd50ac8], ax
movzx edi, cx
mov dword [ebp - 0x24], edi
lea eax, [edi - 1]
movzx eax, ax
mov ecx, eax
mov word [0x541d28], ax
cmp cx, word [0x541e90]
jb 0x42ac9e
mov esi, ecx
mov ecx, 0x600
cmp si, cx
jb 0x42ac07
push 0xb5
push str.....yoctolib_v1.0Privateyfs.c
push str.ASSERT_FAILED:_s:_d_n
call fcn.0041cc00
mov ax, word [0x541d28]
add esp, 0xc
mov dx, word [0x500b94]
movzx ecx, si
test dx, dx
je 0x42ac2c
add si, dx
mov edx, 0x600
movzx ecx, si
cmp cx, dx
jb 0x42ac2c
add ecx, 0xfa00
add ecx, 0x200
movzx esi, cx
shl esi, 0xc
cmp word [0x500bb8], 0
je 0x42ac65
call fcn.00408c40
sub ax, word [0x500bb8]
mov dword [ebp - 0x30], edx
cmp ax, 5
jbe 0x42ac5f
xor eax, eax
mov word [0x500bb8], ax
mov ax, word [0x541d28]
movq xmm0, qword [esi + 0x546b20]
movq qword [ebp - 0x34], xmm0
cmp dword [ebp - 0x34], 0xffffffff
jne 0x42ac7e
cmp dword [ebp - 0x30], 0xffffffff
je 0x42ac9e
mov ecx, 0xffff
add ax, cx
mov word [0x541d28], ax
movzx esi, ax
cmp ax, word [0x541e90]
jae 0x42abe0
jmp 0x42aca7
cmp ax, word [0x541e90]
jae 0x42acb5
xor eax, eax
mov word [0x541d28], ax
mov word [0xd50ac8], ax
cmp word [ebp - 0x24], 0
mov word [ebp - 8], di
je 0x42acdc
mov ecx, dword [ebp - 0x18]
lea eax, [ebp - 8]
push 1
push eax
xor edx, edx
call fcn.004294b0
mov di, word [ebp - 8]
add esp, 8
mov esi, dword [ebp - 0x10]
jmp 0x42acf5
mov esi, dword [ebp - 0x10]
mov ecx, str.write_failed__out_of_space__n
call fcn.00436650
mov ax, si
shr ax, 1
movzx eax, ax
mov dword [ebp - 0x1c], eax
test si, si
je 0x42ad5a
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x18]
shr si, 1
push esi
push dword [ebp - 0x14]
call fcn.004294b0
mov eax, dword [ebp - 0x1c]
add esp, 8
sub eax, esi
mov esi, dword [ebp - 0x10]
add dword [ebp - 0xc], esi
mov dword [ebp - 0x1c], eax
test ax, ax
jne 0x42ad2a
mov eax, dword [ebp + 8]
and eax, 1
sub esi, eax
xor eax, eax
cmp ax, si
jae 0x42ad51
mov ecx, dword [ebp - 0x14]
movzx edx, si
movzx eax, byte [ecx]
lea ecx, [ecx + 1]
xor eax, ebx
shr ebx, 8
movzx eax, al
xor ebx, dword [eax*4 + 0x541920]
sub edx, 1
jne 0x42ad37
movzx eax, si
add dword [ebp - 0x14], eax
add dword [ebp - 0x20], esi
test di, di
je 0x42ad71
movzx eax, di
mov ecx, 2
mov dword [ebp - 0x18], eax
xor edi, edi
mov dword [ebp - 0xc], ecx
jmp 0x42ad77
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
test dx, dx
jne 0x42ab61
mov esi, dword [ebp - 0x28]
mov word [esi + 0x541d30], ax
mov eax, dword [ebp - 0x20]
mov word [esi + 0x541d32], cx
movzx ecx, ax
add dword [esi + 0x541d34], ecx
mov dword [esi + 0x541d38], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret