Function at 0x42e2c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x20
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x42e508
mov edi, eax
mov eax, edx
mov edx, ecx
movzx ecx, byte [ecx]
mov byte [esp + 0x1b], cl
test eax, eax
je 0x42e2f0
and ecx, 0x80
mov dword [eax], ecx
cmp ebx, 1
je 0x42e558
movzx eax, byte [edx]
test al, al
jne 0x42e370
movzx eax, byte [esp + 0x1b]
xor al, byte [edx + 1]
jns 0x42e580
lea eax, [ebx - 1]
mov dword [esp + 0x1c], eax
test edi, edi
je 0x42e360
mov eax, dword [esp + 0x1c]
movzx ecx, byte [esp + 0x1b]
sub eax, 1
mov dword [esp + 0x14], eax
movsx eax, cl
sar cl, 7
mov esi, ecx
mov ecx, dword [esp + 0x1c]
shr eax, 0x1f
sub ebx, ecx
mov ecx, dword [esp + 0x14]
add ebx, edx
mov edx, esi
mov esi, eax
lea esi, [esi]
movzx eax, byte [ebx + ecx]
xor eax, edx
movzx eax, al
add eax, esi
mov byte [edi + ecx], al
shr eax, 8
mov esi, eax
sub ecx, 1
jae 0x42e348
mov eax, dword [esp + 0x1c]
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov dword [esp + 0x1c], ebx
cmp al, 0xff
jne 0x42e315
lea esi, [ebx - 1]
lea eax, [ebx - 2]
mov dword [esp + 0x1c], esi
cmp eax, 0xe
jbe 0x42e5bf
and esi, 0xfffffff0
pxor xmm3, xmm3
pxor xmm4, xmm4
mov eax, edx
lea ecx, [edx + esi]
pxor xmm2, xmm2
nop
movdqu xmm1, xmmword [eax + 1]
movdqu xmm0, xmmword [eax + 1]
add eax, 0x10
punpcklbw xmm1, xmm4
punpckhbw xmm0, xmm4
movdqa xmm5, xmm1
punpcklwd xmm1, xmm2
punpckhwd xmm5, xmm2
por xmm1, xmm5
movdqa xmm5, xmm0
punpcklwd xmm0, xmm2
punpckhwd xmm5, xmm2
por xmm0, xmm5
por xmm1, xmm0
por xmm3, xmm1
cmp eax, ecx
jne 0x42e3a0
movdqa xmm0, xmm3
lea ecx, [esi + 1]
psrldq xmm0, 8
por xmm3, xmm0
movdqa xmm0, xmm3
psrldq xmm0, 4
por xmm3, xmm0
movd eax, xmm3
cmp dword [esp + 0x1c], esi
je 0x42e4f0
movzx esi, byte [edx + ecx]
or eax, esi
lea esi, [ecx + 1]
cmp esi, ebx
jae 0x42e4f0
movzx esi, byte [edx + ecx + 1]
or eax, esi
lea esi, [ecx + 2]
cmp esi, ebx
jae 0x42e4f0
movzx esi, byte [edx + ecx + 2]
or eax, esi
lea esi, [ecx + 3]
cmp esi, ebx
jae 0x42e4f0
movzx esi, byte [edx + ecx + 3]
or eax, esi
lea esi, [ecx + 4]
cmp esi, ebx
jae 0x42e4f0
movzx esi, byte [edx + ecx + 4]
or eax, esi
lea esi, [ecx + 5]
cmp esi, ebx
jae 0x42e4f0
movzx esi, byte [edx + ecx + 5]
or eax, esi
lea esi, [ecx + 6]
cmp esi, ebx
jae 0x42e4f0
movzx esi, byte [edx + ecx + 6]
or eax, esi
lea esi, [ecx + 7]
cmp esi, ebx
jae 0x42e4f0
movzx esi, byte [edx + ecx + 7]
or eax, esi
lea esi, [ecx + 8]
cmp esi, ebx
jae 0x42e4f0
movzx esi, byte [edx + ecx + 8]
or eax, esi
lea esi, [ecx + 9]
cmp esi, ebx
jae 0x42e4f0
movzx esi, byte [edx + ecx + 9]
or eax, esi
lea esi, [ecx + 0xa]
cmp esi, ebx
jae 0x42e4f0
movzx esi, byte [edx + ecx + 0xa]
or eax, esi
lea esi, [ecx + 0xb]
cmp esi, ebx
jae 0x42e4f0
movzx esi, byte [edx + ecx + 0xb]
or eax, esi
lea esi, [ecx + 0xc]
cmp esi, ebx
jae 0x42e4f0
movzx esi, byte [edx + ecx + 0xc]
or eax, esi
lea esi, [ecx + 0xd]
cmp esi, ebx
jae 0x42e4f0
movzx esi, byte [edx + ecx + 0xd]
or eax, esi
lea esi, [ecx + 0xe]
cmp esi, ebx
jae 0x42e4f0
movzx ecx, byte [edx + ecx + 0xe]
or eax, ecx
lea esi, [esi]
test eax, eax
jne 0x42e300
mov dword [esp + 0x1c], ebx
jmp 0x42e315
call fcn.0049b030
mov dword [esp + 8], str.c2i_ibuf
mov dword [esp + 4], 0xa0
mov dword [esp], str..._crypto_asn1_a_int.c
call fcn.0049b150
mov dword [esp + 8], 0
mov dword [esp + 4], 0xde
mov dword [esp], 0xd
call fcn.0049b230
mov dword [esp + 0x1c], 0
jmp 0x42e360
test edi, edi
je 0x42e56d
movzx edx, byte [edx]
mov eax, edx
neg eax
cmp byte [esp + 0x1b], 0
cmovns eax, edx
mov byte [edi], al
mov dword [esp + 0x1c], 1
jmp 0x42e360
call fcn.0049b030
mov dword [esp + 8], str.c2i_ibuf
mov dword [esp + 4], 0xc1
mov dword [esp], str..._crypto_asn1_a_int.c
call fcn.0049b150
mov dword [esp + 8], 0
mov dword [esp + 4], 0xdd
mov dword [esp], 0xd
call fcn.0049b230
jmp 0x42e545
mov ecx, 1
xor eax, eax
jmp 0x42e40c