Function at 0x140050f40
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r14
push rsi
push rdi
push rbx
sub rsp, 0x110
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x88], rcx
mov edx, dword [0x1401dd610]
and edx, dword [0x1401dd614]
mov eax, 0xc64c3a9e
xor eax, 0xc64c3a9e
mov ecx, 0x30042323
xor ecx, 0xce116ef9
sub eax, ecx
sub edx, eax
xor eax, eax
sub eax, 0xf7e80ef2
sub edx, eax
mov ecx, edx
xor ecx, 0xe3419240
mov eax, 0xffffffff
xor eax, 0xe3419240
and edx, eax
mov eax, 0x99855216
xor eax, 0x99855214
imul eax, edx
sub eax, ecx
cmp eax, 0xe7edbca
jbe 0x140051966
mov eax, dword [0x1401dd618]
xor eax, 0x2000020
mov ecx, dword [0x1401dd61c]
or eax, ecx
or eax, 0x51dda5df
and eax, 0x57dfafff
mov dword [rbp + 0x80], eax
mov eax, 0x10
mov qword [rbp + 0x48], rax
call fcn.1401da3e0
sub rsp, rax
mov rax, qword [rbp + 0x48]
mov rcx, rsp
mov qword [rbp + 0x60], rcx
call fcn.1401da3e0
sub rsp, rax
mov rax, qword [rbp + 0x48]
mov rcx, rsp
mov qword [rbp + 0x68], rcx
call fcn.1401da3e0
sub rsp, rax
mov rax, qword [rbp + 0x48]
mov rcx, rsp
mov qword [rbp + 0x40], rcx
call fcn.1401da3e0
sub rsp, rax
mov rax, qword [rbp + 0x48]
mov rcx, rsp
mov qword [rbp + 0x50], rcx
call fcn.1401da3e0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x58], rax
sub rsp, 0x20
call fcn.14004c253
mov rcx, qword [rbp + 0x60]
mov r8, qword [rbp + 0x68]
add rsp, 0x20
mov rdx, rax
mov rax, qword [rbp + 0x88]
mov qword [rbp + 0x70], rdx
mov qword [rcx], 0
mov rdx, rcx
add rdx, 8
mov qword [rbp + 0x78], rdx
mov qword [rcx + 8], 0
mov rcx, qword [rax]
mov edx, 2
sub rsp, 0x20
call fcn.14004cefb
add rsp, 0x20
mov cl, al
mov eax, dword [rbp + 0x80]
mov byte [rbp + 0x87], cl
cmp eax, 0x727dfa02
je 0x140050fb8
mov al, byte [rbp + 0x87]
test al, 1
jne 0x1400510bd
jmp 0x1400510cf
sub rsp, 0x20
call fcn.1400067fe
add rsp, 0x20
jmp 0x140051958
mov rax, qword [rbp + 0x68]
mov rax, qword [rax]
mov qword [rbp + 0x38], rax
cmp rax, 0
jge 0x140051108
mov rcx, qword [rbp + 0x38]
xor eax, eax
mov edx, eax
movabs r8, 0x7fffffffffffffff
sub rsp, 0x20
call fcn.14000c499
add rsp, 0x20
jmp 0x140051958
mov rcx, qword [rbp + 0x60]
mov rdx, qword [rbp + 0x38]
sub rsp, 0x20
call fcn.14001ed58
mov r11, qword [rbp + 0x88]
mov r9, qword [rbp + 0x60]
mov rdx, qword [rbp + 0x78]
mov rcx, qword [rbp + 0x40]
mov rax, qword [rbp + 0x50]
add rsp, 0x20
mov r10, qword [r11]
mov qword [rbp + 0x10], r10
mov r8, r11
add r8, 8
mov qword [rbp + 0x18], r8
mov r8, qword [r11 + 8]
mov rsi, qword [r9]
mov qword [r11], rsi
mov rsi, qword [r9 + 8]
mov qword [r11 + 8], rsi
mov qword [r9], r10
mov qword [rdx], r8
add rcx, 8
mov qword [rbp + 0x20], rcx
add rax, 8
mov qword [rbp + 0x28], rax
xor eax, eax
mov qword [rbp + 0x30], rax
mov rcx, qword [rbp + 0x10]
mov rax, qword [rbp + 0x30]
mov qword [rbp + 8], rax
cmp rax, rcx
jge 0x140051935
mov rcx, qword [rbp + 8]
mov rdx, qword [rbp + 0x60]
test rcx, rcx
setns al
mov rdx, qword [rdx]
mov qword [rbp], rdx
sub rcx, rdx
setl cl
and al, cl
test al, 1
jne 0x1400511e2
mov rcx, qword [rbp + 8]
mov rdx, qword [rbp]
movabs rax, 0xae26b7082eeb98c2
movabs r8, 0x51d948f7d114673d
xor rax, r8
add rdx, rax
sub rsp, 0x20
call fcn.1400137e9
add rsp, 0x20
jmp 0x140051958
mov eax, dword [0x1401dd620]
xor eax, 0xaab28f85
mov r8d, dword [0x1401dd624]
xor r8d, 0xf4e50b64
mov edx, 0xbc7b2fb9
xor edx, 0x4384d046
mov ecx, eax
xor ecx, edx
mov edx, r8d
and edx, ecx
mov ecx, 0x8ac00546
xor ecx, 0x753ffab9
mov r9d, r8d
xor r9d, ecx
mov ecx, eax
and ecx, r9d
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, eax
xor ecx, 0x60171d67
mov edx, 0xffffffff
xor edx, 0x60171d67
and eax, edx
shl eax, 1
sub eax, ecx
sub eax, 0x5b9f988c
or eax, 0x6f227a10
cmp eax, 0x721c0d97
ja 0x14005196f
mov rdx, qword [rbp + 0x70]
mov r9, qword [rbp + 8]
mov r8, qword [rbp + 0x78]
mov eax, dword [0x1401dd628]
mov r10d, dword [0x1401dd62c]
mov ecx, eax
xor ecx, r10d
not r10d
and eax, r10d
add eax, eax
sub eax, ecx
imul eax, eax, 0x6cc5f7e0
add eax, 0xd5a11f00
and eax, 0x47ab66c0
mov ecx, 0x6064fce3
mov r8, qword [r8]
lea r9, [r9 + r9*4]
mov r8, qword [r8 + r9*8 + 8]
mov qword [rbp - 0x10], r8
test r8, r8
sete r8b
mov dl, byte [rdx]
test dl, dl
setne dl
mov byte [rbp - 2], dl
or dl, r8b
mov byte [rbp - 1], dl
cmp eax, ecx
je 0x14005196f
mov al, byte [rbp - 1]
test al, 1
jne 0x1400517bf
jmp 0x1400512e0
mov eax, dword [0x1401dd630]
or eax, dword [0x1401dd634]
mov ecx, 0x4b75739d
xor ecx, 0x9277c5a0
or eax, ecx
or eax, eax
xor eax, 0xffffffff
mov ecx, 0x5cb384f5
xor ecx, 0xdf6bccfa
mov edx, 0xc406abbd
xor edx, 0x3bf95442
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0x83d8480f
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
mov ecx, eax
xor ecx, 0xb959467f
mov edx, 0x4a679791
xor edx, 0xb598686e
xor ecx, edx
or eax, 0xb959467f
and eax, ecx
mov ecx, 0x3922faa6
xor ecx, 0x9b60c3bd
cmp eax, ecx
je 0x140051978
mov r8, qword [rbp - 0x10]
mov rcx, qword [rbp + 0x88]
mov r9d, dword [0x1401dd638]
mov eax, dword [0x1401dd63c]
xor eax, 0x67ee1c2
and r9d, eax
mov eax, r9d
and eax, 0xd0fe3c6b
xor eax, 0xffffffff
mov edx, 0xa74234c2
xor edx, 0x77bc08a9
add r9d, edx
add r9d, 1
add r9d, eax
or r9d, 0xb79570ac
mov edx, r9d
xor edx, 0xc2c41d14
mov eax, 0xffffffff
xor eax, 0xc2c41d14
and r9d, eax
mov eax, 0x2a2944a5
xor eax, 0x2a2944a7
imul eax, r9d
sub eax, edx
mov rcx, qword [rcx]
movabs rdx, 0x2f17c4ff2ed1ea84
sub rcx, rdx
add rcx, 0xffffffffffffffff
movabs rdx, 0x2f17c4ff2ed1ea84
add rcx, rdx
mov rdx, rcx
xor rdx, r8
xor rdx, 0xffffffffffffffff
or rcx, r8
and rcx, rdx
mov qword [rbp - 0x18], rcx
cmp eax, 0x2132aff0
jbe 0x140051978
mov rax, qword [rbp - 0x18]
mov qword [rbp - 0x20], rax
jmp 0x140051411
mov rax, qword [rbp - 0x20]
mov qword [rbp - 0x28], rax
mov eax, dword [0x1401dd640]
mov ecx, dword [0x1401dd644]
xor ecx, 0x5c738682
xor eax, ecx
xor eax, 0x5981c54d
mov ecx, 0x3eeddb9
xor edx, edx
div ecx
mov r8d, eax
mov eax, r8d
xor eax, 0xffffffff
and eax, 0x283ff0
mov edx, 0xffffffff
xor edx, 0x283ff0
and r8d, edx
mov ecx, 0xffffffff
xor ecx, 0x2410b67
and ecx, 0x283ff0
and edx, 0x2410b67
or eax, r8d
or ecx, edx
xor eax, ecx
cmp eax, 0x4174a602
je 0x140051981
mov rdx, qword [rbp - 0x28]
mov r8, qword [rbp + 0x88]
mov r9d, dword [0x1401dd648]
mov eax, dword [0x1401dd64c]
mov ecx, eax
mov eax, r9d
lea eax, [rax + rcx + 0x7dd8302a]
and eax, 0x4adada7b
xor eax, 0x4c5fbece
test rdx, rdx
setns cl
mov r8, qword [r8]
mov qword [rbp - 0x38], r8
sub rdx, r8
setl dl
and cl, dl
mov byte [rbp - 0x29], cl
cmp eax, 0x318bc2a0
jb 0x140051480
mov al, byte [rbp - 0x29]
test al, 1
jne 0x140051513
jmp 0x1400514e1
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x38]
mov rax, 0xffffffffffffffff
xor rax, 0xffffffffffffffff
xor r8d, r8d
sub r8, 1
sub rax, r8
sub rdx, rax
sub rsp, 0x20
call fcn.1400137e9
add rsp, 0x20
jmp 0x140051958
mov rcx, qword [rbp - 0x28]
mov rax, qword [rbp + 0x18]
mov rax, qword [rax]
add rax, 8
imul rcx, rcx, 0x28
add rax, rcx
mov rax, qword [rax]
movabs rcx, 0x98f81ae5a710e3ca
movabs rdx, 0x98f81ae5a710e3ca
xor rcx, rdx
cmp rax, rcx
je 0x14005157b
mov rcx, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x38]
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.14004cfd7
mov rcx, qword [rbp + 0x70]
add rsp, 0x20
cmp byte [rcx], 0
mov qword [rbp - 0x20], rax
je 0x140051411
jmp 0x140051958
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x60]
mov rcx, qword [rcx]
mov qword [rbp - 0x40], rcx
cmp rax, rcx
jl 0x1400515d5
mov rcx, qword [rbp + 8]
mov rdx, qword [rbp - 0x40]
mov rax, rdx
and rax, 0xffffffffffffffff
shl rax, 1
movabs r8, 0x81f8088c242fc19
movabs r9, 0xf7e07f773dbd03e6
xor r8, r9
xor rdx, r8
add rdx, rax
sub rsp, 0x20
call fcn.1400137e9
add rsp, 0x20
jmp 0x140051958
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x78]
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x28
add rcx, rax
add rcx, 8
mov rax, qword [rcx]
mov qword [rbp - 0x58], rax
mov rax, qword [rcx + 8]
mov qword [rbp - 0x50], rax
sub rsp, 0x20
call fcn.140010368
mov rcx, qword [rbp + 0x60]
mov rax, qword [rbp + 8]
add rsp, 0x20
mov rcx, qword [rcx]
mov qword [rbp - 0x48], rcx
cmp rax, rcx
jl 0x140051641
mov rcx, qword [rbp + 8]
mov rdx, qword [rbp - 0x48]
add rdx, 0xffffffffffffffff
sub rsp, 0x20
call fcn.1400137e9
add rsp, 0x20
jmp 0x140051958
mov rdi, qword [rbp + 0x20]
mov rbx, qword [rbp - 0x50]
mov r14, qword [rbp - 0x58]
mov rax, qword [rbp + 8]
mov rcx, qword [rbp + 0x78]
mov rcx, qword [rcx]
add rcx, 8
imul rax, rax, 0x28
add rcx, rax
add rcx, 0x18
mov rsi, qword [rcx]
mov rax, qword [rcx + 8]
mov qword [rbp - 0x60], rax
sub rsp, 0x20
call fcn.140010368
mov r11, qword [rbp - 0x60]
mov rcx, qword [rbp + 0x28]
mov rdx, qword [rbp + 0x88]
mov r8, qword [rbp + 0x40]
mov r9, qword [rbp + 0x50]
mov r10, qword [rbp - 0x10]
mov rax, qword [rbp - 0x28]
add rsp, 0x20
mov qword [r8], r14
mov qword [rdi], rbx
mov qword [r9], rsi
mov qword [rcx], r11
sub rsp, 0x30
mov qword [rsp + 0x20], r10
mov qword [rsp + 0x28], rax
call fcn.140050d62
mov rax, qword [rbp + 0x70]
add rsp, 0x30
cmp byte [rax], 0
jne 0x140051958
mov rax, qword [rbp - 0x50]
cmp rax, 0
je 0x1400517dd
mov ecx, dword [0x1401dd650]
mov r8d, dword [0x1401dd654]
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, ecx
and edx, r9d
mov eax, ecx
or eax, r9d
xor eax, 0xffffffff
imul eax, edx
mov edx, ecx
and edx, r8d
or ecx, r8d
imul ecx, edx
add ecx, eax
mov eax, ecx
and eax, 0x27c653f9
or ecx, 0x27c653f9
add eax, ecx
mov ecx, 0x3d926c2c
xor ecx, 0xf235baee
sub eax, ecx
and eax, 0x48539e6d
cmp eax, 0xeafcfa9f
jae 0x14005198a
mov eax, dword [0x1401dd658]
xor edx, edx
div dword [0x1401dd65c]
mov ecx, 0xffffffff
xor ecx, 0xabd9f6a6
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
add eax, 0xd246a025
add eax, 0x78c1c1e1
sub eax, 0xd246a025
mov ecx, 0xd6593dc
xor edx, edx
div ecx
mov rdx, qword [rbp - 0x50]
movabs rcx, 0x4000000000000000
and rcx, qword [rdx]
cmp rcx, 0
sete cl
mov byte [rbp - 0x61], cl
cmp eax, 0xe63565c3
ja 0x140051739
mov al, byte [rbp - 0x61]
test al, 1
jne 0x1400517a9
jmp 0x1400517dd
mov rcx, qword [rbp - 0x50]
sub rsp, 0x20
call fcn.14000e27f
add rsp, 0x20
jmp 0x1400517dd
mov rcx, qword [rbp + 8]
mov dl, byte [rbp - 2]
xor eax, eax
test dl, 1
mov qword [rbp - 0x70], rcx
mov byte [rbp - 0x62], al
jne 0x14005191c
jmp 0x1400517dd
mov eax, dword [0x1401dd660]
mov r8d, dword [0x1401dd664]
mov ecx, 0xc56b526b
xor ecx, 0xef492fdb
xor r8d, ecx
mov ecx, 0x518706fe
xor ecx, 0xae78f901
mov edx, r8d
xor edx, ecx
mov ecx, eax
and ecx, edx
mov edx, eax
xor edx, r8d
add eax, edx
sub eax, ecx
mov edx, eax
xor edx, 0x13d8200e
xor edx, 0xffffffff
mov ecx, 0x791fe564
xor ecx, 0x6ac7c56a
and ecx, edx
shl ecx, 1
mov edx, 0xcaaf1893
xor edx, 0xd977389d
sub ecx, edx
sub eax, ecx
sub eax, 0xbfbd3e99
mov ecx, eax
xor ecx, 0xffffffff
mov edx, 0x38b67ad5
xor edx, 0xb784eb2d
and edx, ecx
mov r8d, 0xffffffff
xor r8d, 0x8f3291f8
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x8f3291f8
or eax, 0x8f3291f8
imul eax, edx
add eax, ecx
cmp eax, 0xe6dfe958
ja 0x140051993
mov rdx, qword [rbp + 8]
mov eax, dword [0x1401dd668]
xor eax, dword [0x1401dd66c]
or eax, 0x8dbe144d
add eax, 0x146c3fa7
mov ecx, 0x465d70c3
xor ecx, 0xb8122654
or eax, ecx
mov rcx, rdx
add rcx, 1
mov qword [rbp - 0x80], rcx
xor rdx, 0xffffffffffffffff
and rcx, rdx
movabs rdx, 0x577c5de5f140b08e
movabs r8, 0x577c5de5f140b08e
xor rdx, r8
cmp rcx, rdx
setl cl
mov byte [rbp - 0x71], cl
cmp eax, 0xe67dee11
jbe 0x140051993
mov rcx, qword [rbp - 0x80]
mov dl, byte [rbp - 0x71]
mov al, 1
test dl, 1
mov qword [rbp - 0x70], rcx
mov byte [rbp - 0x62], al
jne 0x14005190a
jmp 0x14005191c
sub rsp, 0x20
call fcn.1400067fe
add rsp, 0x20
jmp 0x140051958
mov rax, qword [rbp - 0x70]
mov cl, byte [rbp - 0x62]
test cl, 1
mov qword [rbp + 0x30], rax
jne 0x140051174
jmp 0x140051958
mov rcx, qword [rbp + 0x58]
mov rax, qword [rbp + 0x60]
mov rdx, qword [rax]
mov qword [rcx], rdx
mov rax, qword [rax + 8]
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.140050100
add rsp, 0x20
lea rsp, [rbp + 0x90]
pop rbx
pop rdi
pop rsi
pop r14
pop rbp
ret
xor dh, ah
cmovne ebp, ecx
idiv r15b
invalid
dec byte [rsi - 0x13161608]
clc
invalid
imul ebx, dword [rdi - 0x2916dff7], 0x72fffff9
xchg dword [rbx], esi
notrack jmp 0x140051480
jb 0x14005190a
xor edi, dword [rsi]
jmp 0x140051480
in eax, 0x24
cmpsd dword [rsi], dword [rdi]
js 0x140051978
cmpsb byte [rsi], byte [rdi]
std
invalid
sal dword [rdx], 1
adc byte [rcx + rbp*8 - 0x114], dl
nop dword [rax]