Function at 0x29ee542
Capabilities:
Encode data using xor

Disassembly:
salc
add al, byte [eax]
add byte [eax], al
sal edx, 0xcd
and edx, edx
sal eax, cl
push edx
movsx ecx, word [esp + 8]
mov dword [esi], eax
pop edx
pop edx
pop ecx
jmp edi
xor ecx, ecx
lea ebp, [ebp + ecx*4 + 4]
or edx, eax
movsx eax, cx
not edx
mov dword [ebp + ecx*4], edx
call fcn.036bbfb5
not al
ror ecx, 0xee
inc edx
neg al
sal word [esp + edx - 0x1e9565a3], 0x22
inc cl
xor bl, al
pop edx
call fcn.03573774
shr ebp, 1
mov ch, 0x8b
rol byte [eax + 0x507475cb], 1
jbe 0x20cd61e
out 0x75, al
jo 0x20cd550
xchg esp, eax
push es
jne 0x20cd565
sti
add cl, byte [edx + 0x621cb8b4]
les esi, [ebp + 0x64]
pop edx
adc al, 0x75
mov cl, 0xcb
out dx, eax
fidivr dword [eax]
mov cl, byte [ebx + 0x2c]
jmp 0x5376ad71
or ch, al
push 0xffffffffffffffa4
pushfd
imul edi, dword [esi], 7
mov al, byte [edx - 8]
push ds
invalid
cli
inc esi
cmp dword [esi + edx*4 + 0x817d385], 0xe
ja 0x20cd5ff
shr dword [ebp - 0x5429c2b9], cl
sbb byte [eax], ch
cmpsb byte [esi], byte es:[edi]
mov dh, 0x6e
call [eax + 0x1e]
add dword [si - 0x2e58], esi
mov al, 0xfd
mov bl, 1
invalid
xor edx, 0xde8a2089
xor ebx, edx
sal ecx, 0xaa
xadd dword [esp + eax - 0x178ed0f9], eax
add ebp, edx
jmp 0x294a4ca
mov dword [esp + ecx - 0x3fe0000], ebp
ret 8
xor ecx, 0x3408f02c
or dl, dl
xor dl, dh
dec ecx
xor ax, dx
sar edx, 0x1a
neg ecx
inc ecx
xadd al, dl
sar eax, 0xdf
and eax, 0x2bef82c
xor ebx, ecx
sub dx, ax
ror dl, 0x21
inc eax
add edi, ecx
push eax
mov dword [esp + eax - 0x2bef82d], edi
ret
add dword gs:[eax], eax
lea edi, [edi + ecx*2 - 0x525b0a0a]
xchg byte [esp + ecx*2 - 0x525b0a0e], dl
mov dword [esp + ecx - 0x292d8507], 0xa2a008b9
xor eax, ebx
dec edx
rol eax, 3
neg eax
call fcn.02005e4a
syscall
push edi
pushfd
dec eax
mov edi, 0xd311f6a2
pop es
jg 0x29b032c
mov dword [0x247c8b48], eax
or byte [eax - 0x39], cl
inc esp
and al, 8
je 0x29b036c
les edx, [ecx - 1]
je 0x29b03b9
add byte [ebp + 0x24648d48], bl
or al, ch
in al, 0xd8
retf
invalid
xor edx, ebx
xchg byte [esp + eax - 0x178efb0e], ah
ror edx, 1
inc edx
not cx
mov dword [esp + eax*4 - 0x5e3b444c], eax
sal cl, 0xe7
not edx
sets al
js 0x291b20f
mov ecx, 0x66b25f1f
mov edx, dword [ebp + ecx - 0x66b25f1f]
mov eax, dword [ebp + ecx - 0x66b25f1b]
sal cx, 0xea
jnp 0x3535766
jae 0x35d3780
inc dword [esp + 4]
bswap ecx
not edx
jle 0x375f6f2
xor ebx, ecx
shr dx, 0x85
sar dword [esp + edx - 0x3e6f03a1], 0xa5
call fcn.036d704d
mov edx, dword [ebp]
mov ecx, 0xb8349584
not ecx
mov eax, dword [ebp + ecx - 0x47cb6a77]
sub cl, cl
jle 0x20cd588
mov edx, dword [edi + ecx - 0x581ac715]
lea edi, [ecx + edi - 0x581ac711]
call fcn.0364d6e9
lea ebp, [ebp + ecx - 0x66b27bfc]
not ecx
not edx
inc ecx
or cx, cx
not eax
shr ecx, 0xc7
sbb cx, cx
xor cl, ch
or edx, eax
xor ecx, 0x281f8507
push ecx
mov dword [ebp + ecx*2 - 0x525b0a0e], edx
mov edx, 0x902c809f
lea edx, [ecx + ecx + 0x6c1d01a3]
mov eax, dword [edi + ecx*2 - 0x525b0a0e]
jne 0x29b0350
inc esp
mov edi, esi
dec eax
lea esi, [ecx*4 - 0x3eaec7d]
dec edi
lea ecx, [ecx + eax + 0x1273f590]
call int.037763a8
mov ecx, 0xea86ce10
sub ebp, 4
call fcn.029a9b10
mov edx, 0x829c6d09
fadd qword [esi]
mov eax, edx
sub ebp, 4
lea ecx, [eax + edx*2 + 0x5d81fd29]
shl cx, 6
mov ecx, dword [ebp]
xor ecx, ebx
jmp 0x2978c44