Function at 0x140042af6
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov rbx, r9
mov rsi, r8
mov r13, rdx
mov r15, rcx
mov eax, 0x10
call fcn.140074a70
sub rsp, rax
mov r12, rsp
mov rdi, qword [r9 + 0x20]
sub rsp, 0x20
mov rcx, r8
mov edx, 0x22
call rdi
add rsp, 0x20
mov r14b, 1
test al, al
jne 0x1400432ba
test r13, r13
mov qword [rbp], r15
jne 0x140042b5c
xor r11d, r11d
xor r13d, r13d
jmp 0x140043286
mov r11, r13
mov qword [rbp - 0x30], rbx
mov qword [rbp - 0x28], rdi
mov qword [rbp - 0x10], rsi
movabs r14, 0xcd49a85ba54dbf04
xor r13d, r13d
movabs rdi, 0x9f23a4e013ce585a
mov rsi, r15
mov rax, r11
xor r10d, r10d
lea r15, [rsi + rax]
xor edx, edx
xor ecx, ecx
movzx r8d, byte [rsi + rdx]
lea r9d, [r8 - 0x7f]
cmp r9b, 0xa1
jb 0x140042bc5
cmp r8d, 0x22
je 0x140042bc5
cmp r8d, 0x5c
je 0x140042bc5
lea r8, [r14 + 1]
xor r8, r14
add rcx, r8
inc rdx
cmp rax, rdx
jne 0x140042b93
jmp 0x14004322d
add r10, rcx
movzx ebx, byte [rsi + rcx]
test bl, bl
js 0x140042bd8
add rsi, rcx
inc rsi
jmp 0x140042c3a
add rsi, rcx
mov eax, ebx
and eax, 0x1f
movzx edx, byte [rsi + 1]
and edx, 0x3f
cmp bl, 0xdf
jbe 0x140042c22
movzx ecx, byte [rsi + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp bl, 0xf0
jb 0x140042c2f
movzx ebx, byte [rsi + 3]
add rsi, 4
and eax, 7
shl eax, 0x12
shl ecx, 6
and ebx, 0x3f
or ebx, ecx
or ebx, eax
cmp ebx, 0x110000
jne 0x140042c3a
jmp 0x140042f5b
add rsi, 2
shl eax, 6
or eax, edx
mov ebx, eax
jmp 0x140042c3a
add rsi, 3
shl eax, 0xc
or ecx, eax
mov ebx, ecx
cmp ebx, 0xc
jle 0x140042c5b
cmp ebx, 0x26
jg 0x140042c76
cmp ebx, 0xd
je 0x140042c91
cmp ebx, 0x22
jne 0x140042d0c
mov word [r12], 0x225c
jmp 0x140042caa
test ebx, ebx
je 0x140042c9a
cmp ebx, 9
je 0x140042ca3
cmp ebx, 0xa
jne 0x140042d0c
mov word [r12], 0x6e5c
jmp 0x140042caa
cmp ebx, 0x27
je 0x14004321e
cmp ebx, 0x5c
jne 0x140042d0c
mov word [r12], 0x5c5c
jmp 0x140042caa
mov word [r12], 0x725c
jmp 0x140042caa
mov word [r12], 0x305c
jmp 0x140042caa
mov word [r12], 0x745c
mov qword [r12 + 2], 0
mov word [r12 + 0xa], 0x200
cmp byte [r12], 0x80
mov al, byte [r12 + 0xb]
sete cl
sub al, byte [r12 + 0xa]
cmp al, 1
sete al
or al, cl
jne 0x140042f12
mov r8, r10
sub r8, r13
jb 0x140043282
test r13, r13
je 0x140042e1c
cmp r13, r11
jae 0x140042e16
mov rax, qword [rbp]
cmp byte [rax + r13], 0xc0
jge 0x140042e1c
jmp 0x140043282
cmp ebx, 0x2ff
jbe 0x140043001
mov qword [rbp - 0x18], r15
mov qword [rbp - 0x20], r13
mov qword [rbp - 8], r10
mov edx, ebx
shl edx, 0xb
mov r8d, 0x21
xor eax, eax
movabs r15, 0x6e105378cd388f2a
lea r13, [0x140093ca4]
lea ecx, [r15 + 1]
xor ecx, r15d
mov r9, r8
shr r9, cl
mov rcx, rax
add rax, r9
mov r10d, dword [r13 + rax*4]
shl r10d, 0xb
cmp r10d, edx
cmova rax, rcx
sub r8, r9
lea rcx, [rdi + 1]
xor rcx, rdi
cmp r8, rcx
ja 0x140042d42
mov r8d, dword [r13 + rax*4]
shl r8d, 0xb
xor ecx, ecx
cmp r8d, edx
sete cl
adc rcx, rax
movabs rdx, 0x8041ac4c4aa46e91
lea rax, [rdx + 0x1f]
xor rax, rdx
cmp rcx, rax
jae 0x140043282
movabs rax, 0xeb4cefcd5e445cc4
lea rdx, [rax + 0x20]
xor rdx, rax
mov eax, 0x2d7
cmp rcx, rdx
mov r15, qword [rbp - 0x18]
je 0x140042de5
movabs rdx, 0xe30ee26d67afe462
lea rax, [rdx + 1]
xor rax, rdx
add rax, rcx
mov eax, dword [r13 + rax*4]
shr eax, 0x15
xor r9d, r9d
test rcx, rcx
je 0x140042df2
mov r9d, dword [r13 + rcx*4 - 4]
mov edx, 0x1fffff
and r9d, edx
mov ecx, dword [r13 + rcx*4]
shr ecx, 0x15
mov rdx, rcx
not rdx
add rdx, rax
jne 0x140042f6c
mov r10, qword [rbp - 8]
mov r13, qword [rbp - 0x20]
jmp 0x140042ff8
jne 0x140043282
test r10, r10
je 0x140042e3c
cmp r10, r11
jae 0x140042e36
mov rax, qword [rbp]
cmp byte [rax + r10], 0xbf
jg 0x140042e3c
jmp 0x140043282
jne 0x140043282
mov r14, r15
mov rdx, r13
mov r13, r10
mov r15, r11
add rdx, qword [rbp]
mov rax, qword [rbp - 0x30]
mov rdi, qword [rax + 0x18]
sub rsp, 0x20
mov rcx, qword [rbp - 0x10]
call rdi
add rsp, 0x20
test al, al
jne 0x1400432ce
mov rax, r12
cmp byte [r12], 0x80
jne 0x140042e84
mov edx, dword [rax + 4]
sub rsp, 0x20
mov rcx, qword [rbp - 0x10]
call qword [rbp - 0x28]
jmp 0x140042e9d
movzx edx, byte [rax + 0xa]
movzx r8d, byte [rax + 0xb]
sub r8, rdx
add rdx, rax
sub rsp, 0x20
mov rcx, qword [rbp - 0x10]
call rdi
add rsp, 0x20
test al, al
jne 0x1400432ce
mov ecx, 1
cmp ebx, 0x80
jb 0x140042eef
mov ecx, 2
cmp ebx, 0x800
jb 0x140042eef
movabs rcx, 0xc60c204fa3964921
lea rax, [rcx + 1]
xor rax, rcx
movabs rdx, 0x414391123c2b8001
lea rcx, [rdx + 4]
xor rcx, rdx
cmp ebx, 0x10000
cmovb rcx, rax
mov r10, r13
add rcx, r13
mov r11, r15
mov r13, rcx
movabs rdi, 0x9f23a4e013ce585a
mov r15, r14
movabs r14, 0xcd49a85ba54dbf04
mov eax, 1
cmp ebx, 0x80
jb 0x140042f58
mov eax, 2
cmp ebx, 0x800
jb 0x140042f58
movabs rax, 0xcc1d2e17baa31490
lea rcx, [rax + 3]
xor rcx, rax
movabs rdx, 0xe65fa8179ae1339
lea rax, [rdx + 4]
xor rax, rdx
cmp ebx, 0x10000
cmovb rax, rcx
add r10, rax
sub r15, rsi
mov rax, r15
jne 0x140042b8b
jmp 0x140043230
mov rdi, r11
mov r8d, ebx
sub r8d, r9d
dec rax
xor r9d, r9d
xor r10d, r10d
mov r13, qword [rbp - 0x20]
movabs r15, 0x13ca41a19e50082
lea r11, [r15 + 0x1d3]
xor r11, r15
cmp rcx, r11
jae 0x140043282
lea r11, [0x140093d28]
movzx r11d, byte [rcx + r11]
add r9d, r11d
cmp r9d, r8d
ja 0x140042fe3
movabs r15, 0x53f32862971760b4
lea r11, [r15 + 1]
xor r11, r15
add r10, r11
movabs r15, 0xeb1f44842f11099e
lea r11, [r15 + 1]
xor r11, r15
add rcx, r11
cmp r10, rdx
jne 0x140042f82
mov rcx, rax
mov r11, rdi
mov r10, qword [rbp - 8]
movabs rdi, 0x9f23a4e013ce585a
mov r15, qword [rbp - 0x18]
test cl, 1
jne 0x1400430af
cmp ebx, 0x20
jae 0x140043032
sub rsp, 0x20
mov rcx, r12
mov edx, ebx
mov rdi, r11
mov r14, r15
mov r15, r10
call fcn.14003f070
mov r10, r15
mov r15, r14
movabs r14, 0xcd49a85ba54dbf04
jmp 0x1400430c4
cmp ebx, 0x7f
jb 0x14004321e
cmp ebx, 0x10000
jae 0x1400430da
movabs rax, 0xb6385d3a8b757a93
lea r8, [rax + 0x28]
xor r8, rax
movabs rcx, 0x39bfa273dec37a0f
lea rax, [rcx + 0x120]
xor rax, rcx
movabs rdx, 0x48b759da5e5140a0
lea rcx, [rdx + 0xed]
xor rcx, rdx
sub rsp, 0x40
lea rdx, [0x1400939e0]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x20], rax
mov ecx, ebx
lea rdx, [0x140093870]
lea r9, [0x1400938c0]
jmp 0x140043146
sub rsp, 0x20
mov rcx, r12
mov edx, ebx
mov rdi, r11
call fcn.14003f070
mov r10, qword [rbp - 8]
mov r11, rdi
movabs rdi, 0x9f23a4e013ce585a
add rsp, 0x20
jmp 0x140042cbb
cmp ebx, 0x20000
jae 0x140043182
movabs rax, 0xbcf0735ad1d1b009
lea r8, [rax + 0x1c]
xor r8, rax
movabs rcx, 0xd1121d3e65b81743
lea rax, [rcx + 0x44]
xor rax, rcx
movabs rdx, 0xbc780cb8353c6873
lea rcx, [rdx + 0x13e]
xor rcx, rdx
sub rsp, 0x40
lea rdx, [0x1400936ae]
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x20], rax
mov ecx, ebx
lea rdx, [0x140093592]
lea r9, str._f__NO
mov rdi, r11
mov r14, r15
mov r15, r10
call fcn.14004630c
mov r10, r15
mov r15, r14
movabs r14, 0xcd49a85ba54dbf04
mov r11, rdi
movabs rdi, 0x9f23a4e013ce585a
add rsp, 0x40
test al, al
je 0x140043006
jmp 0x14004321e
mov eax, ebx
and eax, 0xffffffe0
cmp eax, 0x2a6e0
setne al
lea ecx, [rbx - 0x2b73a]
cmp ecx, 6
setae cl
and cl, al
mov eax, ebx
and eax, 0xfffffffe
cmp eax, 0x2b81e
setne al
lea edx, [rbx - 0x2ceb0]
cmp edx, 0xfffffff2
setb dl
and dl, al
and dl, cl
lea eax, [rbx - 0x2ebf0]
cmp eax, 0xfffffff1
setb al
lea ecx, [rbx - 0x2f800]
cmp ecx, 0xfffff65e
setb cl
and cl, al
lea eax, [rbx - 0x30000]
cmp eax, 0xfffffa1e
setb al
and al, cl
and al, dl
lea ecx, [rbx - 0x31350]
cmp ecx, 0xfffffffb
setb cl
lea edx, [rbx - 0xe0100]
cmp edx, 0xfff522b0
setb dl
and dl, cl
and dl, al
cmp dl, 1
jne 0x140043006
mov eax, 0xe01f0
cmp ebx, eax
jae 0x140043006
mov byte [r12], 0x80
mov dword [r12 + 4], ebx
jmp 0x140042cbb
add r10, rax
cmp r13, r10
mov rsi, qword [rbp - 0x10]
mov rdi, qword [rbp - 0x28]
mov rbx, qword [rbp - 0x30]
mov r14b, 1
ja 0x140043282
test r13, r13
jne 0x14004324e
xor r13d, r13d
jmp 0x140043265
cmp r13, r11
jae 0x140043260
mov rax, qword [rbp]
cmp byte [rax + r13], 0xc0
jge 0x140043265
jmp 0x140043282
mov r13, r11
jne 0x140043282
test r10, r10
jne 0x14004326f
xor r11d, r11d
jmp 0x140043286
cmp r10, r11
jae 0x140043284
mov rax, qword [rbp]
cmp byte [rax + r10], 0xbf
mov r11, r10
jg 0x140043286
ud2
jne 0x140043282
sub r11, r13
mov rdx, qword [rbp]
add rdx, r13
sub rsp, 0x20
mov rcx, rsi
mov r8, r11
call qword [rbx + 0x18]
add rsp, 0x20
test al, al
jne 0x1400432ba
sub rsp, 0x20
mov rcx, rsi
mov edx, 0x22
call rdi
add rsp, 0x20
mov r14d, eax
mov eax, r14d
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov r14b, 1
jmp 0x1400432ba