Function at 0x14014f350
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rsi, rcx
movzx ecx, byte [rcx]
mov eax, ecx
and al, 0xa
mov r8d, ecx
or r8b, 0xfa
add r8b, al
movzx eax, r8b
mov r8d, eax
and r8d, 1
mov r9, rax
xor r9, 1
xor r10d, r10d
cmp al, 4
lea r9, [r9 + r8*2]
cmovae r9, r10
mov rdi, rdx
movzx edx, byte [rdx]
lea r8d, [rdx - 6]
movzx r11d, r8b
lea rax, [r11 + 1]
cmp r11b, 4
cmovae rax, r10
nop word [rax + rax]
mov r10d, dword [0x1415c29f8]
add r10d, dword [0x1415c29fc]
mov r11d, r10d
xor r11d, 0xeb811ae0
add r11d, r10d
and r10d, 0x147ee51f
sub r11d, r10d
imul r10d, r11d, 0xe087f618
and r10d, 0xcac61018
cmp r10d, 0xf3ff6894
ja 0x14014f3b0
cmp r9, rax
jne 0x14014f71a
nop word cs:[rax + rax]
mov eax, dword [0x1415c2a00]
mov r10d, dword [0x1415c2a04]
not eax
not r10d
and r10d, eax
mov eax, r10d
or eax, 0x2a4b0b32
sub eax, r10d
imul rax, rax, 0x1f874891
shr rax, 0x3b
mov r10d, eax
not r10d
or eax, 0x253ef1e1
or r10d, 0xdac10e1e
and r10d, eax
cmp r10d, 0x457fbb9
jb 0x14014f400
mov al, 1
cmp r9, 4
jge 0x14014f76d
test r9, r9
jne 0x14014f720
nop
mov r9d, dword [0x1415c2a10]
imul r9d, dword [0x1415c2a14]
lea r10d, [r9 + 0x199aca24]
mov r11d, r10d
and r11d, 0xab906204
xor r10d, 0x546f9dfb
add r9d, r10d
add r9d, 0x199aca24
sub r9d, r11d
xor r9d, 0xe4d208a0
cmp r9d, 0xb96cf33d
ja 0x14014f460
cmp r8b, 4
jb 0x14014f720
nop
mov eax, dword [0x1415c2a18]
mov r8d, dword [0x1415c2a1c]
not eax
not r8d
and r8d, eax
not r8d
mov eax, r8d
or eax, 0x8200a053
and eax, 0xb648f65b
or r8d, 0xfefcff5f
add r8d, eax
imul eax, r8d, 0x50bd10bc
cmp eax, 0x3db6f9a6
jb 0x14014f4b0
nop dword [rax]
mov eax, dword [0x1415c2a20]
imul eax, dword [0x1415c2a24]
xor eax, 0xa094aa14
add eax, 0x9dc6b4d2
xor eax, 0xe8ad4cf4
cmp eax, 0x5451c70
jb 0x14014f4f0
cmp cl, dl
jne 0x14014f8d4
mov eax, 0xc9ee7ea7
mov edx, dword [0x1415c2a28]
or edx, dword [0x1415c2a2c]
imul rdx, rax
shr rdx, 0x3d
mov r8d, edx
not r8d
or edx, 0xc3d3868a
or r8d, 0x80518485
and r8d, edx
cmp r8d, 0x65b8e64e
jb 0x14014f520
nop word cs:[rax + rax]
mov eax, dword [0x1415c2a30]
mov edx, dword [0x1415c2a34]
not edx
mov r8d, eax
or r8d, edx
and edx, eax
not edx
and edx, r8d
mov eax, edx
not eax
xor edx, 0xdae4d96e
or eax, 0xdae4d96e
and eax, edx
add eax, 0x5f8f96da
mov edx, eax
xor edx, 0x3fc6ee6a
or eax, 0xc0391195
and eax, edx
cmp eax, 0x98be8d1d
je 0x14014f560
cmp rcx, 3
jge 0x14014f8db
test rcx, rcx
jle 0x14014fc0e
cmp rcx, 2
jge 0x14014fcfc
mov eax, dword [0x1415c2a60]
or eax, dword [0x1415c2a64]
add eax, 0x2be048ee
xor eax, 0x62b2aa4a
cmp eax, 0xb1caeee0
jb 0x14014f5c4
mov rbx, qword [rsi + 0x10]
mov eax, dword [0x1415c2a68]
xor edx, edx
div dword [0x1415c2a6c]
mov eax, dword [0x1415c2a70]
xor edx, edx
div dword [0x1415c2a74]
add eax, 0xd6e704cb
not eax
or eax, 0xafd512dc
and eax, 0xfff5bffd
cmp eax, 0xf232b68a
je 0x14014f5f3
mov rax, qword [rdi + 0x10]
mov ecx, dword [0x1415c2a78]
mov edx, dword [0x1415c2a7c]
mov r8d, edx
not r8d
and r8d, ecx
xor edx, ecx
add edx, ecx
sub edx, r8d
add edx, 0x51705133
mov ecx, edx
not ecx
and ecx, 0x6b8bbad8
and edx, 0x94744527
sub edx, ecx
imul rcx, rdx, 0x34a49ed
shr rcx, 0x38
cmp ecx, 0x7cff59a5
ja 0x14014f61d
cmp rbx, rax
jne 0x14014fe49
mov ecx, dword [0x1415c2a80]
mov eax, dword [0x1415c2a84]
mov edx, eax
not edx
and edx, ecx
xor eax, ecx
add eax, ecx
sub eax, edx
mov ecx, eax
or ecx, 0xd9c6afb7
mov edx, ecx
not edx
mov r8d, ecx
and r8d, 0xe513db36
and edx, 0x1aec24c9
imul edx, r8d
and ecx, 0x1aec24c9
or eax, 0xdbeeafff
imul eax, ecx
add eax, edx
mov ecx, 0xa721146b
imul rcx, rax
shr rcx, 0x3f
cmp ecx, 0x847d1000
jbe 0x14014f6da
mov rdx, qword [rdi + 8]
mov rcx, qword [rsi + 8]
mov r8, rbx
call fcn.140219be0
mov eax, dword [0x1415c2a88]
mov ecx, dword [0x1415c2a8c]
mov edx, eax
and edx, ecx
add edx, edx
add eax, ecx
sub eax, edx
imul ebp, eax, 0x8275f8bb
mov rdx, qword [rdi + 8]
mov rcx, qword [rsi + 8]
mov r8, rbx
call fcn.14022b090
cmp ebp, 0xfb474502
je 0x14014f6da
test eax, eax
je 0x14014fe57
xor eax, eax
jmp 0x14014f720
xor eax, eax
nop dword [rax]
mov ecx, dword [0x1415c2a08]
mov edx, dword [0x1415c2a0c]
xor edx, ecx
not edx
and edx, ecx
mov ecx, edx
and ecx, 0x789d8b19
add ecx, ecx
neg ecx
add ecx, edx
add ecx, 0x32a54c73
imul rdx, rcx, 0x13b289cf
shr rdx, 0x20
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0x1f
cmp ecx, 0x65464710
ja 0x14014f720
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
cmp r9d, 4
jne 0x14014f720
nop word cs:[rax + rax]
mov eax, dword [0x1415c2b20]
xor edx, edx
div dword [0x1415c2b24]
and eax, 0x7aed182f
cmp eax, 0x9d19fea6
je 0x14014f780
mov rbx, qword [rsi + 0x10]
mov rcx, qword [rdi + 0x10]
nop word cs:[rax + rax]
mov eax, dword [0x1415c2b28]
xor edx, edx
div dword [0x1415c2b2c]
mov edx, eax
xor edx, 0x8e056798
add edx, eax
and eax, 0x71fa9867
sub edx, eax
add edx, 0x8c0c978d
xor edx, 0x8e8321d3
cmp edx, 0xb15aa582
ja 0x14014f7b0
cmp rbx, rcx
jne 0x14014f8cd
mov rdi, qword [rdi + 8]
mov eax, dword [0x1415c2b30]
mov ecx, dword [0x1415c2b34]
mov edx, eax
xor edx, ecx
not ecx
and ecx, eax
add ecx, ecx
sub ecx, edx
imul rax, rcx, 0x146ac6e7
shr rax, 0x39
mov ecx, eax
and ecx, 0xfffffffc
xor eax, 0xd3ebe9c
or eax, ecx
imul eax, eax, 0x8aedf659
cmp eax, 0x25ca3f55
je 0x14014f7f0
mov rsi, qword [rsi + 8]
mov eax, dword [0x1415c2b38]
add eax, dword [0x1415c2b3c]
imul rax, rax, 0x3ef8b27b
shr rax, 0x3c
or eax, 0x5d545686
imul rax, rax, 0x32087563
shr rax, 0x3b
cmp eax, 0x1304d205
jbe 0x14014f870
mov rcx, rsi
mov rdx, rdi
mov r8, rbx
call fcn.140219be0
nop dword [rax]
mov ecx, dword [0x1415c2b40]
mov eax, dword [0x1415c2b44]
not ecx
not eax
or eax, ecx
not eax
imul rcx, rax, 0x1fba9011
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1b
lea ebp, [rax + 0x4004b860]
not eax
and eax, 0x88800489
and ebp, 0x4004b876
or ebp, eax
mov rcx, rsi
mov rdx, rdi
mov r8, rbx
call fcn.14022b090
test eax, eax
sete al
cmp ebp, 0x31ec56c2
je 0x14014f870
jmp 0x14014f720
xor eax, eax
jmp 0x14014f720
xor eax, eax
jmp 0x14014f720
jg 0x14014fa09
mov rbx, qword [rsi + 0x10]
mov eax, dword [0x1415c2a9c]
add eax, dword [0x1415c2a98]
mov ecx, eax
or ecx, 0xf6d73953
not eax
or eax, 0x2884ac
and eax, ecx
mov ecx, eax
not ecx
mov edx, ecx
or edx, 0xe9d35b12
and eax, 0x4282420
mov r8d, edx
and r8d, 0x9344c2cd
imul r8d, eax
and edx, 0x6cbb3d32
or ecx, 0xedfb7f32
imul ecx, edx
add ecx, r8d
cmp ecx, 0xa64bc3ef
ja 0x14014f8e5
cmp rbx, qword [rdi + 0x10]
jne 0x14014fd47
mov rdi, qword [rdi + 8]
mov eax, dword [0x1415c2aa0]
mov ecx, dword [0x1415c2aa4]
add eax, ecx
add eax, 0xa99e50b8
mov ecx, eax
xor ecx, 0x17dcb477
and ecx, eax
mov eax, ecx
and eax, 0x6b3f6242
add eax, eax
neg eax
add eax, ecx
add eax, 0x6b3f6242
cmp eax, 0x638fbd99
ja 0x14014f949
mov rsi, qword [rsi + 8]
mov eax, dword [0x1415c2aa8]
xor edx, edx
div dword [0x1415c2aac]
mov ecx, eax
xor ecx, 0x563a3ce4
and ecx, eax
xor ecx, 0x1a77a475
add ecx, 0xcdeb2899
cmp ecx, 0x64955b7d
jae 0x14014f9bd
mov rcx, rsi
mov rdx, rdi
mov r8, rbx
call fcn.14022b090
mov eax, dword [str.8fpV]
add eax, dword [0x1415c2ab4]
imul rax, rax, 0x57a4231b
shr rax, 0x3e
imul eax, eax, 0x8120236d
mov ecx, eax
not ecx
or ecx, 0x233953b2
lea ebp, [rax + rcx]
inc ebp
mov rcx, rsi
mov rdx, rdi
mov r8, rbx
call fcn.14022b090
test eax, eax
sete al
cmp ebp, 0x97959be1
ja 0x14014f9bd
jmp 0x14014f720
cmp rcx, 5
jge 0x14014fd4e
mov eax, dword [0x1415c2ab8]
mov ecx, eax
not ecx
or ecx, dword [0x1415c2abc]
add eax, ecx
inc eax
xor eax, 0xbf77599d
imul rax, rax, 0x4938115d
shr rax, 0x3d
and eax, 0xfffffffe
cmp eax, 0xa6522b35
ja 0x14014fa13
mov rbx, qword [rsi + 0x10]
mov rcx, qword [rdi + 0x10]
mov eax, dword [0x1415c2ac0]
xor edx, edx
div dword [0x1415c2ac4]
add eax, 0xbdcf545f
imul rax, rax, 0x7f2d4b5d
shr rax, 0x3e
imul eax, eax, 0xd709280a
cmp eax, 0x755db8ff
jb 0x14014fa49
cmp rbx, rcx
jne 0x14014fe50
mov eax, dword [0x1415c2ac8]
imul eax, dword [0x1415c2acc]
mov ecx, eax
not ecx
and ecx, 0xd1c58f01
mov edx, eax
and edx, 0x2e3a70fe
imul edx, ecx
mov ecx, eax
and ecx, 0xd1c58f01
or eax, 0xd1c58f01
imul eax, ecx
add eax, edx
add eax, 0x24616a8
shr eax, 2
imul rax, rax, 0x40212931
shr rax, 0x3c
cmp eax, 0x19e776de
ja 0x14014fa7d
mov r14, qword [rdi + 8]
mov eax, dword [0x1415c2ad0]
add eax, dword [0x1415c2ad4]
mov ecx, eax
not ecx
or ecx, 0x128edbc9
add eax, ecx
inc eax
and eax, 0x301d5961
imul rcx, rax, 0x209836c9
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
cmp eax, 0x87a46abe
jne 0x14014fb18
mov rcx, qword [rsi + 8]
mov rdx, r14
mov r8, rbx
call fcn.14022b090
mov ebp, dword [0x1415c2ad8]
sub ebp, dword [0x1415c2adc]
mov eax, ebp
not eax
and eax, 0x5fb43533
mov ecx, ebp
and ecx, 0x204bcacc
imul ecx, eax
mov eax, ebp
and eax, 0x5fb43533
or ebp, 0x5fb43533
imul ebp, eax
add ebp, ecx
mov eax, ebp
not eax
or eax, 0x968f295d
or ebp, 0xfc263539
and ebp, eax
and ebp, 0xfeaf3d7d
mov rcx, qword [rsi + 8]
mov rdx, r14
mov r8, rbx
call fcn.14022b090
cmp ebp, 0xb3668afc
je 0x14014fb18
test eax, eax
je 0x14014fb83
xor eax, eax
jmp 0x14014f720
mov eax, dword [0x1415c2b00]
or eax, dword [0x1415c2b04]
add eax, 0xb528a72
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xc59001a4
and ecx, 0x3a6ffe5b
imul ecx, edx
mov edx, eax
and edx, 0x3a6ffe5b
or eax, 0x3a6ffe5b
imul eax, edx
add eax, ecx
add eax, 0x658f2e81
cmp eax, 0x65a63048
jb 0x14014fb83
mov rbx, qword [rsi + 0x20]
cmp rbx, qword [rdi + 0x20]
jne 0x14014fec1
mov eax, dword [0x1415c2b08]
xor edx, edx
div dword [0x1415c2b0c]
mov eax, dword [0x1415c2b10]
xor eax, dword [0x1415c2b14]
add eax, 0x2f248484
cmp eax, 0x2c0a2214
jb 0x14014fbe3
mov rdi, qword [rdi + 0x18]
xor eax, eax
test al, al
je 0x14014fec8
jmp 0x14014ff0a
mov eax, 0x898e827b
mov ecx, dword [0x1415c2a40]
sub ecx, dword [0x1415c2a44]
and ecx, 0xf8c0c799
add ecx, 0x70d1fb08
imul rcx, rax
shr rcx, 0x3f
cmp ecx, 0x52ca5397
ja 0x14014fc13
mov eax, dword [0x1415c2a4c]
mov ecx, eax
xor ecx, eax
not ecx
and ecx, dword [0x1415c2a48]
xor ecx, eax
add ecx, 0x77ec17e1
mov eax, ecx
xor eax, 0x9d24204f
xor ecx, 0x200900b0
and ecx, 0x601b10b0
and eax, 0x9fe4ef4f
sub eax, ecx
cmp eax, 0x455fa7c
jb 0x14014fc3b
mov rbx, qword [rsi + 0x10]
cmp rbx, qword [rdi + 0x10]
jne 0x14014fe42
mov eax, dword [0x1415c2a50]
imul eax, dword [0x1415c2a54]
imul eax, eax, 0xc73172be
or eax, 0x11be7fbc
cmp eax, 0x416a3db
je 0x14014fc84
mov eax, dword [0x1415c2a58]
xor eax, dword [0x1415c2a5c]
and eax, 0x3fffffff
add eax, 0xe5091fab
or eax, 0xdb6aef97
imul eax, eax, 0x5c000ced
cmp eax, 0x324cf0da
jae 0x14014fcdb
mov rdx, qword [rdi + 8]
mov rcx, qword [rsi + 8]
mov r8, rbx
call fcn.14022b090
xor ebp, ebp
mov rdx, qword [rdi + 8]
mov rcx, qword [rsi + 8]
mov r8, rbx
call fcn.140219be0
test bpl, bpl
jne 0x14014fcdd
test eax, eax
sete al
jmp 0x14014f720
xor eax, eax
test al, al
jne 0x14014fcfe
mov ecx, 0xa10940b9
mov edx, dword [0x1415c2a90]
sub edx, dword [0x1415c2a94]
add edx, 0x6bd808c7
mov eax, edx
and eax, 0xe653b1e9
or edx, 0xe653b1e9
add edx, eax
imul rdx, rcx
shr rdx, 0x3f
movzx eax, byte [rsi + 1]
cmp al, byte [rdi + 1]
sete al
cmp edx, 0x84eb5fc3
jae 0x14014fd07
jmp 0x14014f720
xor eax, eax
jmp 0x14014f720
cmp ecx, 5
jne 0x14014fe18
mov eax, 0x84ea2901
mov ecx, dword [0x1415c2ae0]
xor ecx, dword [0x1415c2ae4]
mov rdx, rcx
imul rdx, rax
shr rdx, 0x20
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0x1d
or ecx, 0xcb247f18
imul rdx, rcx, 0x2ea4713
shr rdx, 0x20
sub ecx, edx
shr ecx, 1
add ecx, edx
shr ecx, 0x1f
cmp ecx, 0x4dfb3c6a
je 0x14014fd5c
mov eax, dword [0x1415c2ae8]
mov ecx, dword [0x1415c2aec]
mov edx, eax
and edx, ecx
add edx, edx
add eax, ecx
sub eax, edx
mov ecx, eax
xor ecx, 0x1c010310
and ecx, eax
xor ecx, 0xb4200350
or ecx, 0x43cebcaf
cmp ecx, 0x24f0214a
jb 0x14014fd9e
movzx ecx, byte [rsi + 1]
movzx edx, byte [rdi + 1]
mov eax, dword [0x1415c2af0]
or eax, dword [0x1415c2af4]
xor eax, 0x1e92675
mov r8d, eax
and r8d, 0x213aad5b
add r8d, r8d
neg r8d
add r8d, eax
add r8d, 0xa13aad5b
cmp cl, dl
sete al
cmp r8d, 0xad49926
jb 0x14014fdda
jmp 0x14014f720
mov eax, dword [0x1415c2a38]
add eax, dword [0x1415c2a3c]
or eax, 0xa0220ec7
imul rax, rax, 0x47ec29c7
shr rax, 0x3c
or eax, 0x283cee3
cmp eax, 0x410977c0
je 0x14014fe18
ud2
xor eax, eax
jmp 0x14014f720
xor eax, eax
jmp 0x14014f720
xor eax, eax
jmp 0x14014f720
xor eax, eax
test al, al
jne 0x14014fe59
mov r8, qword [rsi + 0x20]
cmp r8, qword [rdi + 0x20]
jne 0x14014feba
mov rdx, qword [rdi + 0x18]
mov rcx, qword [rsi + 0x18]
call fcn.14022b090
test eax, eax
sete al
mov ecx, dword [0x1415c2af8]
mov edx, dword [0x1415c2afc]
not ecx
not edx
or edx, ecx
not edx
add edx, 0x5ef05707
mov ecx, edx
not ecx
and ecx, 0x2bacb5c0
and edx, 0x14534a3f
sub edx, ecx
not edx
and edx, 0x3c959e05
add edx, 0xe5d40424
jae 0x14014fe79
jmp 0x14014f720
xor eax, eax
jmp 0x14014f720
xor eax, eax
jmp 0x14014f720
mov eax, dword [0x1415c2b18]
or eax, dword [0x1415c2b1c]
or eax, 0xe3706fe2
mov ebp, eax
xor ebp, 0x781360f
add ebp, eax
and eax, 0xf87ec9f0
sub ebp, eax
mov rcx, qword [rsi + 0x18]
mov rdx, rdi
mov r8, rbx
call fcn.14022b090
test eax, eax
sete al
cmp ebp, 0x6fde5e6d
jne 0x14014f720
mov rcx, qword [rsi + 0x18]
mov rdx, rdi
mov r8, rbx
call fcn.14022b090
jmp 0x14014fec8