Function at 0x7ffbf1cd9748
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xa8
mov rax, qword [0x7ffbf1d68270]
xor rax, rsp
mov qword [rsp + 0x98], rax
mov r14, qword [rsp + 0x110]
mov rsi, r9
mov qword [rsp + 0x48], r9
mov rbx, r8
mov r13, rdx
mov ebp, ecx
xor r12d, r12d
call fcn.7ffbf1d24a48
test al, al
jne 0x7ffbf1cd9d6c
test ebp, ebp
je 0x7ffbf1cd9d66
test r13, r13
je 0x7ffbf1cd9d66
test rbx, rbx
je 0x7ffbf1cd9d66
cmp dword [rbx], 1
mov r15d, 0x80070057
jne 0x7ffbf1cd98cd
cmp ebp, 0xf
jae 0x7ffbf1cd97fb
cmp dword [rbx + 4], r12d
je 0x7ffbf1cd980f
and dword [rbx + 0x244], r12d
mov dword [rbx + 0x240], ebp
mov dword [rbx + 0x218], 1
cmp ebp, 0x10
jb 0x7ffbf1cd98c4
lea edx, [r12 + 7]
mov eax, ebp
and eax, edx
sub edx, eax
mov esi, edx
add rsi, r13
jmp 0x7ffbf1cd984a
lea rcx, [rbp + r13 - 0xf]
test rcx, rcx
je 0x7ffbf1cd98c1
cmp dword [rbx + 4], r12d
jne 0x7ffbf1cd981a
mov r12d, 0x800480d2
jmp 0x7ffbf1cd98c4
and dword [rbx + 0x244], r12d
mov dword [rbx + 0x240], ebp
mov dword [rbx + 0x218], 1
cmp ebp, 0x10
jb 0x7ffbf1cd98c4
mov edx, 7
mov eax, ebp
and eax, edx
sub edx, eax
mov esi, edx
add rsi, rcx
lea rdi, [rbx + 0x238]
mov ecx, 8
lea r8, [rbx + 0x2c]
rep movsb byte [rdi], byte [rsi]
mov eax, dword [rbx + 0x24]
lea rdx, [rbx + 0x230]
xor dword [rbx + 0x238], eax
mov eax, dword [rbx + 0x28]
lea rcx, [rbx + 0x238]
xor dword [rbx + 0x23c], eax
xor r9d, r9d
call fcn.7ffbf1d0dc74
mov edx, dword [rbx + 0x1c]
mov eax, dword [rbx + 0x20]
xor dword [rbx + 0x230], edx
xor dword [rbx + 0x234], eax
lea rcx, [rbx + 0x110]
lea r8, [rbx + 0x230]
mov edx, 8
call fcn.7ffbf1d0f390
lea rcx, [rbx + 0x21c]
call fcn.7ffbf1d01968
mov rsi, qword [rsp + 0x48]
jmp 0x7ffbf1cd98c4
mov r12d, r15d
test r12d, r12d
js 0x7ffbf1cd9d6c
xor edi, edi
mov eax, 0x24924925
mov r10d, ebp
xor r12d, r12d
mov dword [rsp + 0x60], edi
mul ebp
mov eax, ebp
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 6
imul eax, eax, 0x70
sub r10d, eax
add r10d, 0x190
cmp dword [rbx], 1
mov dword [rsp + 0x58], r10d
jne 0x7ffbf1cd991f
mov eax, dword [rbx + 0x244]
lea ecx, [rax + rbp]
cmp ecx, eax
jbe 0x7ffbf1cd9917
cmp ecx, dword [rbx + 0x240]
jbe 0x7ffbf1cd9924
mov r12d, r15d
jmp 0x7ffbf1cd9d6c
test rsi, rsi
je 0x7ffbf1cd9917
cmp dword [rbx + 4], edi
jne 0x7ffbf1cd9934
mov r12d, 0x800480d2
jmp 0x7ffbf1cd9d6c
cmp dword [rbx], 1
jne 0x7ffbf1cd9bc9
cmp dword [rbx + 0x218], edi
jne 0x7ffbf1cd9950
mov r12d, 0x800480d3
jmp 0x7ffbf1cd9d6c
mov r15d, dword [rbx + 0x240]
cmp r15d, 0x10
jae 0x7ffbf1cd998d
mov r8, r13
mov edx, ebp
mov rcx, rbx
call fcn.7ffbf1cfc2dc
nop
invalid
mov r8d, dword [rbx + 0x244]
and r15d, 0xfffffff8
lea r9d, [r8 + rbp]
lea edx, [r15 - 8]
mov dword [rsp + 0x48], r15d
mov dword [rsp + 0x50], edx
mov dword [rsp + 0x40], r9d
cmp r9d, edx
jbe 0x7ffbf1cd99cc
mov edi, edx
lea rsi, [rbx + 0x238]
mov ecx, 8
sub edi, r8d
add rdi, r13
rep movsb byte [rdi], byte [rsi]
mov edi, r12d
test ebp, ebp
je 0x7ffbf1cd9ada
mov r15d, edx
mov ecx, dword [rbx + 0x244]
mov esi, ebp
mov edx, edi
sub esi, edi
add rdx, r13
cmp r10d, esi
mov qword [rsp + 0x70], rdx
cmovb esi, r10d
cmp ecx, r15d
jae 0x7ffbf1cd9abe
mov eax, r15d
sub eax, ecx
sub eax, edi
jne 0x7ffbf1cd9a75
and dword [rsp + 0x6c], r12d
and dword [rsp + 0x68], r12d
lea rdx, [rbx + 0x21c]
lea r8, [rsp + 0x6c]
lea rcx, [rbx + 0xac]
call fcn.7ffbf1d01c60
mov r9d, dword [rsp + 0x6c]
lea rdx, [rbx + 0xdc]
mov r8d, eax
lea rax, [rsp + 0x68]
lea rcx, [rbx + 0xac]
mov qword [rsp + 0x30], rax
mov eax, dword [rbx + 0x234]
mov dword [rsp + 0x28], eax
mov eax, dword [rbx + 0x230]
mov dword [rsp + 0x20], eax
call fcn.7ffbf1d01d80
mov ecx, dword [rsp + 0x68]
mov edi, dword [rsp + 0x60]
mov dword [rbx + 0x230], ecx
mov dword [rbx + 0x234], eax
jmp 0x7ffbf1cd9ab9
cmp eax, esi
mov r8, rdx
lea rcx, [rbx + 0x110]
cmovb esi, eax
mov edx, esi
call fcn.7ffbf1d0f1d8
mov r9, qword [rsp + 0x70]
lea rdx, [rbx + 0x21c]
lea rcx, [rbx + 0xac]
mov r8d, esi
call fcn.7ffbf1d019f0
test r14, r14
je 0x7ffbf1cd9ab9
mov r8, qword [rsp + 0x70]
mov rcx, qword [r14]
mov edx, esi
call qword [r14 + 8]
mov r10d, dword [rsp + 0x58]
add edi, esi
mov dword [rsp + 0x60], edi
cmp edi, ebp
jb 0x7ffbf1cd99d7
mov r15d, dword [rsp + 0x48]
mov edx, dword [rsp + 0x50]
mov r9d, dword [rsp + 0x40]
mov r8d, dword [rbx + 0x244]
cmp r8d, r15d
jae 0x7ffbf1cd9ba5
cmp r9d, edx
jbe 0x7ffbf1cd9ba5
cmp edx, r8d
mov eax, 4
lea rsi, [rbx + 0x230]
mov rcx, rax
lea rdi, [rsp + 0x70]
rep movsb byte [rdi], byte [rsi]
mov rcx, rax
mov eax, r9d
lea rsi, [rbx + 0x234]
lea rdi, [rsp + 0x74]
rep movsb byte [rdi], byte [rsi]
mov esi, r8d
lea rcx, [rbx + 0x110]
cmovae esi, edx
cmp r15d, r9d
cmovbe eax, r15d
sub r9d, esi
mov dword [rsp + 0x48], eax
mov eax, esi
mov edx, r9d
sub eax, r8d
mov dword [rsp + 0x40], r9d
mov r8d, eax
add r8, r13
call fcn.7ffbf1d0f1d8
mov r8d, dword [rsp + 0x48]
lea eax, [r15 - 8]
movsxd rcx, eax
mov edi, esi
movsxd rax, esi
cmp esi, r8d
jae 0x7ffbf1cd9b89
sub rax, rcx
lea rdx, [rsp + rax + 0x70]
mov al, byte [rdx]
mov ecx, edi
inc edi
sub ecx, dword [rbx + 0x244]
inc rdx
mov byte [rcx + r13], al
cmp edi, r8d
jb 0x7ffbf1cd9b71
test r14, r14
je 0x7ffbf1cd9ba5
sub esi, dword [rbx + 0x244]
mov edx, dword [rsp + 0x40]
mov rcx, qword [r14]
mov r8d, esi
add r8, r13
call qword [r14 + 8]
add dword [rbx + 0x244], ebp
mov eax, dword [rbx + 0x244]
cmp eax, dword [rbx + 0x240]
jb 0x7ffbf1cd9d6c
and dword [rbx + 0x218], r12d
jmp 0x7ffbf1cd9d6c
mov rdx, qword [rbx + 8]
mov rcx, qword [rsi + 8]
mov ebx, 0x10
mov eax, ecx
shr rcx, 4
mov qword [rsp + 0x60], rdx
and eax, 0xf
mov dword [rsp + 0x48], r12d
sub ebx, eax
mov eax, ecx
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x50], ebx
test rdx, rdx
je 0x7ffbf1cd9917
mov rax, qword [rsi]
lea rcx, [rsp + 0x70]
mov edx, 8
mov qword [rsp + 0x70], rax
call fcn.7ffbf1d03a08
mov r15, qword [rsp + 0x40]
lea rdi, [rsp + 0x78]
lea rsi, [rsp + 0x70]
mov ecx, 8
rep movsb byte [rdi], byte [rsi]
test ebx, ebx
je 0x7ffbf1cd9cc2
lea rcx, [rsp + 0x40]
cmp ebp, ebx
mov edx, 8
cmovb ebx, ebp
mov qword [rsp + 0x40], r15
call fcn.7ffbf1d03a08
lea rdi, [rsp + 0x80]
lea rsi, [rsp + 0x40]
mov ecx, 8
rep movsb byte [rdi], byte [rsi]
mov rcx, qword [rsp + 0x60]
lea r8, [rsp + 0x78]
lea rdx, [rsp + 0x88]
mov r9d, 1
call fcn.7ffbf1d1ed3c
movsxd rax, dword [rsp + 0x50]
test ebx, ebx
je 0x7ffbf1cd9ca7
lea rcx, [rsp + 0x98]
mov rdx, r13
mov edi, ebx
sub rcx, rax
mov al, byte [rcx]
inc rcx
xor byte [rdx], al
inc rdx
sub rdi, 1
jne 0x7ffbf1cd9c97
test r14, r14
je 0x7ffbf1cd9cb8
mov rcx, qword [r14]
mov r8, r13
mov edx, ebx
call qword [r14 + 8]
mov eax, ebx
sub ebp, ebx
add r13, rax
inc r15
test ebp, ebp
je 0x7ffbf1cd9d6c
mov r12, qword [rsp + 0x60]
mov ebx, 0x10
lea rcx, [rsp + 0x50]
mov edx, 8
cmp ebp, ebx
mov qword [rsp + 0x50], r15
cmovb ebx, ebp
call fcn.7ffbf1d03a08
lea rdi, [rsp + 0x80]
lea rsi, [rsp + 0x50]
mov ecx, 8
lea r8, [rsp + 0x78]
rep movsb byte [rdi], byte [rsi]
lea rdx, [rsp + 0x88]
mov r9d, 1
mov rcx, r12
call fcn.7ffbf1d1ed3c
test ebx, ebx
je 0x7ffbf1cd9d3e
lea rdx, [rsp + 0x88]
mov rcx, r13
mov edi, ebx
sub rdx, r13
mov al, byte [rdx + rcx]
xor byte [rcx], al
inc rcx
sub rdi, 1
jne 0x7ffbf1cd9d30
test r14, r14
je 0x7ffbf1cd9d4f
mov rcx, qword [r14]
mov r8, r13
mov edx, ebx
call qword [r14 + 8]
mov eax, ebx
inc r15
add r13, rax
sub ebp, ebx
jne 0x7ffbf1cd9ccf
mov r12d, dword [rsp + 0x48]
jmp 0x7ffbf1cd9d6c
mov r12d, 0x80070057
mov eax, r12d
mov rcx, qword [rsp + 0x98]
xor rcx, rsp
call fcn.7ffbf1d2cc34
add rsp, 0xa8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret