Function at 0x14012d340
Capabilities:
Encode data using xor

Disassembly:
push rsi
push rdi
sub rsp, 0xc8
mov qword [rsp + 0x88], r9
mov qword [rsp + 0x90], r8
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0xa0], rcx
mov al, byte [rsp + 0x108]
mov byte [rsp + 0xaf], al
mov rax, qword [rsp + 0x100]
mov qword [rsp + 0xb0], rax
call fcn.14012da70
mov rcx, qword [rsp + 0xb0]
mov qword [rsp + 0xb8], rax
mov eax, 1
cmp rcx, 0
mov qword [rsp + 0xc0], rax
jle 0x14012d3e5
mov rax, qword [rsp + 0xb0]
add rax, 0xfffe
movabs rcx, 0x9c501f7eef1dc052
movabs rdx, 0x9c501f7eef1d3fad
xor rcx, rdx
xor edx, edx
div rcx
mov qword [rsp + 0xc0], rax
mov rcx, qword [rsp + 0x88]
mov rax, qword [rsp + 0xb0]
mov r8, qword [rsp + 0xc0]
mov qword [rsp + 0x68], r8
movabs r9, 0x5bfb5aa2cd3d11ca
movabs rdx, 0xa404a55d32c2ee35
xor r9, rdx
mov rdx, r8
and rdx, r9
or r8, 0xffffffffffffffff
add rdx, r8
mov qword [rsp + 0x70], rdx
movabs rdx, 0xea71a5175e6ffa06
add rax, rdx
add rax, rcx
movabs rcx, 0xea71a5175e6ffa06
sub rax, rcx
mov qword [rsp + 0x78], rax
xor eax, eax
mov qword [rsp + 0x80], rax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x60], rax
mov eax, dword [0x1402088a8]
mov r8d, dword [0x1402088ac]
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 ecx, 0x5b0b0fae
xor ecx, 0x7426f672
imul eax, ecx
mov ecx, 0x1465e277
xor ecx, 0xeb9a1d88
mov edx, eax
xor edx, ecx
and edx, 0xd2499cf4
mov r8d, 0xffffffff
xor r8d, 0xd2499cf4
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xd2499cf4
or eax, 0xd2499cf4
imul eax, edx
add eax, ecx
and eax, 0x61597c25
cmp eax, 0xcd941063
jae 0x14012da47
mov r8, qword [rsp + 0x68]
mov eax, dword [0x1402088b0]
add eax, dword [0x1402088b4]
sub eax, 0x2c2a60cf
mov ecx, 0xb2f43305
xor ecx, 0xcbb3bd90
xor edx, edx
div ecx
mov rdx, qword [rsp + 0x60]
mov ecx, 0xad2bc73e
xor ecx, 0xad898edd
xor eax, ecx
mov ecx, 0xedd51741
xor ecx, 0x9a888367
cmp rdx, r8
sete dl
mov byte [rsp + 0x5f], dl
cmp eax, ecx
ja 0x14012d4ef
mov al, byte [rsp + 0x5f]
test al, 1
jne 0x14012da3d
jmp 0x14012d554
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xa0]
mov al, byte [rsp + 0xaf]
mov r10, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x88]
mov r9, qword [rsp + 0x60]
mov r11, qword [rsp + 0x70]
mov r8, r9
sub r8, r11
sete r8b
mov edi, r9d
not edi
mov r11d, edi
movzx r11d, r11w
mov edi, r11d
mov r11, r9
and r11, 0xffffffffffff0000
imul r11, rdi
mov di, r9w
movzx edi, di
or r9, 0xffff
imul r9, rdi
add r9, r11
mov r11, r9
and r11, rsi
xor r9, rsi
lea r9, [r9 + r11*2]
mov qword [rsp + 0x40], r9
sub r10, r9
mov qword [rsp + 0x48], r10
mov r9, r10
sub r9, 0xffff
mov r9d, 0xffff
cmovl r9, r10
mov qword [rsp + 0x50], r9
and al, r8b
and al, 1
movzx r8d, al
movabs r9, 0x156e7b6cdd5109c7
movabs rax, 0x156e7b6cdd5109c6
xor r9, rax
call fcn.1401280c8
mov rax, qword [rsp + 0xb8]
cmp byte [rax], 0
jne 0x14012da3d
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xa0]
mov r8d, 0x5d108f5f
xor r8d, 0x5d108f5f
movabs r9, 0xb14036b04d44d9d5
movabs rax, 0xb14036b04d44d9d7
xor r9, rax
call fcn.1401280c8
mov rax, qword [rsp + 0xb8]
cmp byte [rax], 0
jne 0x14012da3d
mov rcx, qword [rsp + 0xa0]
call fcn.14012832b
mov rax, qword [rsp + 0xb8]
cmp byte [rax], 0
jne 0x14012da3d
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xa0]
mov rax, qword [rsp + 0x50]
mov r8d, eax
mov eax, 0xddc8fe78
xor eax, 0xddc80187
and r8d, eax
mov dword [rsp + 0x3c], r8d
mov r9d, 0x10
call fcn.1401280c8
mov rax, qword [rsp + 0xb8]
cmp byte [rax], 0
jne 0x14012da3d
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xa0]
mov r10d, dword [rsp + 0x3c]
mov r8d, r10d
xor r8d, 0xffffffff
and r8d, 0x2d6b65bb
mov r9d, 0x7c2f3103
xor r9d, 0x514454b8
mov eax, 0xfb39fd5e
xor eax, 0x4c602a1
xor r9d, eax
and r10d, r9d
mov eax, 0xffffffff
xor eax, 0xffff
mov r11d, 0x6962433e
xor r11d, 0x44092685
and eax, r11d
and r9d, 0xffff
or r8d, r10d
or eax, r9d
xor r8d, eax
mov r9d, 0x10
call fcn.1401280c8
mov rax, qword [rsp + 0xb8]
cmp byte [rax], 0
jne 0x14012da3d
mov rax, qword [rsp + 0x48]
cmp rax, 0
jle 0x14012d941
mov eax, dword [0x1402088b8]
mov ecx, dword [0x1402088bc]
xor ecx, 0xffffffff
add eax, ecx
add eax, 1
mov edx, 0x4e18b59
xor edx, 0x3488a5e4
mov ecx, eax
or ecx, edx
mov edx, 0x47bfd55
xor edx, 0xfb8402aa
xor ecx, edx
xor eax, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x30692ebd
and eax, edx
or ecx, eax
xor ecx, 0xffffffff
mov edx, 0x6f47ce23
xor edx, 0x90b831dc
mov eax, ecx
xor eax, edx
mov edx, ecx
xor edx, 0xffffffff
and eax, edx
mov edx, 0x92fcb623
xor edx, 0x6635ce7
mov r8d, 0x57bc29af
xor r8d, 0xa843d650
xor edx, r8d
mov r8d, 0xffffffff
xor r8d, 0x949feac4
and edx, r8d
xor eax, 0xffffffff
xor edx, 0xffffffff
and eax, edx
or ecx, 0x949feac4
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0x4e2e9494
xor ecx, 0xb1d16b6b
xor eax, ecx
mov ecx, 0x37bd4410
xor ecx, 0x282ace2b
sub eax, ecx
mov ecx, 0xf57717f8
xor ecx, 0xeb33d1a9
sub eax, ecx
add eax, 0x1f978a3b
cmp eax, 0xee89f818
jae 0x14012da50
mov rax, qword [rsp + 0x50]
mov r9, qword [rsp + 0x40]
mov r8, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xa0]
mov r10d, dword [0x1402088c0]
xor r10d, 0x32fca9c1
mov esi, dword [0x1402088c4]
xor esi, 0x14a0f092
mov r11d, r10d
and r11d, esi
xor r11d, 0xffffffff
and r10d, esi
xor r10d, 0xffffffff
xor r11d, 0xffffffff
mov esi, 0xbdcf8ade
xor esi, 0x42307521
xor r10d, esi
or r11d, r10d
mov r10d, 0xfdabdad0
xor r10d, 0x254252f
mov esi, r11d
xor esi, r10d
mov r10d, 0x357ca4ec
xor r10d, 0xb12a4093
and r10d, esi
mov esi, 0xffffffff
xor esi, 0x8456e47f
and r11d, esi
or r10d, r11d
mov esi, 0xf1ca25de
xor esi, 0xe35da21
mov r11d, r10d
xor r11d, esi
and r11d, 0x1a96b109
mov esi, 0xffffffff
xor esi, 0x1a96b109
and r10d, esi
sub r10d, r11d
xor r10d, 0x704bcbf
mov dword [rsp + 0x34], r10d
mov qword [rsp + 0x20], rax
call fcn.14012838f
mov rcx, qword [rsp + 0xb8]
mov eax, dword [rsp + 0x34]
cmp byte [rcx], 0
sete cl
mov byte [rsp + 0x3b], cl
cmp eax, 0xae6c380d
jbe 0x14012da50
mov al, byte [rsp + 0x3b]
test al, 1
jne 0x14012d941
jmp 0x14012da3d
mov eax, dword [0x1402088c8]
xor eax, 0x2a0d28f1
or eax, dword [0x1402088cc]
mov ecx, 0x969d5e16
xor ecx, 0x6962a1e9
mov edx, eax
xor edx, ecx
and edx, 0xf76a0afd
mov r8d, 0xffffffff
xor r8d, 0xf76a0afd
mov ecx, eax
and ecx, r8d
imul ecx, edx
mov r8d, 0x923519d8
xor r8d, 0x655f1325
mov edx, eax
and edx, r8d
mov r8d, 0x3408d562
xor r8d, 0xc362df9f
or eax, r8d
imul eax, edx
add eax, ecx
mov ecx, 0xccb911f8
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
and eax, 0x6f6c5b9c
xor eax, 0xffffffff
mov edx, 0x26ee6719
xor edx, 0xd91198e6
xor ecx, edx
mov edx, 0xffffffff
xor edx, 0x6f6c5b9c
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
cmp eax, 0x17ebb32
jae 0x14012da59
mov rcx, qword [rsp + 0x60]
mov eax, dword [0x1402088d0]
sub eax, dword [0x1402088d4]
sub eax, 0x63c4bbd4
imul edx, eax, 0x7ef89824
mov eax, edx
and eax, 0xaca7857c
mov r8d, 0x34ee4aa1
xor r8d, 0x9849cfdd
xor edx, r8d
or eax, edx
add rcx, 1
mov qword [rsp + 0x28], rcx
cmp eax, 0xde76bc96
jae 0x14012d9e2
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x80], rax
jmp 0x14012d457
add rsp, 0xc8
pop rdi
pop rsi
ret
add byte [rcx - 0x6016c056], bl
cli
invalid
in eax, dx
rol byte [rdx - 0x21e16cc], cl
invalid
cmp esp, 0x3d
enter 0xffffffffffff80e9, 0xffffffffffffffff
invalid