Function at 0x140123c80
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0xc0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x38], 0xfffffffffffffffe
mov rdi, r8
mov rsi, rcx
mov rax, qword [rbp + 0xa0]
mov r8d, dword [rbp + 0xb0]
mov r10d, dword [rbp + 0xc0]
movzx ecx, byte [0x14055bd29]
mov qword [rbp + 0x30], rcx
lea rcx, [rbp - 0x30]
mov qword [rbp - 0x18], 0
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
lea r11, [0x140427b38]
mov qword [rbp - 0x30], r11
mov qword [rbp + 0x10], 0
mov qword [rbp + 0x18], 0xf
mov byte [rbp], 0
mov qword [rbp - 8], r11
mov dword [rbp - 0x48], edx
mov dword [rbp - 0x44], r10d
mov dword [rbp - 0x40], r9d
mov dword [rbp - 0x3c], r8d
mov dword [rbp - 0x38], 0
mov rdx, rax
call fcn.140271230
mov rdx, qword [rbp + 0xa8]
lea rcx, [rbp - 8]
call fcn.140271230
movzx eax, byte [rbp + 0xc8]
mov byte [rbp + 0x20], al
movsxd rbx, dword [0x14042a38c]
mov r14d, dword [0x14042a384]
cmp qword [0x14055be50], 0
jne 0x140123d73
mov ecx, 0x700
call fcn.1403e4d2c
mov qword [rbp + 0x28], rax
mov rcx, rax
call fcn.140092fc0
mov rax, qword [rbp + 0x28]
mov qword [0x14055be50], rax
mov r8, qword [rbp + 0xb8]
lea r10, [0x14042a38c]
add r10, rbx
mov rcx, qword [0x14055be50]
mov r9, qword [rcx]
mov r11d, 0x3f3377d3
nop word cs:[rax + rax]
mov ebx, dword [0x1404fcb14]
mov edx, dword [0x1404fcba0]
mov eax, dword [0x14055bd20]
lea r15d, [rax + 1]
imul r15d, eax
test r15b, 1
je 0x140123df3
mov edx, dword [0x14055bd20]
mov eax, edx
xor eax, 0x149e635d
mov ebx, edx
and ebx, 0x149e635d
lea eax, [rax + rbx*2]
add eax, 0xeb619ca2
imul eax, edx
mov ebx, dword [0x1404fcba0]
add ebx, r11d
xor edx, edx
div ebx
test edx, edx
jne 0x140123dc0
jmp 0x140123da0
sub edx, ebx
add edx, 0x3f3377d1
mov eax, 1
sub eax, edx
mov dword [0x1404fcb14], eax
mov edx, dword [0x14055bd24]
cmp edx, 0xf
nop word cs:[rax + rax]
mov edx, dword [0x14055bd24]
cmp edx, 0x49
jg 0x140123e20
mov edx, ebx
not edx
mov r11d, eax
not r11d
mov r15d, ebx
xor r15d, r11d
xor r11d, edx
and edx, eax
or r15d, edx
not r15d
or r15d, edx
and ebx, eax
or ebx, r11d
not ebx
or ebx, r15d
xor ebx, 0xffffffff
je 0x140123e5d
xor r15d, r15d
jmp 0x140123eaa
mov eax, 0x3f33781f
mov dl, 1
nop word cs:[rax + rax]
mov r11d, dword [0x14055bd24]
cmp r11d, 0x47
jg 0x140123e93
mov r11d, dword [0x14055bd24]
mov r15d, dword [0x1404fcba0]
add r15d, eax
cmp r11d, r15d
jl 0x140123e99
test dl, dl
je 0x140123e70
jmp 0x140123e7d
xor eax, eax
mov r15d, 0
test r14d, r14d
jg 0x140124109
mov rax, qword [r9 + 8]
mov r10, qword [case.0x140303ece.0]
mov qword [rsp + 0x20], r8
lea r9, [rbp - 0x48]
mov rdx, rsi
mov r8, rdi
call r10
mov rax, qword [rbp + 0x18]
cmp rax, 0x10
jb 0x140124008
mov rcx, qword [0x1404fcb98]
movabs rdx, 0x92c6175b531db520
xor rdx, rcx
movabs r8, 0x12c6175b531db520
and r8, rcx
lea rcx, [rdx + r8*2]
mov rdx, rax
xor rdx, rcx
mov r8, rax
not r8
not rcx
and rcx, r8
or rcx, rdx
not rcx
lea r9, [rdx + rcx*2]
cmp r9, 0x1000
setae cl
or cl, byte [0x14055bd28]
mov r8, qword [rbp]
movzx r10d, byte [0x14055bd29]
mov edx, r10d
and dl, cl
mov r11d, r10d
xor r11b, 1
and r11b, cl
xor cl, r10b
and cl, r10b
or cl, r11b
mov r10d, edx
xor r10b, 1
mov r11d, ecx
xor r11b, r10b
and r11b, cl
test r11b, 1
jne 0x140123f73
and r10b, cl
test r10b, 1
jne 0x140123f73
xor cl, 1
and dl, cl
test dl, 1
je 0x140123fa6
mov rcx, qword [r8 - 8]
mov rdx, r8
xor rdx, 0xfffffffffffffff8
not r8d
and r8d, 7
or r8, rdx
not r8
lea rdx, [rdx + r8*2]
sub rdx, rcx
cmp rdx, 0x20
jae 0x140124189
add rax, 0x28
mov r9, rax
mov r8, rcx
mov eax, dword [0x1404fcb50]
or eax, dword [rbp + 0x30]
mov edx, dword [0x1404fcba0]
sub eax, edx
add eax, 0xc0ccf181
cdqe
add rax, qword [0x1404fcb70]
lea ecx, [rdx + 0x3f3377d1]
mov r10d, edx
xor r10d, 0xf2de0a61
mov r11d, edx
and r11d, 0x72de0a61
lea r10d, [r10 + r11*2]
mov r11d, edx
xor r11d, 0x7354f427
and edx, 0x7354f427
lea edx, [r11 + rdx*2]
mov dword [rsp + 0x28], edx
mov dword [rsp + 0x20], r10d
mov edx, ecx
call qword [case.0x140303ece.0]
mov qword [rbp + 0x10], 0
mov qword [rbp + 0x18], 0xf
mov byte [rbp], 0
mov rax, qword [rbp - 0x10]
cmp rax, 0x10
jb 0x1401240f4
mov r8, qword [rbp - 0x28]
mov rcx, qword [0x1404fcb98]
movabs r9, 0x7ccd1136ee00ecb1
add r9, rax
add r9, rcx
movabs rdx, 0xa8bf1d7fb83a7d8e
add rdx, rcx
mov r10, rdx
xor r10, rdx
not r10
and r10, r9
xor r10, rdx
and rdx, r9
lea r9, [r10 + rdx*2]
movabs rdx, 0x887e678c776cf667
add rdx, rcx
movabs rcx, 0xa47afcedbb0ceb7
mov r10, rdx
xor r10, rcx
and rdx, rcx
lea rcx, [r10 + rdx*2]
cmp r9, rcx
jbe 0x1401240c0
mov rcx, qword [r8 - 8]
add r8, qword [0x1404fcb98]
sub r8, rcx
movabs rdx, 0x92c6175b531db517
add rdx, r8
cmp rdx, 0x20
jae 0x14012426b
add rax, 0x28
mov r9, rax
mov r8, rcx
mov eax, dword [0x1404fcb50]
mov rcx, qword [rbp + 0x30]
add eax, ecx
add eax, 0x6952
cdqe
add rax, qword [0x1404fcb70]
mov dword [rsp + 0x28], 0x34217c56
mov dword [rsp + 0x20], 0xb3aa9290
xor ecx, ecx
xor edx, edx
call qword [case.0x140303ece.0]
mov rax, rsi
add rsp, 0xc0
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret
mov edx, 0x3f3377d1
xor r15d, r15d
jmp 0x140124129
cmp eax, r14d
jge 0x140123eaa
mov r11d, dword [0x14055bd20]
lea r12d, [r11 - 1]
imul r12d, r11d
and r12d, 1
mov r11d, dword [0x1404fcba0]
add r11d, edx
cdqe
cmp r12d, r11d
je 0x140124152
movzx r11d, byte [r10 + rax]
xor r15b, byte [r10 + rax]
inc eax
nop dword [rax + rax]
mov r11d, dword [0x14055bd24]
cmp r11d, 0x2a
jg 0x14012417a
mov r11d, dword [0x14055bd24]
cmp r11d, 0x47
jle 0x140124120
mov r11d, dword [0x14055bd24]
cmp r11d, 0x39
jge 0x140124160
jmp 0x14012416d
test ebx, ebx
setne dl
movzx ecx, byte [0x14042a381]
sub cl, r15b
mov r9d, edx
neg r9b
dec dl
mov eax, ecx
not al
movzx r8d, byte [0x1404fcba4]
add r8b, 0x19
mov r10d, r9d
and r10b, r8b
or r8b, r9b
not r8b
or r8b, r10b
mov r9d, r8d
not r9b
mov r10d, ecx
and r10b, r8b
mov r11d, eax
and r11b, r9b
or r11b, r10b
xor r9b, cl
and r8b, al
or r8b, r9b
not r8b
or r8b, r11b
not r8b
nop word cs:[rax + rax]
mov r9d, dword [0x14055bd24]
cmp r9d, 0x49
jg 0x1401241f0
xor al, cl
and al, dl
xor al, cl
or al, r8b
mov ecx, 0x3f3377d2
lea rdx, [fcn.140123c80]
add edx, edx
add edx, 0x33a0
mov r8d, edx
not r8d
not al
mov r9d, dword [0x1404fcba0]
add r9d, ecx
mov r10d, edx
xor r10d, r9d
not r9d
and r9d, r8d
or r9d, r10d
cmp r9d, 0xffffffff
jne 0x14012424d
cmp dword [0x1404fcba0], 0xc0cc882f
je 0x14012425c
mov r9d, dword [0x14055bd24]
cmp r9d, 0x18
jge 0x140124222
jmp 0x140124241
movzx ecx, byte [0x14055bd28]
xor edx, edx
test dl, dl
jne 0x1401242a0
jmp 0x140124270
call fcn.1403c4adc
test al, al
sete r8b
setne dl
mov r9d, dword [0x14055bd24]
mov r10d, 0x3f33781a
add r10d, dword [0x1404fcba0]
cmp r9d, r10d
jl 0x1401242ad
nop word cs:[rax + rax]
mov edx, dword [0x14055bd24]
cmp edx, 0x20
jge 0x1401242a0
jmp 0x140124270
mov eax, ecx
not al
and al, r8b
xor dl, cl
or al, dl
xor al, 1
or al, dl
and al, 1
mov byte [0x14055bd28], al
call fcn.1403c4adc
int3