Function at 0x14012f780
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rsi
sub rsp, 0x178
lea rbp, [rsp + 0x80]
mov qword [rbp + 0xd0], r9
mov qword [rbp + 0xd8], r8
mov qword [rbp + 0xe0], rdx
mov qword [rbp + 0xe8], rcx
mov qword [rbp + 0xf0], rcx
mov eax, dword [0x1401cfd28]
imul eax, dword [0x1401cfd2c]
xor eax, 0x22346920
mov ecx, 0x53f6d34e
xor ecx, 0xadf7cb6b
xor edx, edx
div ecx
mov ecx, 0x955f054c
xor ecx, 0xdca2cc66
and eax, ecx
cmp eax, 0xe3de48d7
ja 0x14012fe9e
mov edx, dword [0x1401cfd30]
mov eax, dword [0x1401cfd34]
mov ecx, eax
xor eax, ecx
not eax
and eax, edx
xor eax, ecx
mov ecx, eax
xor ecx, 0x1500a00
or ecx, 0xdea561be
xor eax, 0x20008440
xor ecx, 0x3701e5ec
and eax, 0x21008440
add eax, eax
sub eax, ecx
mov dword [rbp + 0xb4], eax
mov eax, 0x8eb0f36c
mov dword [rbp + 0xb0], eax
mov eax, 0x10
mov qword [rbp + 0x78], rax
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x78]
mov rcx, rsp
mov qword [rbp + 0xa0], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x78]
mov rcx, rsp
mov qword [rbp + 0x98], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x78]
mov rcx, rsp
mov qword [rbp + 0x28], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x78]
mov rcx, rsp
mov qword [rbp + 0x30], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x78]
mov rcx, rsp
mov qword [rbp + 0x38], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x78]
mov rcx, rsp
mov qword [rbp + 0x40], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x78]
mov rcx, rsp
mov qword [rbp + 0x48], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x78]
mov rcx, rsp
mov qword [rbp + 0x50], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x78]
mov rcx, rsp
mov qword [rbp + 0x58], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x78]
mov rcx, rsp
mov qword [rbp + 0x60], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x78]
mov rcx, rsp
mov qword [rbp + 0x68], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x78]
mov rcx, rsp
mov qword [rbp + 0x70], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, qword [rbp + 0x78]
mov rcx, rsp
mov qword [rbp + 0x80], rcx
call fcn.1401c7680
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x88], rax
sub rsp, 0x20
call fcn.140142430
mov rcx, qword [rbp + 0xe8]
add rsp, 0x20
mov qword [rbp + 0xa8], rax
add rax, 0x60
mov qword [rbp + 0x90], rax
xor eax, eax
mov edx, eax
sub rsp, 0x20
call fcn.14001654f
mov rax, qword [rbp + 0xe0]
mov rdx, qword [rbp + 0x98]
mov rcx, qword [rbp + 0xa0]
add rsp, 0x20
mov r8, qword [rax]
mov qword [rdx], r8
mov rax, qword [rax + 8]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.1400bfd90
mov r8, qword [rbp + 0xa0]
mov rdx, qword [rbp + 0xa8]
mov ecx, dword [rbp + 0xb0]
mov eax, dword [rbp + 0xb4]
add rsp, 0x20
mov r9, qword [r8]
mov qword [rbp + 0xb8], r9
mov r8, qword [r8 + 8]
mov qword [rbp + 0xc0], r8
cmp byte [rdx + 0x60], 0
sete dl
mov byte [rbp + 0xcf], dl
cmp eax, ecx
ja 0x14012f7ed
mov cl, byte [rbp + 0xcf]
xor eax, eax
test cl, 1
mov rcx, rax
mov qword [rbp + 0x18], rcx
mov qword [rbp + 0x20], rax
jne 0x14012fa1d
jmp 0x14012fdd1
mov rax, qword [rbp + 0x80]
mov rcx, qword [rbp + 0x60]
mov rdx, qword [rbp + 0xd8]
mov r8, qword [rbp + 0x58]
mov r9, qword [rbp + 0x48]
mov r10, qword [rbp + 0x40]
mov r11, qword [rbp + 0x28]
add r11, 8
mov qword [rbp - 0x30], r11
add r10, 8
mov qword [rbp - 0x28], r10
add r9, 8
mov qword [rbp - 0x20], r9
add r8, 8
mov qword [rbp - 0x18], r8
cmp rdx, 0
setg r8b
mov byte [rbp - 9], r8b
movabs r8, 0x5a4a2a8783240f4e
movabs r9, 0xa5b5d5787cdbf0b1
xor r8, r9
movabs r9, 0xcd9230eb48c0fa3b
movabs r10, 0x326dcf14b73f05c4
xor r9, r10
xor r8, r9
xor r9d, r9d
sub r9, 1
sub r8, r9
sub rdx, r8
mov qword [rbp - 8], rdx
add rcx, 8
mov qword [rbp], rcx
add rax, 8
mov qword [rbp + 8], rax
xor eax, eax
mov qword [rbp + 0x10], rax
mov rax, qword [rbp + 0xc0]
mov rcx, qword [rbp + 0xb8]
mov rdx, qword [rbp + 0x10]
mov qword [rbp - 0x38], rdx
cmp rdx, rcx
mov qword [rbp + 0x18], rcx
mov qword [rbp + 0x20], rax
jge 0x14012fdd1
mov r9, qword [rbp + 0xc0]
mov rcx, qword [rbp + 0x28]
mov r8, qword [rbp + 0x38]
mov rdx, qword [rbp + 0x30]
mov rax, qword [rbp + 0xd0]
mov r10, qword [rbp - 0x38]
mov r11, r9
add r11, 8
mov rsi, r10
shl rsi, 3
add r11, rsi
mov qword [rbp - 0x50], r11
mov r9, qword [r9 + r10*8 + 8]
mov r10, qword [r9 + 0x18]
mov qword [rdx], r10
mov r9, qword [r9 + 0x20]
mov qword [rdx + 8], r9
mov r9, qword [rax]
mov qword [r8], r9
mov rax, qword [rax + 8]
mov qword [r8 + 8], rax
sub rsp, 0x20
call fcn.14008d970
mov r9, qword [rbp + 0x28]
mov r8, qword [rbp - 0x30]
mov rdx, qword [rbp + 0x90]
mov rcx, qword [rbp + 0xb8]
mov rax, qword [rbp + 0xc0]
add rsp, 0x20
mov r9, qword [r9]
mov qword [rbp - 0x48], r9
mov r8, qword [r8]
mov qword [rbp - 0x40], r8
mov dl, byte [rdx]
mov r8b, 0x49
xor r8b, 0x49
cmp dl, r8b
mov qword [rbp + 0x18], rcx
mov qword [rbp + 0x20], rax
jne 0x14012fdd1
mov rcx, qword [rbp + 0x40]
mov rax, qword [rbp - 0x28]
mov rdx, qword [rbp - 0x40]
mov r8, qword [rbp - 0x48]
mov qword [rcx], r8
mov qword [rax], rdx
sub rsp, 0x20
call fcn.1400bf839
add rsp, 0x20
mov cl, al
mov rax, qword [rbp + 0x90]
mov al, byte [rax]
test al, al
sete al
mov byte [rbp - 0x51], al
and al, cl
test al, 1
jne 0x14012fbd6
jmp 0x14012fc36
mov rcx, qword [rbp + 0x48]
mov rdx, qword [rbp + 0x50]
mov rax, qword [rbp - 0x50]
mov rax, qword [rax]
mov r8, qword [rax + 0x18]
mov qword [rdx], r8
mov rax, qword [rax + 0x20]
mov qword [rdx + 8], rax
sub rsp, 0x20
call fcn.14001c072
mov r9, qword [rbp + 0x48]
mov r8, qword [rbp - 0x20]
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp + 0xe8]
mov rdx, qword [rbp + 0x58]
add rsp, 0x20
mov r9, qword [r9]
mov r8, qword [r8]
mov qword [rdx], r9
mov qword [rax], r8
sub rsp, 0x20
call fcn.14001b5c0
add rsp, 0x20
jmp 0x14012fc5d
mov rax, qword [rbp + 0xc0]
mov rcx, qword [rbp + 0xb8]
mov dl, byte [rbp - 0x51]
test dl, 1
mov qword [rbp + 0x18], rcx
mov qword [rbp + 0x20], rax
jne 0x14012fc5d
jmp 0x14012fdd1
mov al, byte [rbp - 9]
test al, 1
jne 0x14012fc6d
jmp 0x14012fd71
mov rcx, qword [rbp + 0x60]
mov r9, qword [rbp + 0x70]
mov r8, qword [rbp - 8]
mov rdx, qword [rbp + 0x68]
mov rax, qword [rbp + 0xd0]
mov r10, qword [rbp - 0x50]
mov r10, qword [r10]
mov r11, qword [r10 + 0x18]
mov qword [rdx], r11
mov r10, qword [r10 + 0x20]
mov qword [rdx + 8], r10
mov r10, qword [rax]
mov qword [r9], r10
mov rax, qword [rax + 8]
mov qword [r9 + 8], rax
sub rsp, 0x20
call fcn.14012f780
mov rdx, qword [rbp + 0x60]
mov rax, qword [rbp]
mov rcx, qword [rbp + 0x90]
add rsp, 0x20
mov rdx, qword [rdx]
mov qword [rbp - 0x78], rdx
mov rax, qword [rax]
mov qword [rbp - 0x70], rax
xor eax, eax
cmp byte [rcx], 0
mov rcx, rax
mov qword [rbp - 0x68], rcx
mov qword [rbp - 0x60], rax
jne 0x14012fd25
mov r8, qword [rbp - 0x78]
mov r9, qword [rbp - 0x70]
mov rcx, qword [rbp + 0xe8]
mov rdx, r9
add rdx, 8
xor eax, eax
cmp r9, 0
cmove rdx, rax
sub rsp, 0x20
call fcn.1400273b0
mov rcx, qword [rbp - 0x70]
mov rax, qword [rbp - 0x78]
add rsp, 0x20
mov qword [rbp - 0x68], rcx
mov qword [rbp - 0x60], rax
mov rcx, qword [rbp + 0x80]
mov rax, qword [rbp + 8]
mov rdx, qword [rbp - 0x68]
mov r8, qword [rbp - 0x60]
mov qword [rcx], r8
mov qword [rax], rdx
sub rsp, 0x20
call fcn.140017fc0
mov rdx, qword [rbp + 0x90]
mov rcx, qword [rbp + 0xb8]
mov rax, qword [rbp + 0xc0]
add rsp, 0x20
cmp byte [rdx], 0
mov qword [rbp + 0x18], rcx
mov qword [rbp + 0x20], rax
jne 0x14012fdd1
mov rax, qword [rbp - 0x38]
xor ecx, ecx
sub rcx, rax
movabs rax, 0xd55fb84eabbd45c8
movabs rdx, 0xd55fb84eabbd45c8
xor rax, rdx
movabs rdx, 0x61f7d34507041611
movabs r8, 0x61f7d34507041610
xor rdx, r8
sub rax, rdx
add rcx, rax
movabs rax, 0x1aaf6bfaa89727c4
movabs rdx, 0x1aaf6bfaa89727c4
xor rax, rdx
sub rax, rcx
mov qword [rbp + 0x10], rax
jmp 0x14012fac3
mov rcx, qword [rbp + 0x88]
mov rdx, qword [rbp + 0x18]
mov rax, qword [rbp + 0x20]
mov qword [rcx], rdx
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.1400277b0
mov rax, qword [rbp + 0x90]
add rsp, 0x20
mov al, byte [rax]
mov cl, 0x13
xor cl, 0x13
cmp al, cl
je 0x14012fe8d
sub rsp, 0x20
call fcn.140119776
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x80], rax
mov ax, word [rax + 0x12]
mov cx, 0xbb29
xor cx, 0xbb28
cmp ax, cx
jle 0x14012fe8d
mov rax, qword [rbp - 0x80]
mov rax, qword [rax + 0x18]
cmp dword [rax + 8], 0xd4054986
jne 0x14012fe8d
mov rax, qword [rbp + 0x90]
mov byte [rax], 0
sub rsp, 0x20
call fcn.140119788
add rsp, 0x20
mov rcx, rax
sub rsp, 0x20
call fcn.140091980
mov rax, qword [rbp + 0x90]
add rsp, 0x20
cmp byte [rax], 0
jne 0x14012fe8d
sub rsp, 0x20
call fcn.1401197bf
add rsp, 0x20
mov rax, qword [rbp + 0xf0]
lea rsp, [rbp + 0xf8]
pop rsi
pop rbp
ret
invalid