Function at 0x14012d5f0
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rsi, rcx
mov rax, qword [rcx]
cmp rax, 3
jne 0x14012d65d
mov rax, qword [rsi + 8]
add rsi, 8
mov ecx, dword [0x141599ae8]
sub ecx, dword [0x141599aec]
add ecx, 0x90d3e49d
mov edx, ecx
not edx
and edx, 0xb93fd615
mov r8d, ecx
and r8d, 0x46c029ea
imul r8d, edx
mov edx, ecx
and edx, 0xb93fd615
or ecx, 0xb93fd615
imul ecx, edx
add ecx, r8d
cmp ecx, 0xbb431680
jbe 0x14012dc38
jmp 0x14012dc91
xor ecx, ecx
nop
test cl, cl
jne 0x14012d660
nop word cs:[rax + rax]
mov ecx, dword [str.Y_ue]
mov edx, dword [0x141599b24]
mov r8d, ecx
and r8d, edx
xor ecx, edx
lea ecx, [rcx + r8*2]
mov edx, ecx
not edx
and ecx, 0x88018a8a
or edx, 0x11446120
and edx, 0x57747124
or edx, ecx
mov ecx, edx
not ecx
xor edx, 0x9dc7bd27
add edx, ecx
and ecx, 0x8c839c07
sub edx, ecx
cmp edx, 0x569b6bd3
jb 0x14012d670
cmp eax, 2
jb 0x14012ddf0
mov rcx, qword [rsi + 8]
mov eax, ecx
and eax, 3
mov edx, 0xf87bac5f
nop word cs:[rax + rax]
mov r8d, dword [0x141599b28]
mov r9d, dword [0x141599b2c]
not r8d
not r9d
and r9d, r8d
not r9d
add r9d, 0x8dd761e7
imul r9, rdx
shr r9, 0x3c
or r9d, 0x3ee861e1
cmp r9d, 0x1a75db1a
jb 0x14012d6e0
cmp rax, 2
jg 0x14012db60
cmp eax, 1
jne 0x14012ddf0
lea rsi, [rcx - 1]
mov eax, dword [0x141599b48]
xor edx, edx
div dword [0x141599b4c]
or eax, 0xf7ffffdf
cmp eax, 0x744b4d85
jb 0x14012d730
mov rdi, qword [rcx - 1]
mov rbx, qword [rcx + 7]
mov rax, qword [rbx]
test rax, rax
je 0x14012d800
mov rcx, rdi
call rax
nop word cs:[rax + rax]
mov eax, dword [0x141599b50]
and eax, dword [0x141599b54]
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xd419359e
and ecx, 0x2be6ca61
imul ecx, edx
mov edx, eax
and edx, 0x2be6ca61
or eax, 0x2be6ca61
imul eax, edx
add eax, ecx
mov ecx, eax
not ecx
mov edx, eax
and edx, 0x805adf4e
and ecx, 0x7fa520b1
imul ecx, edx
mov edx, eax
and edx, 0x7fa520b1
or eax, 0x7fa520b1
imul eax, edx
add eax, ecx
mov ecx, eax
not ecx
mov edx, eax
and edx, 0xfb6685e8
and ecx, 0x4997a17
imul ecx, edx
mov edx, eax
and edx, 0x4997a17
or eax, 0x4997a17
imul eax, edx
add eax, ecx
cmp eax, 0xf55832ef
je 0x14012d770
nop dword [rax]
mov eax, dword [0x141599b58]
mov ecx, dword [0x141599b5c]
mov edx, eax
xor edx, ecx
not edx
or eax, ecx
and eax, edx
mov ecx, eax
and ecx, 0x95acf6
and eax, 0x48c54
xor ecx, 0xf364dc5c
or ecx, eax
mov eax, ecx
not eax
mov edx, ecx
and edx, 0xe2312ce4
and eax, 0x868112
imul eax, edx
mov edx, ecx
and edx, 0x11c4d01a
or ecx, 0x11c6d11a
imul ecx, edx
add ecx, eax
cmp ecx, 0x2a70594
jb 0x14012d800
nop word [rax + rax]
mov eax, dword [0x141599b60]
sub eax, dword [0x141599b64]
and eax, 0x54b4967d
add eax, 0x5bc112bf
cmp eax, 0xd9f28096
ja 0x14012d860
cmp qword [rbx + 8], 0
je 0x14012da0d
mov rax, qword [rbx + 0x10]
nop dword [rax]
mov ecx, dword [0x141599b68]
sub ecx, dword [0x141599b6c]
add ecx, 0x6f5d240f
cmp ecx, 0x6ee3e57d
jb 0x14012d890
nop word [rax + rax]
mov ecx, dword [0x141599b70]
imul ecx, dword [0x141599b74]
or ecx, 0x39e7d3d4
xor ecx, 0x88dd54da
add ecx, 0xb6059e0c
cmp ecx, 0x2600d5d5
jb 0x14012d8b0
cmp rax, 0x11
jb 0x14012d97f
nop word cs:[rax + rax]
mov eax, dword [0x141599b78]
sub eax, dword [0x141599b7c]
mov ecx, eax
not ecx
and ecx, 0x6868a4e7
mov edx, eax
and edx, 0x97975b18
imul edx, ecx
mov ecx, eax
and ecx, 0x6868a4e7
or eax, 0x6868a4e7
imul eax, ecx
add eax, edx
mov ecx, eax
and ecx, 0x4d66e312
add ecx, ecx
sub eax, ecx
add eax, 0x4d66e312
xor eax, 0xe2b86162
cmp eax, 0xb0497d0e
jb 0x14012d8f0
mov eax, dword [0x141599b80]
mov ecx, dword [0x141599b84]
mov edx, eax
not edx
and edx, ecx
not ecx
and ecx, eax
sub ecx, edx
mov eax, ecx
xor eax, 0x945c67f9
or ecx, 0x6ba39806
and ecx, eax
add ecx, 0x2fb071ce
or ecx, 0x52a3502e
cmp ecx, 0x35d50216
je 0x14012d940
mov rdi, qword [rdi - 8]
mov eax, dword [0x141599b8c]
mov ecx, eax
xor ecx, eax
not ecx
and ecx, dword [0x141599b88]
xor ecx, eax
imul eax, ecx, 0x266dff65
add eax, 0xfe5ff105
and eax, 0x15ebd194
cmp eax, 0x9ab79b88
jbe 0x14012d9bc
mov rcx, qword [0x1415acb98]
xor edx, edx
mov r8, rdi
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [sym.imp.KERNEL32.dll_HeapFree]
nop word cs:[rax + rax]
mov ebp, dword [str._X_bx]
and ebp, dword [0x141599b94]
add ebp, 0xe9c87606
xor ebp, 0x6508e114
mov eax, ebp
and eax, 0x15e000db
or ebp, 0x15e000db
add ebp, eax
mov rcx, qword [0x1415acb98]
xor edx, edx
mov r8, rdi
call rbx
cmp ebp, 0x15a521c9
jb 0x14012d9d0
mov eax, dword [0x141599b98]
mov ecx, dword [0x141599b9c]
mov edx, eax
and edx, ecx
xor eax, ecx
lea eax, [rax + rdx*2]
mov ecx, eax
and ecx, 0xd1a3124d
and eax, 0x1a0124c
add eax, eax
sub ecx, eax
add ecx, 0xc5bedf82
cmp ecx, 0xdda27cc4
jbe 0x14012da50
mov rax, qword [0x1415acb98]
nop dword [rax + rax]
mov eax, dword [0x141599ba0]
mov ecx, dword [0x141599ba4]
not eax
not ecx
or ecx, eax
xor ecx, 0xb32ad435
imul eax, ecx, 0x11b941ad
add eax, 0x190c4440
mov rdi, qword [0x1415acb98]
cmp eax, 0x669c7359
ja 0x14012da50
mov eax, dword [0x141599ba8]
mov ecx, dword [0x141599bac]
mov edx, eax
and edx, ecx
xor eax, ecx
lea eax, [rax + rdx*2]
mov ecx, eax
not ecx
and ecx, 0x81f1ba4e
mov edx, eax
and edx, 0x7e0e45b1
imul edx, ecx
mov ecx, eax
and ecx, 0x81f1ba4e
or eax, 0x81f1ba4e
imul eax, ecx
add eax, edx
imul eax, eax, 0x4bb9386e
or eax, 0x4a613a4
cmp eax, 0xd4d7c7cd
jbe 0x14012dadc
mov rcx, rdi
xor edx, edx
mov r8, rsi
call fcn.14020ae70
mov r14, qword [sym.imp.KERNEL32.dll_HeapFree]
nop word cs:[rax + rax]
mov eax, dword [0x141599bb0]
xor edx, edx
div dword [0x141599bb4]
mov ebx, eax
and ebx, 0x7c1f2b81
add ebx, 0xa660ad07
not ebx
and ebx, 0xe01179e0
mov rcx, rdi
xor edx, edx
mov r8, rsi
call r14
add ebx, 0xbfad1710
jb 0x14012daf0
nop word [rax + rax]
mov eax, dword [0x141599bb8]
or eax, dword [0x141599bbc]
mov ecx, eax
xor ecx, 0x2030c410
and ecx, eax
and ecx, 0x257cc470
cmp ecx, 0xa5a0eda2
je 0x14012db30
jmp 0x14012ddf0
mov eax, dword [str.7__De]
mov ecx, dword [0x141599b34]
mov edx, eax
not edx
and edx, ecx
not edx
not ecx
and ecx, eax
not ecx
and ecx, edx
mov eax, ecx
not eax
mov edx, eax
and edx, 0xee28b53
and ecx, 0xf11d74ac
imul ecx, edx
mov edx, eax
and edx, 0xf11d74ac
or eax, 0xf11d74ac
imul eax, edx
add eax, ecx
imul rax, rax, 0x4017bf25
shr rax, 0x3e
imul eax, eax, 0xcb3e1140
cmp eax, 0x65e46d64
ja 0x14012db60
nop dword [rax + rax]
mov eax, dword [0x141599b38]
xor edx, edx
div dword [0x141599b3c]
imul rax, rax, 0x4b19590d
shr rax, 0x3e
imul eax, eax, 0x57ae567f
mov ecx, eax
xor ecx, 0xf2ce656c
add ecx, eax
and eax, 0xd319a93
sub ecx, eax
cmp ecx, 0x5ce97d7a
je 0x14012dbc0
nop dword [rax + rax]
mov eax, dword [0x141599b40]
and eax, dword [0x141599b44]
mov ecx, eax
not ecx
or ecx, 0xcaa8a40e
add eax, ecx
add eax, 0x7ae8fa31
mov ecx, eax
xor ecx, 0x7dab2b95
or eax, 0x8254d46a
and eax, ecx
cmp eax, 0x9bb94fe3
jae 0x14012dc00
jmp 0x14012ddf0
mov ecx, dword [0x141599af0]
and ecx, dword [0x141599af4]
mov edx, ecx
not edx
and edx, 0x8289d51b
mov r8d, ecx
and r8d, 0x7d762ae4
imul r8d, edx
mov edx, ecx
and edx, 0x8289d51b
or ecx, 0x8289d51b
imul ecx, edx
lea edx, [rcx + r8]
add edx, 0x8f28ec32
or edx, 0xda777d9
mov rcx, 0xffffffffffffffff
lock xadd qword [rax], rcx
cmp edx, 0xc3fd1dea
jne 0x14012dca0
lock dec qword [rax]
jmp 0x14012dc38
mov eax, dword [0x141599af8]
xor edx, edx
div dword [0x141599afc]
add eax, 0x88732754
mov edx, eax
xor edx, 0x4810900
and edx, eax
or edx, 0xf800749e
cmp edx, 0x81bcc580
jb 0x14012dca0
cmp rcx, 1
jne 0x14012ddf0
mov eax, dword [0x141599b00]
xor eax, dword [0x141599b04]
not eax
or eax, 0xf50fe4eb
mov ecx, eax
not ecx
and eax, 0xd50943b0
mov edx, ecx
and edx, 0xaf01804
imul edx, eax
mov eax, ecx
and eax, 0x310
or ecx, 0xd50943b0
imul ecx, eax
add ecx, edx
xor ecx, 0xbcda43e0
cmp ecx, 0x6b81ef53
jbe 0x14012dd20
nop dword [rax]
mov eax, dword [0x141599b08]
xor edx, edx
div dword [0x141599b0c]
add eax, 0x736e9ff8
mov ecx, eax
xor ecx, 0xacf9a1a8
and ecx, eax
add ecx, 0xabb044a4
cmp ecx, 0x8b96ef3
jb 0x14012dd20
xor eax, eax
test al, al
je 0x14012dd60
mov rcx, rsi
call fcn.1401ad220
nop dword [rax]
mov eax, dword [0x141599b10]
and eax, dword [0x141599b14]
imul eax, eax, 0x157cceff
add eax, 0x3f6d9df4
imul rdi, rax, 0x2c075f7d
shr rdi, 0x3d
mov rcx, rsi
call fcn.1401ad220
cmp edi, 0xa9ec0bab
ja 0x14012dd60
mov eax, 0x9f7790f1
nop word [rax + rax]
mov ecx, dword [0x141599b18]
or ecx, dword [0x141599b1c]
mov edx, ecx
not edx
mov r8d, ecx
and r8d, 0xee1438ec
and edx, 0x11ebc713
imul edx, r8d
mov r8d, ecx
and r8d, 0x11ebc713
or ecx, 0x11ebc713
imul ecx, r8d
add ecx, edx
imul rcx, rax
shr rcx, 0x3f
add ecx, 0xa633f113
cmp ecx, 0xd4a3b57c
ja 0x14012dda0
mov eax, dword [0x141599bc0]
xor edx, edx
div dword [0x141599bc4]
mov ecx, eax
not ecx
and ecx, 0x4687f01f
mov edx, eax
and edx, 0xb9780fe0
imul edx, ecx
mov ecx, eax
and ecx, 0x4687f01f
or eax, 0x4687f01f
imul eax, ecx
add eax, edx
mov ecx, eax
and ecx, 0x314bb045
add ecx, ecx
sub eax, ecx
add eax, 0xb14bb045
imul rcx, rax, 0x3aa6977
shr rcx, 0x20
sub eax, ecx
shr eax, 1
add eax, ecx
shr eax, 0x1f
cmp eax, 0xa7b8b1aa
ja 0x14012ddf0
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret