Function at 0x42daf0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
and esp, 0xfffffff8
sub esp, 0x50
mov dword [esp + 0x38], 0xbcacdcc
mov dword [esp + 0x3c], 0
mov byte [esp + 0x40], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 8
ja 0x42db6e
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 8]
mov ecx, dword [esp + 8]
movzx ecx, byte [esp + ecx + 0x38]
mov edx, 0x5d
sub edx, eax
add eax, 0xa5c1d1a2
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 0x18], edx
mov eax, dword [esp + 0x18]
add al, 0x92
mov ecx, dword [esp + 8]
mov byte [esp + ecx + 0x38], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 9
jb 0x42db30
mov dword [esp + 0x18], 0xbcacdcc
mov dword [esp + 0x1c], 0
mov byte [esp + 0x20], 0
mov dword [esp + 0x28], 0
mov eax, dword [esp + 0x28]
cmp eax, 8
ja 0x42dbde
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x28]
movzx ecx, byte [esp + ecx + 0x18]
mov edx, 0x5d
sub edx, eax
add eax, 0xa5c1d1a2
xor edx, eax
and edx, ecx
xor edx, eax
mov dword [esp + 8], edx
mov eax, dword [esp + 8]
add al, 0x92
mov ecx, dword [esp + 0x28]
mov byte [esp + ecx + 0x18], al
inc dword [esp + 0x28]
mov eax, dword [esp + 0x28]
cmp eax, 9
jb 0x42dba0
mov eax, dword [esp + 0x18]
xor ecx, ecx
cpuid
mov dword [esp + 0x38], 0xd9e1e6dc
mov dword [esp + 0x3c], 0
mov dword [esp + 0x3f], 0
mov dword [esp + 8], 0
mov eax, dword [esp + 8]
cmp eax, 0xa
ja 0x42dc4e
nop
mov eax, dword [esp + 8]
mov edx, dword [esp + 8]
movzx edx, byte [esp + edx + 0x38]
mov esi, 0x86
sub esi, eax
add eax, 0x71fd6f79
xor esi, eax
and esi, edx
xor esi, eax
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x18]
add al, 0xb1
mov edx, dword [esp + 8]
mov byte [esp + edx + 0x38], al
inc dword [esp + 8]
mov eax, dword [esp + 8]
cmp eax, 0xb
jb 0x42dc10
cmp ecx, dword [esp + 0x38]
je 0x42ddaf
mov dword [esp + 0x18], 0x70067673
mov dword [esp + 0x1c], 0
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x42dcc9
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x18]
mov esi, 0x37
sub esi, eax
add eax, 0xf96dfdc8
xor esi, eax
and esi, edx
xor esi, eax
mov dword [esp + 4], esi
mov eax, dword [esp + 4]
add al, 0x88
mov edx, dword [esp]
mov byte [esp + edx + 0x18], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x42dc90
cmp ecx, dword [esp + 0x18]
je 0x42ddaf
mov dword [esp + 0x48], 0xaea4b4ca
mov dword [esp + 0x4c], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 7
ja 0x42dd39
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x48]
mov esi, 0xf3
sub esi, eax
add eax, 0x63f4dd0c
xor esi, eax
and esi, edx
xor esi, eax
mov dword [esp + 4], esi
mov eax, dword [esp + 4]
add al, 0xac
mov edx, dword [esp]
mov byte [esp + edx + 0x48], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 8
jb 0x42dd00
cmp ecx, dword [esp + 0x48]
je 0x42ddaf
mov dword [esp + 8], 0x7b6d4356
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xb
ja 0x42dda9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 8]
mov esi, 0x3f
sub esi, eax
add eax, 0x8afef0c0
xor esi, eax
and esi, edx
xor esi, eax
mov dword [esp + 4], esi
mov eax, dword [esp + 4]
add al, 0xc0
mov edx, dword [esp]
mov byte [esp + edx + 8], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0xc
jb 0x42dd70
cmp ecx, dword [esp + 8]
jne 0x42ddb8
mov al, 1
lea esp, [ebp - 8]
pop esi
pop ebx
pop ebp
ret
mov dword [esp + 0x28], 0xa89c8685
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 0xf
ja 0x42de29
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov edx, dword [esp]
movzx edx, byte [esp + edx + 0x28]
mov esi, 0x76
sub esi, eax
add eax, 0xb829a989
xor esi, eax
and esi, edx
xor esi, eax
mov dword [esp + 4], esi
mov eax, dword [esp + 4]
add al, 0x41
mov edx, dword [esp]
mov byte [esp + edx + 0x28], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 0x10
jb 0x42ddf0
cmp ecx, dword [esp + 0x28]
sete al
jmp 0x42ddb1