Function at 0x42de90
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xf4
mov dword [esp + 8], 0x49f54b17
mov dword [esp + 0xc], 0x45d647d8
mov dword [esp + 0x10], 0x41dd43f8
mov dword [esp + 0x14], 0xbd21bfcc
mov dword [esp + 0x18], 0xb9babbe7
lea eax, [esp + 8]
xor ecx, ecx
xor edx, edx
nop
nop
nop
nop
nop
nop
movzx esi, byte [eax]
mov edi, ecx
and edi, 0x7cebbd1a
mov ebp, edx
xor ebp, 0x418a2172
sub ebp, edi
lea ebx, [ebp + 1]
and ebx, esi
add ebx, ebx
add esi, ebp
inc esi
mov edi, ebx
xor edi, esi
not ebx
and ebx, esi
add ebx, ebx
sub ebx, edi
mov esi, ebx
not esi
and esi, 0x1c
and ebx, 0xe3
sub ebx, esi
add bl, 0xdd
mov byte [eax], bl
inc eax
dec edx
add ecx, 0xfffffffe
cmp edx, 0xffffffec
jne 0x42ded0
lea esi, [esp + 0xae]
lea eax, [esp + 8]
mov edi, esi
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xc2]
lea eax, [esp + 0x1c]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x68]
push edi
push 0
push 0
push 9
push esi
push 0
call dword [0x45143c]
mov ebx, dword [esp + 0x68]
test ebx, ebx
jns 0x42df64
mov eax, 0xffffffff
jmp 0x42df67
lea eax, [ebx + ebx]
push eax
call fcn.0040cdd0
add esp, 4
push edi
push ebx
mov dword [esp + 0x48], eax
push eax
push 9
push esi
push 0
call dword [0x45143c]
mov dword [esp + 8], 0x812d87c8
mov dword [esp + 0xc], 0x8d2f833d
mov dword [esp + 0x10], 0x893c8f3d
mov dword [esp + 0x14], 0x958a8b24
lea ebx, [esp + 0x18]
mov dword [esp + 0x18], 0
mov eax, 0xbf2cf3bf
mov ecx, 0x7e59e77e
nop
nop
nop
nop
nop
nop
nop
nop
mov esi, ecx
and esi, 0x42
mov edx, eax
xor edx, 0x21
add edx, esi
add dl, 0x41
xor dl, byte [esp + eax + 0x40d30c49]
add dl, 0x5b
mov byte [esp + eax + 0x40d30c49], dl
inc eax
add ecx, 2
cmp eax, 0xbf2cf3d3
jne 0x42dfc0
lea ebp, [esp + 0x9e]
lea eax, [esp + 8]
mov edi, ebp
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xae]
xor edx, edx
mov eax, ebx
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esp + 8], 0x832b81c4
mov dword [esp + 0xc], 0x87258537
mov dword [esp + 0x10], 0x8b388927
mov dword [esp + 0x14], 0x8fcd8d28
mov dword [esp + 0x18], 0x933c9131
mov dword [esp + 0x1c], 0x97249535
mov dword [esp + 0x20], 0x9b9a9921
lea ebx, [esp + 0x24]
mov dword [esp + 0x24], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, edx
add al, 0xa0
xor al, byte [esp + edx + 8]
add al, 0xe0
mov byte [esp + edx + 8], al
inc edx
cmp edx, 0x20
jne 0x42e060
lea edx, [esp + 0xd8]
lea eax, [esp + 8]
mov edi, edx
mov ecx, 7
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xf4]
xor esi, esi
xor ecx, ecx
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 8], 0x23bb21e4
mov dword [esp + 0xc], 0x27c525b7
mov dword [esp + 0x10], 0xdb48d947
mov dword [esp + 0x14], 0xdf2edd38
mov dword [esp + 0x18], 0xd310d124
lea ebx, [esp + 0x1c]
mov word [esp + 0x1c], 0xd5d4
mov dword [esp + 0x1e], 0
mov ecx, 0xffffffff
nop
nop
nop
nop
mov edi, ecx
or edi, 0xf8
mov eax, esi
or eax, 0xf8
add eax, edi
add eax, esi
inc al
xor al, byte [esp + esi + 8]
add al, 0x28
mov byte [esp + esi + 8], al
inc esi
dec ecx
cmp esi, 0x1a
jne case.default.0x42e165
lea esi, [esp + 0xc2]
lea eax, [esp + 8]
mov edi, esi
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xd6]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
mov dword [esp + 0x90], ebp
mov dword [esp + 0x94], edx
mov dword [esp + 0x98], esi
mov esi, dword [esp + 0x40]
mov eax, esi
add eax, 2
mov dword [esp + 0x70], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x58], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x44da20]
loope 0x44da65
add cl, cl
loope 0x44da69
add byte [edx - 0x1f], dh
inc edx
add byte [edi + 0x600042e1], bl
jecxz 0x44da75
add byte [eax + 0x220042e3], dl
in al, 0x42
add byte [ebx + 0x10042], dh
add byte [eax], al
add dword [eax], eax
add byte [eax], al
aam 0xed
inc edx
add byte [ecx], al
add byte [eax], al
add byte [ebx], dl
in al, 0x42
add bl, ch
jecxz 0x44da99
add byte [ebx], dl
in al, 0x42
add byte [edi - 0x6fffbd19], ah
jmp 0x44daa5
jmp 0xe7f5daac
out 0x42, eax
add byte [eax - 0x40ffbd15], dl
out 0x42, eax
add bl, cl
out 0x42, eax
add bl, dh
call 0xe956dac0
inc edx
add byte [eax], dl
jmp 0xe954dac8
out 0x42, eax
add byte [ecx], al
add byte [eax], al
add byte [ecx], dh
jmp 0xe981dae8
jmp 0xe45ddaec