Function at 0x42c3e0
Capabilities:
Encode data using xor

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x58
cmp byte [rdx], 0x68
mov rsi, rdx
mov ebx, r8d
mov ebp, r8d
jne 0x42c404
cmp byte [rdx + 5], 0x68
je 0x42c5a3
lea rax, str.default
mov qword [rsp + 0x30], 2
lea r12, [rsp + 0x20]
mov qword [rsp + 0x48], rax
lea rdi, [rsp + 0x28]
mov rcx, r12
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], 0
lea rdx, [rsp + 0x30]
call qword [0x00527380]
mov r13, qword [rsp + 0x20]
mov r8d, 0x2c
mov rcx, rdi
lea rdx, str.data_err_data_0__x_data_5__x_data__d__d_r_n
call qword [0x00527268]
mov rdx, rdi
mov rcx, r13
call qword [0x00527120]
mov rcx, qword [rsp + 0x28]
mov eax, dword [rcx]
test eax, eax
je 0x42c530
cmp eax, 0xffffffff
je 0x42c490
lock sub dword [rcx], 1
mov rcx, qword [rsp + 0x28]
je 0x42c530
nop dword [rax]
mov rax, qword [rsp + 0x20]
mov rdi, qword [0x00527128]
cmp byte [rax + 0x20], 0
mov rcx, rax
jne 0x42c592
movsx edx, byte [rsi]
call rdi
mov rax, qword [rsp + 0x20]
cmp byte [rax + 0x20], 0
mov rcx, rax
jne 0x42c581
movsx edx, byte [rsi + 5]
call rdi
mov rax, qword [rsp + 0x20]
cmp byte [rax + 0x20], 0
mov rcx, rax
jne 0x42c570
movzx edx, bx
sub edx, 1
call qword [0x00527130]
mov rax, qword [rsp + 0x20]
cmp byte [rax + 0x20], 0
mov rcx, rax
jne 0x42c560
movzx eax, bp
movsx edx, byte [rsi + rax - 1]
call rdi
mov rax, qword [rsp + 0x20]
cmp byte [rax + 0x20], 0
mov rcx, rax
jne 0x42c550
call qword [0x00527158]
mov rcx, r12
call qword [0x005271a0]
mov eax, 1
add rsp, 0x58
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov r8d, 8
mov edx, 2
call qword [0x005270c8]
jmp 0x42c490
mov edx, 0x20
call rdi
mov rcx, qword [rsp + 0x20]
jmp 0x42c50a
mov edx, 0x20
call rdi
mov rcx, qword [rsp + 0x20]
jmp 0x42c4f2
mov edx, 0x20
call rdi
mov rcx, qword [rsp + 0x20]
jmp 0x42c4d8
mov edx, 0x20
call rdi
mov rcx, qword [rsp + 0x20]
jmp 0x42c4c0
mov edx, 0x20
call rdi
mov rcx, qword [rsp + 0x20]
jmp 0x42c4a9
movzx r9d, r8w
cmp byte [rdx + r9 - 1], 0x16
jne 0x42c404
movzx ebp, word [rdx + 1]
movzx r12d, word [rdx + 3]
cmp bp, r12w
jne 0x42c6c5
lea eax, [rbp + 9]
movzx ebx, r8w
cmp ebx, eax
jne 0x42c756
test ebp, ebp
mov ebx, 0xffffffff
je 0x42c622
lea eax, [rbp - 1]
lea r8, [rdx + 6]
lea r10, [rdx + rax + 7]
nop word [rax + rax]
movzx eax, byte [r8]
mov edx, 8
xor ebx, eax
nop dword [rax + rax]
movzx eax, bx
sar eax, 1
mov ecx, eax
xor cx, 0xa001
and ebx, 1
mov ebx, ecx
cmove ebx, eax
sub edx, 1
jne 0x42c600
add r8, 1
cmp r10, r8
jne 0x42c5f0
movzx esi, word [rsi + r9 - 3]
xor eax, eax
cmp si, bx
je 0x42c51e
mov qword [rsp + 0x30], 2
lea rax, str.default
lea rdi, [rsp + 0x28]
mov qword [rsp + 0x48], rax
lea rdx, [rsp + 0x30]
mov rcx, rdi
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], 0
call qword [0x00527380]
lea rdx, str.crc_err_crc1:_x_crc2:_x_r_n
mov rcx, rdi
call fcn.00491180
mov r12, rax
movzx edx, bx
mov rcx, qword [rax]
mov rbp, qword [0x00527138]
call rbp
mov rax, qword [r12]
cmp byte [rax + 0x20], 0
mov rcx, rax
jne 0x42c809
movzx edx, si
call rbp
mov rcx, qword [r12]
cmp byte [rcx + 0x20], 0
jne 0x42c7f9
mov rcx, rdi
call qword [0x005271a0]
mov eax, 4
jmp 0x42c51e
mov qword [rsp + 0x30], 2
lea rax, str.default
lea rdi, [rsp + 0x28]
mov qword [rsp + 0x48], rax
lea rdx, [rsp + 0x30]
mov rcx, rdi
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], 0
call qword [0x00527380]
lea rdx, str.len_err_len1_d_len2_d_r_n
mov rcx, rdi
call fcn.00491180
movzx edx, bp
mov rbx, rax
mov rcx, qword [rax]
mov rbp, qword [0x00527138]
call rbp
mov rax, qword [rbx]
cmp byte [rax + 0x20], 0
mov rcx, rax
jne 0x42c7d9
movzx edx, r12w
call rbp
mov rcx, qword [rbx]
cmp byte [rcx + 0x20], 0
jne 0x42c7c9
mov rcx, rdi
call qword [0x005271a0]
mov eax, 2
jmp 0x42c51e
mov qword [rsp + 0x30], 2
lea rax, str.default
lea rdi, [rsp + 0x28]
mov qword [rsp + 0x48], rax
lea rdx, [rsp + 0x30]
mov rcx, rdi
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], 0
call qword [0x00527380]
lea rdx, str.ttl_len_err_len_d_r_n
mov rcx, rdi
call fcn.00491180
mov rsi, rax
mov edx, ebx
mov rcx, qword [rax]
call qword [0x00527138]
mov rcx, qword [rsi]
cmp byte [rcx + 0x20], 0
jne 0x42c7ec
mov rcx, rdi
call qword [0x005271a0]
mov eax, 3
jmp 0x42c51e
mov edx, 0x20
call qword [0x00527128]
jmp 0x42c743
mov edx, 0x20
call qword [0x00527128]
mov rcx, qword [rbx]
jmp 0x42c730
mov edx, 0x20
call qword [0x00527128]
jmp 0x42c7b6
mov edx, 0x20
call qword [0x00527128]
jmp 0x42c6b2
mov edx, 0x20
call qword [0x00527128]
mov rcx, qword [r12]
jmp 0x42c69f