Function at 0x1400308e0
Capabilities:
Encode data using xor

Disassembly:
push rsi
sub rsp, 0x80
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rcx
mov rax, qword [rcx]
mov qword [rsp + 0x78], rax
cmp rax, rdx
jle 0x140030917
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
call fcn.140030460
jmp 0x140030d5d
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x68]
cmp rax, rcx
jge 0x140030d5d
mov eax, dword [0x140201a68]
mov r8d, dword [0x140201a6c]
mov r9d, r8d
xor r9d, 0xffffffff
mov edx, eax
and edx, r9d
mov ecx, eax
or ecx, r9d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, r8d
or eax, r8d
imul eax, edx
add eax, ecx
mov edx, 0xa05d5986
xor edx, 0x5fa2a679
mov ecx, eax
xor ecx, edx
mov edx, 0xb3160090
xor edx, 0xc854fcae
mov r8d, 0xacd13f15
xor r8d, 0x532ec0ea
xor edx, r8d
or ecx, edx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x7b42fc3e
or eax, edx
xor ecx, 0xffffffff
xor eax, 0xffffffff
or ecx, eax
or ecx, 0x5ce32ae2
mov edx, 0xffffffff
xor edx, 0x4bd1ce5
mov eax, ecx
xor eax, edx
and eax, ecx
cmp eax, 0x727fc0cd
je 0x140030d67
mov rcx, qword [rsp + 0x70]
mov eax, dword [0x140201a70]
mov edx, dword [0x140201a74]
xor edx, 0xb62f60a5
and eax, edx
mov r8d, 0xfd47cb2f
xor edx, edx
div r8d
mov esi, eax
or esi, esi
xor esi, 0xffffffff
mov eax, 0xffffffff
xor eax, 0x6312ce19
mov edx, 0xffffffff
xor edx, 0x6312ce19
and eax, edx
xor esi, 0xffffffff
xor eax, 0xffffffff
and esi, eax
mov eax, 0x296013b9
xor eax, 0xd69fec46
mov edx, esi
xor edx, eax
mov r9d, 0xffffffff
xor r9d, 0x96e4a731
mov r8d, 0xffffffff
xor r8d, 0xa4bf0b67
mov eax, edx
and eax, 0xa4bf0b67
and esi, r8d
mov r10d, r9d
and r10d, 0xa4bf0b67
mov r11d, r8d
and r11d, 0x96e4a731
or eax, esi
or r10d, r11d
xor eax, r10d
or edx, r9d
xor edx, 0xffffffff
or r8d, 0xa4bf0b67
and edx, r8d
or eax, edx
mov rdx, rcx
add rdx, 8
mov qword [rsp + 0x50], rdx
mov rcx, qword [rcx + 8]
mov qword [rsp + 0x58], rcx
cmp rcx, 0
sete cl
mov byte [rsp + 0x67], cl
cmp eax, 0x379047af
jb 0x1400309c1
mov al, byte [rsp + 0x67]
test al, 1
jne 0x140030ae1
jmp 0x140030aa7
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x58]
mov rax, qword [rax]
movabs r8, 0xbfffffffffffffff
mov rdx, rax
xor rdx, r8
xor rdx, 0xffffffffffffffff
movabs r8, 0xbfffffffffffffff
or rax, r8
and rax, rdx
cmp rax, rcx
jge 0x140030c04
mov r8, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x68]
mov rdx, rcx
sub rdx, r8
mov qword [rsp + 0x48], rdx
mov rax, rdx
xor rax, rcx
cmp rax, 0
setl cl
movabs r9, 0x3201792ac37b1b6a
movabs rax, 0xcdfe86d53c84e495
xor r9, rax
mov rax, rdx
xor rax, r9
movabs r10, 0x4e36968915b85163
movabs r9, 0xb1c96976ea47ae9c
xor r10, r9
mov r9, rdx
xor r9, r10
and rax, r9
movabs r10, 0x23eb4305a0c24703
movabs r9, 0xdc14bcfa5f3db8fc
xor r10, r9
mov r9, r8
xor r9, r10
mov r10, r8
xor r10, 0xffffffffffffffff
and r9, r10
or rax, r9
movabs r9, 0xfa43eb406900a5c1
movabs r10, 0x5bc14bf96ff5a3e
xor r9, r10
xor rax, r9
xor rdx, 0xffffffffffffffff
movabs r9, 0x726bfeb78f3aa95a
movabs r10, 0x8d94014870c556a5
xor r9, r10
xor r8, r9
and rdx, r8
or rax, rdx
xor rax, 0xffffffffffffffff
cmp rax, 0xffffffffffffffff
setg dl
xor eax, eax
xor al, 1
xor dl, al
mov al, cl
xor al, dl
and al, cl
test al, 1
jne 0x140030bfa
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x78]
mov r9d, 0x10
mov qword [rsp + 0x20], 8
call fcn.140011d90
mov rcx, rax
mov rax, qword [rsp + 0x50]
mov qword [rax], rcx
jmp 0x140030c04
call fcn.140007f57
jmp 0x140030d5d
mov rax, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
mov rdx, qword [rsp + 0x68]
mov qword [rcx], rdx
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x38], rax
mov eax, dword [0x140201a78]
add eax, dword [0x140201a7c]
imul eax, eax, 0xdeded68e
and eax, 0x94c681e1
xor ecx, ecx
sub ecx, 0x30b29ae2
sub eax, ecx
cmp eax, 0x945eeac8
je 0x140030d70
mov rcx, qword [rsp + 0x38]
mov eax, dword [0x140201a80]
mov r8d, dword [0x140201a84]
xor r8d, 0x314e6f49
xor edx, edx
div r8d
mov rdx, qword [rsp + 0x68]
xor eax, 0xb226dec4
mov r8d, 0x32d3d5b4
xor r8d, 0xe842f5bd
add eax, r8d
sub eax, 0xc3d42fce
sub eax, 0xda912009
xor eax, 0xe0c74980
cmp rcx, rdx
setl cl
mov byte [rsp + 0x37], cl
cmp eax, 0x5e7fe95a
ja 0x140030c51
mov al, byte [rsp + 0x37]
test al, 1
jne 0x140030cbe
jmp 0x140030d5d
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x50]
mov rcx, qword [rcx]
add rcx, 8
shl rax, 4
add rcx, rax
mov edx, 0x10
call fcn.1400083d0
mov rcx, qword [rsp + 0x38]
mov rax, rcx
add rax, 1
mov r8, rcx
and r8, r8
xor r8, 0xffffffffffffffff
and r8, 0xffffffffffffffff
xor r8, 0xffffffffffffffff
mov rdx, 0xffffffffffffffff
and rdx, 0xffffffffffffffff
movabs r9, 0xe673b38e40d4974e
movabs r10, 0x198c4c71bf2b68b1
xor r9, r10
xor rdx, r9
xor rcx, 0xffffffffffffffff
xor rdx, 0xffffffffffffffff
or rcx, rdx
and r8, rcx
xor r8, 0xffffffffffffffff
mov rdx, rax
add rdx, 1
mov rcx, rax
xor rcx, 0xffffffffffffffff
or rcx, r8
add rcx, rdx
cmp rcx, 0
mov qword [rsp + 0x40], rax
jge 0x140030c1b
call fcn.140007f57
nop
add rsp, 0x80
pop rsi
ret
push rdi
cmp dh, ch
adc ecx, ebp
push rcx
cld
invalid
adc dh, byte [rdi + 0x6c]
mov esi, 0xfffed8e9
dec dword [rax - 0x7d]
sub rsp, 0x38
mov qword [rsp + 0x30], rdx
sub rsp, 0x38
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rcx
xor eax, eax
mov edx, eax
call fcn.140030460
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x30]
add rsp, 0x38
jmp 0x1400308e0