Function at 0x1400403c0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x98
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x58], rcx
call fcn.14003e60a
mov rdx, qword [rsp + 0x50]
mov rcx, rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x60], rcx
mov r8, qword [rax]
mov qword [rsp + 0x68], r8
mov rcx, qword [rdx]
mov qword [rsp + 0x70], rcx
mov r9, r8
sub r9, rcx
cmovl rcx, r8
add rax, 8
mov qword [rsp + 0x78], rax
add rdx, 8
mov qword [rsp + 0x80], rdx
xor eax, eax
test rcx, rcx
cmovg rax, rcx
mov qword [rsp + 0x88], rax
xor eax, eax
mov qword [rsp + 0x90], rax
mov rcx, qword [rsp + 0x88]
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x48], rax
cmp rax, rcx
je 0x140040755
mov eax, dword [0x140242df0]
mov ecx, dword [0x140242df4]
sub eax, 0xfb7a3c36
add eax, ecx
add eax, 0xfb7a3c36
mov ecx, 0x38c39b72
xor ecx, 0xb1c4bfe5
xor edx, edx
div ecx
mov ecx, 0xaa7212f3
xor ecx, 0x29ec7e08
xor eax, ecx
sub eax, 0x439d440
cmp eax, 0xa112a7e6
je 0x1400407d9
mov r8, qword [rsp + 0x68]
mov ecx, dword [0x140242df8]
xor ecx, 0xf03af456
imul ecx, dword [0x140242dfc]
mov eax, ecx
and eax, 0xe62deeda
xor ecx, 0xe62deeda
or eax, ecx
add eax, 0x55de5a5d
mov ecx, 0xe3674562
xor edx, edx
div ecx
mov rdx, qword [rsp + 0x48]
mov ecx, 0x275c92b9
xor ecx, 0xd6eed855
cmp rdx, r8
setl dl
mov byte [rsp + 0x47], dl
cmp eax, ecx
ja 0x140040494
mov al, byte [rsp + 0x47]
test al, 1
jne 0x140040636
jmp 0x1400404fc
mov eax, dword [0x140242e00]
mov ecx, 0x2f2e10c1
xor ecx, 0x583c35b2
xor eax, ecx
xor edx, edx
div dword [0x140242e04]
sub eax, 0x68c08620
sub eax, 0x247c118c
mov ecx, 0x54d91750
xor ecx, 0x3c199170
add eax, ecx
mov ecx, 0xd6f5667
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
and eax, eax
xor eax, 0xffffffff
and eax, 0xfcec6824
mov edx, 0x3edfbffe
xor edx, 0xc1204001
xor eax, edx
mov edx, 0xffffffff
xor edx, 0xfcec6824
mov r8d, 0xffffffff
xor r8d, 0xfcec6824
or edx, r8d
xor ecx, 0xffffffff
xor edx, 0xffffffff
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
mov ecx, 0x72e7885d
xor ecx, 0xe6cda3b4
cmp eax, ecx
jb 0x1400407e2
mov rcx, qword [rsp + 0x48]
mov eax, dword [0x140242e08]
or eax, dword [0x140242e0c]
sub eax, 0xa32c11a0
mov r8d, 0x75aa1a5
xor edx, edx
div r8d
mov rdx, qword [rsp + 0x68]
mov r8d, eax
mov eax, r8d
or eax, 0x7b7f2663
xor eax, 0xffffffff
mov r9d, 0x286a524d
xor r9d, 0xd795adb2
xor r8d, r9d
mov r9d, 0xffffffff
xor r9d, 0x7b7f2663
and r8d, r9d
mov r9d, 0x2222c5ad
xor r9d, 0xdddd3a52
xor eax, r9d
xor r8d, 0xffffffff
and eax, r8d
mov dword [rsp + 0x40], eax
movabs rax, 0x19fdfd978d1ab1b1
movabs r8, 0xe602026872e54e4e
xor rax, r8
add rdx, rax
call fcn.140012b72
mov eax, dword [rsp + 0x40]
cmp eax, 0xd36c30f3
je 0x1400407e2
xor eax, eax
mov qword [rsp + 0x38], rax
jmp 0x1400407cc
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x78]
mov rax, qword [rax]
mov al, byte [rax + rcx + 8]
mov byte [rsp + 0x36], al
mov cl, 0xae
xor cl, 0x11
mov dl, al
and dl, cl
shl dl, 1
mov r8b, 0xc5
xor r8b, 0x7a
mov cl, al
xor cl, r8b
add cl, dl
add al, 0x20
cmp cl, 0x1a
mov byte [rsp + 0x37], al
jb 0x14004067c
mov al, byte [rsp + 0x36]
mov byte [rsp + 0x37], al
mov rcx, qword [rsp + 0x60]
mov al, byte [rsp + 0x37]
mov byte [rsp + 0x35], al
xor eax, eax
cmp byte [rcx], 0
mov qword [rsp + 0x38], rax
jne 0x1400407cc
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x70]
cmp rax, rcx
jl 0x1400406da
mov rcx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x70]
xor eax, eax
sub rax, rdx
xor edx, edx
sub rdx, 0xffffffffffffffff
add rax, rdx
xor edx, edx
sub rdx, rax
call fcn.140012b72
xor eax, eax
mov qword [rsp + 0x38], rax
jmp 0x1400407cc
mov rcx, qword [rsp + 0x48]
mov rax, qword [rsp + 0x80]
mov dl, byte [rsp + 0x35]
movzx edx, dl
mov qword [rsp + 0x28], rdx
mov rax, qword [rax]
mov al, byte [rax + rcx + 8]
mov byte [rsp + 0x33], al
mov cl, al
add cl, 0xbf
add al, 0x20
cmp cl, 0x1a
mov byte [rsp + 0x34], al
jb 0x14004071a
mov al, byte [rsp + 0x33]
mov byte [rsp + 0x34], al
mov rax, qword [rsp + 0x28]
mov cl, byte [rsp + 0x34]
movzx ecx, cl
mov edx, ecx
xor ecx, ecx
sub rcx, rdx
add rax, rcx
cmp rax, 0
mov qword [rsp + 0x38], rax
jne 0x1400407cc
mov rax, qword [rsp + 0x48]
add rax, 1
mov qword [rsp + 0x90], rax
jmp 0x140040432
mov r8, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x68]
mov rax, rdx
sub rax, r8
mov rcx, rax
xor rcx, rdx
movabs rdx, 0xedbb93f691954a41
movabs r9, 0xedbb93f691954a41
xor rdx, r9
cmp rcx, rdx
setl cl
mov rdx, rax
xor rdx, r8
movabs r8, 0xcec663c38fe38fb0
movabs r9, 0x31399c3c701c704f
xor r8, r9
cmp rdx, r8
setg dl
and cl, dl
test cl, 1
mov qword [rsp + 0x38], rax
jne 0x1400407c0
jmp 0x1400407cc
call fcn.140008d37
xor eax, eax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
add rsp, 0x98
ret
rcl dword [rsp + rdi*4]
xchg ebp, eax
jmp 0x140040494
jae 0x140040841
and eax, 0xfda2e9cc
invalid
rol byte [rbx - 0x5460010], 0x55
ret 0x8164