Function at 0x7ffbf1cb956c
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x88
lea r15, [rcx + 0x18]
mov rbp, rcx
mov rsi, rdx
lea r11, [0x7ffbf1ca0000]
lea r8, section..data
mov rax, qword [r15]
mov r12d, dword [rax + 9]
lea r9, [rax + 0xd]
mov ecx, dword [rax + 1]
lea rdi, [r9 - 1]
mov r13d, dword [rax + 5]
mov edx, 0xfffffff
and r13, rdx
and rcx, rdx
and r12, rdx
mov qword [rsp + 0x40], r15
add r13, r11
mov qword [rsp + 0x68], r13
mov qword [rsp + 0x78], rcx
xor ebx, ebx
mov qword [rsp + 0x38], r12
cmp rdi, r8
jb 0x7ffbf1cb961c
mov eax, dword [0x7ffbf1cb6330]
mov ecx, dword [0x7ffbf1d46a58]
imul ecx, eax
mov eax, ecx
add rax, r8
cmp rdi, rax
jae 0x7ffbf1cb961c
mov ecx, dword [0x7ffbf1cb6330]
mov rax, rdi
sub rax, r8
cqo
idiv rcx
mov edx, dword [0x7ffbf1cb6330]
imul rdx, rax
add r8, rdx
jmp 0x7ffbf1cb961f
mov r8, rbx
cmp r8, rbx
jne 0x7ffbf1cb962e
mov r8, rdi
and r8, 0xffffffffffff0000
mov r10d, r13d
sub r9, r8
lea rax, [r9 - 0x40]
cmp rax, rbx
cmovl rax, rbx
sub r10d, r11d
lea rdi, [rax + r8]
xor eax, eax
lea ecx, [rax + 0x40]
rep stosb byte [rdi], al
mov r11d, dword [0x7ffbf1cb6330]
mov rdi, rbx
sub r11, r12
inc r11
mov r9, r11
cmp r11, rbx
je 0x7ffbf1cb969b
mov rdx, qword [0x7ffbf1d6a520]
imul rdx, rdx, 0x343fd
shl rdi, 0x10
shr r9, 0x10
add rdx, 0x269ec3
mov rcx, rdx
shr rcx, 0x10
movzx eax, cx
or rdi, rax
cmp r9, rbx
jne 0x7ffbf1cb966c
mov qword [0x7ffbf1d6a520], rdx
mov rax, rdi
xor edx, edx
mov ecx, r10d
div r11
lea r14, [rdx + r8]
mov qword [rsp + 0x50], r14
mov rdx, r12
mov r8, r14
mov eax, 0x37e3beea
mov rbx, qword [r12 + r13]
mov qword [rsp + 0x48], rbx
xor dil, dil
test r12, r12
je 0x7ffbf1cb9c8b
lea rcx, [rsp + 0x48]
mov eax, 0x7cfa8e01
mov r9d, dword [rsp + 0x4c]
lea rdx, [0x7ffbf1ca0000]
mov rcx, rdx
and qword [rsp + 0x20], 0
mov eax, 0xfffffff
and rbx, rax
and r9, rax
mov rax, qword [0x7ffbf1cf0238]
add rbx, rdx
sub rcx, rax
mov qword [rsp + 0x28], rcx
jne 0x7ffbf1cb977a
xor r10d, r10d
test r9, r9
je 0x7ffbf1cb9a29
mov r14d, 0x5d178fad
mov edx, dword [rsp + 0x24]
mov r8d, dword [rsp + 0x20]
movzx ecx, byte [r10 + rbx]
inc r10
add ecx, r14d
add r8d, ecx
add ecx, edx
mov eax, ecx
imul eax, eax, 0x68a0
rol eax, 0xd
ror ecx, 0xd
xor eax, ecx
imul rax, rax, 0x5d178fad
mov qword [rsp + 0xe0], rax
mov edx, dword [rsp + 0xe0]
shr rax, 0x20
add edx, eax
add r8d, edx
cmp r10, r9
jb 0x7ffbf1cb9728
mov dword [rsp + 0x24], edx
mov dword [rsp + 0x20], r8d
jmp 0x7ffbf1cb9a29
lea rax, [rbx + r9]
mov r10, 0xfffffffffffff000
movsxd rcx, dword [0x7ffbf1ca003c]
mov r8d, dword [rcx + rdx + 0xb0]
add r8, rdx
mov r15d, dword [rcx + rdx + 0xb4]
mov qword [rsp + 0x60], rax
mov eax, ebx
sub eax, edx
mov esi, eax
mov r11d, eax
add rax, r9
and r11, r10
mov r9, rax
and r9, r10
sub rsi, r11
sub rax, r9
mov qword [rsp + 0x58], r9
add r15, r8
mov qword [rsp + 0x70], rax
jmp 0x7ffbf1cb97dd
mov eax, dword [r8]
cmp rax, r11
jae 0x7ffbf1cb97e2
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, r15
jne 0x7ffbf1cb97ce
xor r10d, r10d
cmp r8, r15
je 0x7ffbf1cb981c
mov eax, dword [r8]
cmp rax, r11
jne 0x7ffbf1cb981c
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x7ffbf1cb981c
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and eax, 0xfff
cmp rax, rsi
jae 0x7ffbf1cb981c
inc r10
add rdx, 2
cmp r10, rcx
jne 0x7ffbf1cb9803
mov ebp, dword [rsp + 0x20]
mov r12d, dword [rsp + 0x24]
lea r13, [0x7ffbf1ca0000]
mov r14d, 0x5d178fad
mov rdi, qword [rsp + 0x28]
cmp r8, r15
je 0x7ffbf1cb99c2
mov eax, dword [r8]
cmp rax, r9
ja 0x7ffbf1cb99c2
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp r10, rax
jne 0x7ffbf1cb9879
add r8, rcx
cmp r8, r15
je 0x7ffbf1cb99c2
mov eax, dword [r8]
cmp rax, r9
ja 0x7ffbf1cb99c2
xor r10d, r10d
jmp 0x7ffbf1cb984c
mov eax, dword [r8]
cmp rax, r9
jne 0x7ffbf1cb9897
movzx eax, word [r8 + r10*2 + 8]
and eax, 0xfff
cmp rax, qword [rsp + 0x70]
jae 0x7ffbf1cb99c2
mov rax, r10
inc r10
mov ecx, 0xf000
test word [r8 + rax*2 + 8], cx
je 0x7ffbf1cb9837
movzx edx, word [r8 + rax*2 + 8]
mov esi, edx
xor r11d, r11d
and esi, 0xfff
add esi, dword [r8]
add rsi, r13
mov r9, rsi
sub r9, rbx
je 0x7ffbf1cb9912
movzx ecx, byte [r11 + rbx]
inc r11
add ecx, r14d
add ebp, ecx
add ecx, r12d
mov eax, ecx
imul eax, eax, 0x68a0
rol eax, 0xd
ror ecx, 0xd
xor eax, ecx
imul rax, rax, 0x5d178fad
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov r12d, dword [rsp + 0x28]
add r12d, eax
add ebp, r12d
cmp r11, r9
jb 0x7ffbf1cb98c9
mov dword [rsp + 0x20], ebp
mov dword [rsp + 0x24], r12d
shr edx, 0xc
cmp edx, 3
mov rax, qword [rsi]
mov qword [rsp + 0x30], rax
je 0x7ffbf1cb992e
sub edx, 0xa
neg edx
sbb edx, edx
add edx, 3
jmp 0x7ffbf1cb9933
mov edx, 2
mov r9, rdi
neg r9
sub edx, 2
je 0x7ffbf1cb9958
cmp edx, 1
je 0x7ffbf1cb9949
or rdx, 0xffffffffffffffff
jmp 0x7ffbf1cb9962
add rax, r9
mov qword [rsp + 0x30], rax
mov edx, 8
jmp 0x7ffbf1cb9962
add dword [rsp + 0x30], r9d
mov edx, 4
xor r9d, r9d
test rdx, rdx
je 0x7ffbf1cb99b4
movzx ecx, byte [rsp + r9 + 0x30]
inc r9
add ecx, r14d
add ebp, ecx
add ecx, r12d
mov eax, ecx
imul eax, eax, 0x68a0
rol eax, 0xd
ror ecx, 0xd
xor eax, ecx
imul rax, rax, 0x5d178fad
mov qword [rsp + 0x28], rax
shr rax, 0x20
mov r12d, dword [rsp + 0x28]
add r12d, eax
add ebp, r12d
cmp r9, rdx
jb 0x7ffbf1cb996a
mov dword [rsp + 0x20], ebp
mov dword [rsp + 0x24], r12d
mov r9, qword [rsp + 0x58]
lea rbx, [rdx + rsi]
jmp 0x7ffbf1cb9837
xor edx, edx
mov dil, dl
mov r13, qword [rsp + 0x68]
mov r8, qword [rsp + 0x60]
sub r8, rbx
je 0x7ffbf1cb9a24
movzx ecx, byte [rdx + rbx]
inc rdx
add ecx, r14d
add ebp, ecx
add ecx, r12d
mov eax, ecx
imul eax, eax, 0x68a0
rol eax, 0xd
ror ecx, 0xd
xor eax, ecx
imul rax, rax, 0x5d178fad
mov qword [rsp + 0xe0], rax
mov r12d, dword [rsp + 0xe0]
shr rax, 0x20
add r12d, eax
add ebp, r12d
cmp rdx, r8
jb 0x7ffbf1cb99d6
mov dword [rsp + 0x20], ebp
mov dword [rsp + 0x24], r12d
mov r12, qword [rsp + 0x38]
xor ecx, ecx
mov rax, rcx
inc rcx
and eax, 7
cmp rcx, 6
mov al, byte [rsp + rax + 0x20]
mov byte [rsp + rcx + 0xe7], al
jb 0x7ffbf1cb9a2b
mov eax, 0x2eb43af9
mov r11b, byte [rsp + 0xe8]
lea rsi, [r12 - 1]
mov r15b, byte [rsp + 0xec]
or r11b, 1
mov r14b, byte [rsp + 0xed]
mov r12b, byte [rsp + 0xe9]
mov bpl, byte [rsp + 0xea]
or bpl, 1
mov byte [rsp + 0xe8], r11b
or r15b, 1
mov byte [rsp + 0xea], bpl
or r14b, 1
mov byte [rsp + 0xec], r15b
mov byte [rsp + 0xed], r14b
test rsi, rsi
je 0x7ffbf1cb9c03
lea rbx, [rsi + r13]
mov rax, qword [rsp + 0x50]
sub rax, r13
mov qword [rsp + 0xe0], rax
mov r9b, byte [rbx]
test sil, 1
movzx ecx, r9b
je 0x7ffbf1cb9b4d
movzx r8d, byte [rsp + 0xeb]
xor r9b, byte [rsp + 0xeb]
and r9b, 1
je 0x7ffbf1cb9b01
mov eax, r8d
movzx edx, bpl
shr eax, 1
shr edx, 1
xor edx, eax
mov eax, ecx
btc eax, 8
sar eax, 1
xor edx, eax
jmp 0x7ffbf1cb9b08
mov edx, ecx
xor edx, r8d
shr edx, 1
movzx r10d, byte [rbx - 1]
mov eax, r10d
xor eax, edx
test al, 1
je 0x7ffbf1cb9b3e
test r9b, r9b
je 0x7ffbf1cb9b31
btc ecx, 8
movzx edx, bpl
shr r8d, 1
shr edx, 1
sar ecx, 1
xor edx, r8d
xor edx, ecx
jmp 0x7ffbf1cb9b38
mov edx, ecx
xor edx, r8d
shr edx, 1
movzx eax, r14b
jmp 0x7ffbf1cb9bae
test r9b, r9b
je 0x7ffbf1cb9bda
movzx edx, bpl
jmp 0x7ffbf1cb9bc8
xor r9b, r12b
and r9b, 1
movzx r8d, r12b
je 0x7ffbf1cb9b73
movzx edx, r11b
mov eax, r8d
shr eax, 1
shr edx, 1
xor edx, eax
mov eax, ecx
btc eax, 8
sar eax, 1
xor edx, eax
jmp 0x7ffbf1cb9b7a
mov edx, ecx
xor edx, r8d
shr edx, 1
movzx r10d, byte [rbx - 1]
mov eax, r10d
xor eax, edx
test al, 1
je 0x7ffbf1cb9bbf
test r9b, r9b
je 0x7ffbf1cb9ba3
movzx edx, r11b
btc ecx, 8
shr r8d, 1
shr edx, 1
sar ecx, 1
xor edx, r8d
xor edx, ecx
jmp 0x7ffbf1cb9baa
mov edx, ecx
xor edx, r8d
shr edx, 1
movzx eax, r15b
shr eax, 1
xor r10d, edx
btc eax, 7
sar r10d, 1
xor eax, r10d
jmp 0x7ffbf1cb9be8
test r9b, r9b
je 0x7ffbf1cb9bda
movzx edx, r11b
btc ecx, 8
shr edx, 1
shr r8d, 1
sar ecx, 1
xor edx, r8d
xor edx, ecx
jmp 0x7ffbf1cb9be1
mov edx, ecx
xor edx, r8d
shr edx, 1
mov eax, r10d
xor eax, edx
sar eax, 1
xor dil, al
mov rcx, qword [rsp + 0xe0]
mov byte [rcx + rbx], al
dec rbx
sub rsi, 1
jne 0x7ffbf1cb9ac4
movzx eax, r12b
movzx ecx, byte [r13]
mov dl, byte [r13]
xor ecx, eax
xor dl, r12b
shr ecx, 1
and dl, 1
je 0x7ffbf1cb9c2a
movzx eax, r11b
btc eax, 8
sar eax, 1
xor eax, ecx
jmp 0x7ffbf1cb9c2c
mov eax, ecx
test al, 1
je 0x7ffbf1cb9c50
test dl, dl
je 0x7ffbf1cb9c42
movzx edx, r11b
btc edx, 8
sar edx, 1
xor edx, ecx
jmp 0x7ffbf1cb9c44
mov edx, ecx
movzx eax, r15b
xor eax, edx
btc eax, 8
jmp 0x7ffbf1cb9c64
test dl, dl
je 0x7ffbf1cb9c62
movzx eax, r11b
btc eax, 8
sar eax, 1
xor eax, ecx
jmp 0x7ffbf1cb9c64
mov eax, ecx
mov r14, qword [rsp + 0x50]
mov r12, qword [rsp + 0x38]
mov r15, qword [rsp + 0x40]
mov rbp, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0xd8]
sar eax, 1
mov byte [r14], al
xor dil, al
cmp dil, byte [r12 + r13 + 8]
je 0x7ffbf1cb9d51
call fcn.7ffbf1d47140
mov r8, r15
mov ebx, 0xffff
and r8, 0xfffffffffffffff8
lea r10, [fcn.7ffbf1cb7480]
mov qword [rbp + 0x10], r10
mov r11, rax
mov rcx, qword [0x7ffbf1d6a520]
and r11, 0xfffffffffffff000
lea r9, [r8 + 0xfff]
and r9, 0xfffffffffffff000
xor edi, edi
imul rcx, rcx, 0x343fd
shl rdi, 0x10
shr rbx, 0x10
add rcx, 0x269ec3
mov rax, rcx
shr rax, 0x10
movzx edx, ax
or rdi, rdx
test rbx, rbx
jne 0x7ffbf1cb9cd3
mov qword [0x7ffbf1d6a520], rcx
movabs rax, 0x8000800080008001
mov qword [rsi + 0x98], r11
mul rdi
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub rdi, rdx
inc rdi
mov qword [rsi + 0xb0], rdi
mov qword [rsp + 0xd0], rbx
jmp 0x7ffbf1cb9d47
mov rax, qword [rsp + 0xd0]
mov qword [r8], rax
add r8, 8
cmp r8, r9
jb 0x7ffbf1cb9d38
jmp 0x7ffbf1cb9e77
lea rcx, [0x7ffbf1ca0000]
mov rax, qword [0x7ffbf1cf0238]
mov rbx, r13
mov rsi, rcx
sub rbx, r14
sub rsi, rax
jne 0x7ffbf1cb9d76
test rbx, rbx
je 0x7ffbf1cb9e5b
xor edi, edi
mov r11, r14
sub r11, r13
sub r13d, ecx
lea ebp, [r12 + r13]
mov rcx, qword [0x7ffbf1cac1e8]
lea r12, [0x7ffbf1cac1e8]
lea r8d, [rcx - 1]
test r8d, r8d
js 0x7ffbf1cb9dc9
lea eax, [rdi + r8]
cdq
sub eax, edx
sar eax, 1
movsxd rdx, eax
mov r9d, dword [r12 + rdx*4 + 4]
and r9d, 0xfffffff
cmp r13d, r9d
jae 0x7ffbf1cb9dbf
lea r8d, [rax - 1]
jmp 0x7ffbf1cb9dc4
jbe 0x7ffbf1cb9e21
lea edi, [rax + 1]
cmp r8d, edi
jge 0x7ffbf1cb9d9c
movsxd r10, edi
mov eax, ecx
cmp r10, rax
jae 0x7ffbf1cb9e5b
lea r15, [0x7ffbf1ca0000]
mov edi, 0xfffffff
mov edx, dword [r12 + r10*4 + 4]
mov eax, edx
and eax, edi
cmp eax, ebp
jae 0x7ffbf1cb9e56
mov r9, rdx
xor r8d, r8d
and r9, rdi
mov edi, edx
sar edx, 0x1e
shl edi, 2
add r9, r15
and edx, 3
sar edi, 0x1e
and edi, 3
sub edi, 1
je 0x7ffbf1cb9e2b
sub edi, 1
je 0x7ffbf1cb9e26
cmp edi, 1
jne 0x7ffbf1cb9e31
mov r8, rsi
jmp 0x7ffbf1cb9e31
movsxd r10, eax
jmp 0x7ffbf1cb9dcc
mov r8, rbx
jmp 0x7ffbf1cb9e31
mov r8, rsi
sub r8, rbx
sub edx, 2
je 0x7ffbf1cb9e41
cmp edx, 1
jne 0x7ffbf1cb9e4c
add qword [r9 + r11], r8
jmp 0x7ffbf1cb9e45
add dword [r9 + r11], r8d
mov rcx, qword [0x7ffbf1cac1e8]
inc r10
mov eax, ecx
cmp r10, rax
jb 0x7ffbf1cb9dde
mov r15, qword [rsp + 0x40]
mov eax, dword [0x7ffbf1cb6330]
mov eax, 0xa989b88c
mov rbp, qword [rsp + 0xd0]
mov rdx, qword [rsp + 0x78]
lea r10, [r14 + rdx]
mov qword [rbp + 0x10], r10
add qword [r15], 0xd
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret