Function at 0x7ffbf1ca22a8
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
mov rax, qword [rcx + 0x10]
mov r12d, dword [rax + 9]
mov r13d, dword [rax + 5]
lea r11, [0x7ffbf1ca0000]
lea r8, section..data
mov rsi, rdx
lea r9, [rax + 0xd]
mov r15, rcx
lea rdi, [r9 - 1]
mov edx, 0xfffffff
and r13, rdx
mov ecx, dword [rax + 1]
and rcx, rdx
mov qword [rsp + 0x70], rcx
and r12, rdx
add r13, r11
xor ebp, ebp
mov qword [rsp + 0x38], r12
cmp rdi, r8
mov qword [rsp + 0x60], r13
jb 0x7ffbf1ca2350
mov ecx, dword [0x7ffbf1d46a58]
mov eax, dword [0x7ffbf1cb6330]
imul ecx, eax
mov eax, ecx
add rax, r8
cmp rdi, rax
jae 0x7ffbf1ca2350
mov ecx, dword [0x7ffbf1cb6330]
mov rax, rdi
sub rax, r8
cqo
idiv rcx
mov edx, dword [0x7ffbf1cb6330]
imul rdx, rax
add r8, rdx
jmp 0x7ffbf1ca2353
mov r8, rbp
cmp r8, rbp
jne 0x7ffbf1ca2362
mov r8, rdi
and r8, 0xffffffffffff0000
mov r10d, r13d
sub r9, r8
lea rax, [r9 - 0x40]
cmp rax, rbp
cmovl rax, rbp
lea rdi, [rax + r8]
sub r10d, r11d
xor eax, eax
lea ecx, [rax + 0x40]
rep stosb byte [rdi], al
mov r11d, dword [0x7ffbf1cb6330]
mov rdi, rbp
sub r11, r12
inc r11
cmp r11, rbp
mov r9, r11
je 0x7ffbf1ca23cf
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, rbp
jne 0x7ffbf1ca23a0
mov qword [0x7ffbf1d6a520], rdx
mov rax, rdi
xor edx, edx
mov ecx, r10d
div r11
lea r14, [rdx + r8]
mov rdx, r12
mov qword [rsp + 0x48], r14
mov r8, r14
mov eax, 0x2f7c5bc3
cmp r12, rbp
mov dil, bpl
mov rbx, qword [r12 + r13]
mov qword [rsp + 0x40], rbx
jbe 0x7ffbf1ca29cd
lea rcx, [rsp + 0x40]
mov eax, 0xefdb9355
mov eax, 0xfffffff
mov r9d, dword [rsp + 0x44]
lea rdx, [0x7ffbf1ca0000]
and rbx, rax
mov rcx, rdx
and r9, rax
add rbx, rdx
mov rax, qword [0x7ffbf1cf0238]
mov qword [rsp + 0x20], rbp
sub rcx, rax
mov qword [rsp + 0x28], rcx
jne 0x7ffbf1ca24ad
mov r10, rbp
cmp r9, rbp
jbe 0x7ffbf1ca275e
mov edx, dword [rsp + 0x24]
mov r14d, 0x5d178fad
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
shr rax, 0x20
mov edx, dword [rsp + 0xe0]
add edx, eax
add r8d, edx
cmp r10, r9
jb 0x7ffbf1ca245b
mov dword [rsp + 0x24], edx
mov dword [rsp + 0x20], r8d
jmp 0x7ffbf1ca275e
movsxd rcx, dword [0x7ffbf1ca003c]
mov r10, 0xfffffffffffff000
mov r8d, dword [rcx + rdx + 0xb0]
mov r15d, dword [rcx + rdx + 0xb4]
add r8, rdx
lea rax, [rbx + r9]
mov qword [rsp + 0x58], rax
mov eax, ebx
sub eax, edx
mov esi, eax
mov r11d, eax
add rax, r9
mov r9, rax
and r11, r10
and r9, r10
sub rsi, r11
mov qword [rsp + 0x68], r9
sub rax, r9
add r15, r8
mov qword [rsp + 0x50], rax
jmp 0x7ffbf1ca2510
mov eax, dword [r8]
cmp rax, r11
jae 0x7ffbf1ca2515
mov eax, dword [r8 + 4]
add r8, rax
cmp r8, r15
jne 0x7ffbf1ca2501
cmp r8, r15
mov r10, rbp
je 0x7ffbf1ca254f
mov eax, dword [r8]
cmp rax, r11
jne 0x7ffbf1ca254f
mov ecx, dword [r8 + 4]
sub rcx, 8
shr rcx, 1
je 0x7ffbf1ca254f
lea rdx, [r8 + 8]
movzx eax, word [rdx]
and eax, 0xfff
cmp rax, rsi
jae 0x7ffbf1ca254f
inc r10
add rdx, 2
cmp r10, rcx
jne 0x7ffbf1ca2536
mov r14d, 0x5d178fad
mov ebp, dword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
lea r13, [0x7ffbf1ca0000]
mov r12d, dword [rsp + 0x24]
cmp r8, r15
je 0x7ffbf1ca26f5
mov eax, dword [r8]
cmp rax, r9
ja 0x7ffbf1ca26f5
mov ecx, dword [r8 + 4]
lea rax, [rcx - 8]
shr rax, 1
cmp r10, rax
jne 0x7ffbf1ca25ac
add r8, rcx
cmp r8, r15
je 0x7ffbf1ca26f5
mov eax, dword [r8]
cmp rax, r9
ja 0x7ffbf1ca26f5
xor r10d, r10d
jmp 0x7ffbf1ca257f
mov eax, dword [r8]
cmp rax, r9
jne 0x7ffbf1ca25ca
movzx eax, word [r8 + r10*2 + 8]
and eax, 0xfff
cmp rax, qword [rsp + 0x50]
jae 0x7ffbf1ca26f5
mov rax, r10
inc r10
mov ecx, 0xf000
test word [r8 + rax*2 + 8], cx
je 0x7ffbf1ca256a
xor r11d, r11d
movzx edx, word [r8 + rax*2 + 8]
mov esi, edx
and esi, 0xfff
add esi, dword [r8]
add rsi, r13
mov r9, rsi
sub r9, rbx
je 0x7ffbf1ca2645
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
mov r12d, dword [rsp + 0x28]
shr rax, 0x20
add r12d, eax
add ebp, r12d
cmp r11, r9
jb 0x7ffbf1ca25fc
mov dword [rsp + 0x20], ebp
mov dword [rsp + 0x24], r12d
shr edx, 0xc
mov rax, qword [rsi]
cmp edx, 3
mov qword [rsp + 0x30], rax
je 0x7ffbf1ca2661
sub edx, 0xa
neg edx
sbb edx, edx
add edx, 3
jmp 0x7ffbf1ca2666
mov edx, 2
mov r9, rdi
neg r9
sub edx, 2
je 0x7ffbf1ca268b
cmp edx, 1
je 0x7ffbf1ca267c
or rdx, 0xffffffffffffffff
jmp 0x7ffbf1ca2695
add rax, r9
mov qword [rsp + 0x30], rax
mov edx, 8
jmp 0x7ffbf1ca2695
add dword [rsp + 0x30], r9d
mov edx, 4
xor r9d, r9d
test rdx, rdx
je 0x7ffbf1ca26e7
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
mov r12d, dword [rsp + 0x28]
shr rax, 0x20
add r12d, eax
add ebp, r12d
cmp r9, rdx
jb 0x7ffbf1ca269d
mov dword [rsp + 0x20], ebp
mov dword [rsp + 0x24], r12d
lea rbx, [rdx + rsi]
mov r9, qword [rsp + 0x68]
jmp 0x7ffbf1ca256a
mov r13, qword [rsp + 0x60]
xor edx, edx
mov r8, qword [rsp + 0x58]
mov dil, dl
sub r8, rbx
je 0x7ffbf1ca2757
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 0x7ffbf1ca2709
mov dword [rsp + 0x20], ebp
mov dword [rsp + 0x24], r12d
xor ebp, ebp
mov r12, qword [rsp + 0x38]
mov rcx, rbp
mov rax, rcx
inc rcx
and eax, 7
cmp rcx, 6
mov al, byte [rsp + rax + 0x20]
mov byte [rsp + rcx + 0xe7], al
jb 0x7ffbf1ca2761
mov eax, 0x3859fe8b
mov r14b, byte [rsp + 0xed]
mov r15b, byte [rsp + 0xec]
mov bpl, byte [rsp + 0xea]
mov r11b, byte [rsp + 0xe8]
lea rsi, [r12 - 1]
mov r12b, byte [rsp + 0xe9]
or r11b, 1
mov byte [rsp + 0xe8], r11b
or bpl, 1
mov byte [rsp + 0xea], bpl
or r15b, 1
or r14b, 1
test rsi, rsi
mov byte [rsp + 0xec], r15b
mov byte [rsp + 0xed], r14b
je 0x7ffbf1ca2946
mov rax, qword [rsp + 0x48]
lea rbx, [rsi + r13]
sub rax, r13
mov qword [rsp + 0xe0], rax
test sil, 1
mov r9b, byte [rbx]
movzx ecx, r9b
je 0x7ffbf1ca2890
xor r9b, byte [rsp + 0xeb]
movzx r8d, byte [rsp + 0xeb]
and r9b, 1
je 0x7ffbf1ca283b
movzx edx, bpl
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 0x7ffbf1ca2842
mov edx, ecx
xor edx, r8d
shr edx, 1
movzx r10d, byte [rbx - 1]
mov eax, r10d
xor eax, edx
test al, 1
je 0x7ffbf1ca2878
test r9b, r9b
je 0x7ffbf1ca286b
btc ecx, 8
movzx edx, bpl
shr r8d, 1
shr edx, 1
sar ecx, 1
xor edx, r8d
xor edx, ecx
jmp 0x7ffbf1ca2872
mov edx, ecx
xor edx, r8d
shr edx, 1
movzx eax, r14b
jmp 0x7ffbf1ca28f1
test r9b, r9b
je 0x7ffbf1ca2886
movzx edx, bpl
jmp 0x7ffbf1ca290b
mov edx, ecx
xor edx, r8d
jmp 0x7ffbf1ca2922
xor r9b, r12b
movzx r8d, r12b
and r9b, 1
je 0x7ffbf1ca28b6
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 0x7ffbf1ca28bd
mov edx, r8d
xor edx, ecx
shr edx, 1
movzx r10d, byte [rbx - 1]
mov eax, r10d
xor eax, edx
test al, 1
je 0x7ffbf1ca2902
test r9b, r9b
je 0x7ffbf1ca28e6
btc ecx, 8
movzx edx, r11b
shr r8d, 1
shr edx, 1
sar ecx, 1
xor edx, r8d
xor edx, ecx
jmp 0x7ffbf1ca28ed
mov edx, r8d
xor edx, ecx
shr edx, 1
movzx eax, r15b
shr eax, 1
xor r10d, edx
btc eax, 7
sar r10d, 1
xor eax, r10d
jmp 0x7ffbf1ca292b
test r9b, r9b
je 0x7ffbf1ca291d
movzx edx, r11b
btc ecx, 8
shr edx, 1
shr r8d, 1
sar ecx, 1
xor edx, r8d
xor edx, ecx
jmp 0x7ffbf1ca2924
mov edx, r8d
xor edx, ecx
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 0x7ffbf1ca27fa
movzx eax, r12b
mov dl, byte [r13]
movzx ecx, byte [r13]
xor ecx, eax
xor dl, r12b
shr ecx, 1
and dl, 1
je 0x7ffbf1ca296d
movzx eax, r11b
btc eax, 8
sar eax, 1
xor eax, ecx
jmp 0x7ffbf1ca296f
mov eax, ecx
xor ebp, ebp
test al, 1
je 0x7ffbf1ca2996
cmp dl, bpl
je 0x7ffbf1ca2988
movzx edx, r11b
btc edx, 8
sar edx, 1
xor edx, ecx
jmp 0x7ffbf1ca298a
mov edx, ecx
movzx eax, r15b
xor eax, edx
btc eax, 8
jmp 0x7ffbf1ca29ab
cmp dl, bpl
je 0x7ffbf1ca29a9
movzx eax, r11b
btc eax, 8
sar eax, 1
xor eax, ecx
jmp 0x7ffbf1ca29ab
mov eax, ecx
mov r15, qword [rsp + 0xd0]
sar eax, 1
xor dil, al
mov rsi, qword [rsp + 0xd8]
mov r14, qword [rsp + 0x48]
mov r12, qword [rsp + 0x38]
mov byte [r14], al
cmp dil, byte [r12 + r13 + 8]
je 0x7ffbf1ca2a96
call fcn.7ffbf1d47140
lea r10, [fcn.7ffbf1cb7480]
mov qword [r15 + 0x10], r10
mov rbx, rax
mov rdi, rbp
mov rcx, qword [0x7ffbf1d6a520]
mov r11d, 0xffff
lea r8, [r15 + 0x18]
and r8, 0xfffffffffffffff8
and rbx, 0xfffffffffffff000
lea r9, [r8 + 0xfff]
and r9, 0xfffffffffffff000
imul rcx, rcx, 0x343fd
shl rdi, 0x10
shr r11, 0x10
add rcx, 0x269ec3
mov rax, rcx
shr rax, 0x10
movzx edx, ax
or rdi, rdx
cmp r11, rbp
jne 0x7ffbf1ca2a18
movabs rax, 0x8000800080008001
mov qword [0x7ffbf1d6a520], rcx
mov qword [rsi + 0x98], rbx
mul rdi
shr rdx, 0xf
imul rdx, rdx, 0xffff
sub rdi, rdx
inc rdi
mov qword [rsi + 0xb0], rdi
mov qword [rsp + 0xd0], rbp
jmp 0x7ffbf1ca2a8c
mov rax, qword [rsp + 0xd0]
mov qword [r8], rax
add r8, 8
cmp r8, r9
jb 0x7ffbf1ca2a7d
jmp 0x7ffbf1ca2bb7
mov rbx, r13
mov rax, qword [0x7ffbf1cf0238]
sub rbx, r14
lea rcx, [0x7ffbf1ca0000]
mov rsi, rcx
sub rsi, rax
jne 0x7ffbf1ca2abb
cmp rbx, rbp
je 0x7ffbf1ca2ba3
mov r11, r14
xor edi, edi
sub r11, r13
sub r13d, ecx
mov rcx, qword [0x7ffbf1cac1e8]
lea r8d, [rcx - 1]
test r8d, r8d
lea ebp, [r12 + r13]
lea r12, [0x7ffbf1cac1e8]
js 0x7ffbf1ca2b0e
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 0x7ffbf1ca2b04
lea r8d, [rax - 1]
jmp 0x7ffbf1ca2b09
jbe 0x7ffbf1ca2b66
lea edi, [rax + 1]
cmp r8d, edi
jge 0x7ffbf1ca2ae1
movsxd r10, edi
mov eax, ecx
cmp r10, rax
jae 0x7ffbf1ca2ba3
lea r15, [0x7ffbf1ca0000]
mov edx, dword [r12 + r10*4 + 4]
mov edi, 0xfffffff
mov eax, edx
and eax, edi
cmp eax, ebp
jae 0x7ffbf1ca2b9b
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 0x7ffbf1ca2b70
sub edi, 1
je 0x7ffbf1ca2b6b
cmp edi, 1
jne 0x7ffbf1ca2b76
mov r8, rsi
jmp 0x7ffbf1ca2b76
movsxd r10, eax
jmp 0x7ffbf1ca2b11
mov r8, rbx
jmp 0x7ffbf1ca2b76
mov r8, rsi
sub r8, rbx
sub edx, 2
je 0x7ffbf1ca2b86
cmp edx, 1
jne 0x7ffbf1ca2b91
add qword [r9 + r11], r8
jmp 0x7ffbf1ca2b8a
add dword [r9 + r11], r8d
mov rcx, qword [0x7ffbf1cac1e8]
mov eax, ecx
inc r10
cmp r10, rax
jb 0x7ffbf1ca2b23
mov r15, qword [rsp + 0xd0]
mov eax, dword [0x7ffbf1cb6330]
mov eax, 0x6858fefc
mov rdx, qword [rsp + 0x70]
lea r10, [r14 + rdx]
mov qword [r15 + 0x10], r10
add rsp, 0x88
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret