Function at 0x1801370f0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rax, rcx
mov rbx, r8
mov ecx, dword [rcx + 0x30]
mov r10, rdx
mov ebp, 1
mov r11d, dword [rax + 0x24]
test r11d, r11d
jle 0x180137723
cmp r9d, 8
ja 0x180137172
cmp r9d, ecx
jne 0x180137172
mov rdx, qword [rax + 0x68]
imul r11d, r9d
add r11d, 7
shr r11d, 3
test rdx, rdx
je 0x18013715f
sub r10, rbx
movzx eax, byte [rbx]
sub r11d, ebp
mov cl, byte [rax + rdx]
mov byte [r10 + rbx], cl
add rbx, rbp
test r11d, r11d
jg 0x180137145
jmp 0x180137723
mov r8d, r11d
mov rdx, rbx
mov rcx, r10
call sub.msvcrt.dll_memcpy
jmp 0x180137723
mov esi, 2
cmp r9d, esi
je 0x18013765a
cmp r9d, 4
je 0x1801374be
cmp r9d, 8
je 0x18013742b
cmp r9d, 0x10
je 0x1801373ac
cmp r9d, 0x18
je 0x180137368
cmp r9d, 0x20
jne 0x18013765e
cmp ecx, 0x18
jne 0x18013728b
mov cl, byte [rax + 0xd7]
test bl, 3
jne 0x18013722b
test cl, cl
je 0x1801371f9
mov ecx, dword [rbx]
sub r11d, ebp
mov eax, ecx
lea rbx, [rbx + 4]
shr eax, 0x10
mov byte [r10], al
add r10, rbp
mov eax, ecx
shr eax, 8
mov byte [r10], al
add r10, rbp
mov byte [r10], cl
add r10, rbp
test r11d, r11d
jg 0x1801371ca
jmp 0x180137723
mov ecx, dword [rbx]
sub r11d, ebp
mov eax, ecx
lea rbx, [rbx + 4]
shr eax, 8
mov byte [r10], al
add r10, rbp
mov eax, ecx
shr ecx, 0x18
shr eax, 0x10
mov byte [r10], al
add r10, rbp
mov byte [r10], cl
add r10, rbp
test r11d, r11d
jg 0x1801371f9
jmp 0x180137723
test cl, cl
je 0x18013725d
inc rbx
mov al, byte [rbx + 1]
sub r11d, ebp
mov byte [r10], al
add r10, rbp
mov al, byte [rbx]
lea rbx, [rbx + 4]
mov byte [r10], al
add r10, rbp
mov al, byte [rbx - 5]
mov byte [r10], al
add r10, rbp
test r11d, r11d
jg 0x180137232
jmp 0x180137723
add rbx, rsi
mov al, byte [rbx - 1]
sub r11d, ebp
mov byte [r10], al
add r10, rbp
mov al, byte [rbx]
lea rbx, [rbx + 4]
mov byte [r10], al
add r10, rbp
mov al, byte [rbx - 3]
mov byte [r10], al
add r10, rbp
test r11d, r11d
jg 0x180137260
jmp 0x180137723
cmp ecx, 0x20
jne 0x18013765e
mov rcx, rbx
and ecx, 3
cmp byte [rax + 0xd7], 0
je 0x18013730c
test rcx, rcx
jne 0x1801372d3
sub rbx, r10
mov eax, dword [rbx + r10]
sub r11d, ebp
ror eax, 0x10
xor eax, dword [rbx + r10]
and eax, 0xff00ff
xor eax, dword [rbx + r10]
mov dword [r10], eax
lea r10, [r10 + 4]
test r11d, r11d
jg 0x1801372ab
jmp 0x180137723
inc rbx
movzx ecx, byte [rbx + 2]
sub r11d, ebp
movzx eax, byte [rbx - 1]
shl eax, 0x10
shl ecx, 0x18
add ecx, eax
movzx eax, byte [rbx]
shl eax, 8
lea rbx, [rbx + 4]
add ecx, eax
movzx eax, byte [rbx - 3]
add ecx, eax
mov dword [r10], ecx
lea r10, [r10 + 4]
test r11d, r11d
jg 0x1801372d6
jmp 0x180137723
test rcx, rcx
jne 0x18013732f
sub rbx, r10
mov eax, dword [rbx + r10]
sub r11d, ebp
ror eax, 8
mov dword [r10], eax
lea r10, [r10 + 4]
test r11d, r11d
jg 0x180137314
jmp 0x180137723
add rbx, rsi
movzx ecx, byte [rbx - 2]
sub r11d, ebp
movzx eax, byte [rbx + 1]
shl eax, 0x10
shl ecx, 0x18
add ecx, eax
movzx eax, byte [rbx]
shl eax, 8
lea rbx, [rbx + 4]
add ecx, eax
movzx eax, byte [rbx - 5]
add ecx, eax
mov dword [r10], ecx
lea r10, [r10 + 4]
test r11d, r11d
jg 0x180137332
jmp 0x180137723
cmp ecx, 0x18
jne 0x18013765e
cmp byte [rax + 0xd7], 0
je 0x180137723
inc rbx
mov al, byte [rbx + 1]
sub r11d, ebp
mov byte [r10], al
add r10, rbp
mov al, byte [rbx]
lea rbx, [rbx + 3]
mov byte [r10], al
add r10, rbp
mov al, byte [rbx - 4]
mov byte [r10], al
add r10, rbp
test r11d, r11d
jg 0x180137381
jmp 0x180137723
cmp ecx, 0x18
jne 0x18013765e
mov rdi, qword [rax + 0x58]
test rdi, rdi
je 0x180137723
mov rsi, qword [rax + 0x60]
test rsi, rsi
je 0x180137723
xor r8d, r8d
xor edx, edx
movzx eax, byte [rbx]
mov ecx, edx
add rbx, rbp
add edx, 0x18
mov r9d, dword [rdi + rax*4]
movzx eax, byte [rbx]
add rbx, rbp
add r9d, dword [rsi + rax*4]
mov eax, r9d
shl eax, cl
add r8d, eax
cmp edx, 0x20
jb 0x180137413
mov dword [r10], r8d
add edx, 0xffffffe0
mov eax, 0x18
add r10, 4
sub eax, edx
mov r8d, r9d
mov cl, al
shr r8d, cl
sub r11d, ebp
test r11d, r11d
jg 0x1801373d4
test edx, edx
je 0x180137723
mov dword [r10], r8d
jmp 0x180137723
mov rdi, qword [rax + 0x68]
mov r9d, ebp
shl r9d, cl
mov r8d, ebp
sub r9d, ebp
test rdi, rdi
je 0x180137472
movzx eax, byte [rbx]
add rbx, rbp
movzx edx, byte [rax + rdi]
mov eax, r8d
shl eax, cl
and edx, r9d
lea r8d, [rax + rdx]
cmp r8d, 0xff
jbe 0x180137468
mov byte [r10], r8b
add r10, rbp
mov r8d, ebp
sub r11d, ebp
test r11d, r11d
jg 0x180137440
jmp 0x18013749e
movzx edx, byte [rbx]
mov eax, r8d
and edx, r9d
shl eax, cl
add rbx, rbp
lea r8d, [rax + rdx]
cmp r8d, 0xff
jbe 0x180137496
mov byte [r10], r8b
add r10, rbp
mov r8d, ebp
sub r11d, ebp
test r11d, r11d
jg 0x180137472
cmp r8d, ebp
jbe 0x180137723
mov eax, 0x100
jmp 0x1801374b1
shl r8d, cl
cmp r8d, eax
jb 0x1801374ae
mov byte [r10], r8b
jmp 0x180137723
cmp ecx, esi
jne 0x1801375b4
mov r9, qword [rax + 0x68]
test r9, r9
je 0x180137549
cmp r11d, esi
jle 0x180137525
lea eax, [r11 - 3]
shr eax, 2
add eax, ebp
mov edi, eax
neg eax
lea r11d, [r11 + rax*4]
movzx eax, byte [rbx]
add rbx, rbp
mov cl, byte [rax + r9]
movzx eax, byte [rbx]
mov dl, cl
and dl, 3
and cl, 0xf0
shl dl, 2
add rbx, rbp
add dl, cl
mov r8b, byte [rax + r9]
shl dl, 2
mov al, r8b
shr al, 2
and r8b, 3
and al, 0xc
add dl, al
add dl, r8b
mov byte [r10], dl
add r10, rbp
sub rdi, rbp
jne 0x1801374e5
test r11d, r11d
jle 0x180137723
movzx eax, byte [rbx]
mov cl, byte [rax + r9]
mov al, cl
and cl, 0xf0
and al, 3
shl al, 2
add al, cl
shl al, 2
jmp 0x1801376cf
cmp r11d, esi
jle 0x180137592
lea eax, [r11 - 3]
shr eax, 2
add eax, ebp
mov r8d, eax
neg eax
lea r11d, [r11 + rax*4]
mov al, byte [rbx]
add rbx, rbp
mov cl, al
and al, 0xf0
and cl, 3
shl cl, 2
mov dl, byte [rbx]
add cl, al
shl cl, 2
mov al, dl
shr al, 2
and dl, 3
and al, 0xc
add rbx, rbp
add cl, al
add cl, dl
mov byte [r10], cl
add r10, rbp
sub r8, rbp
jne 0x180137560
test r11d, r11d
jle 0x180137723
mov al, byte [rbx]
mov cl, al
and al, 0xf0
and cl, 3
shl cl, 2
add cl, al
shl cl, 2
mov byte [r10], cl
jmp 0x180137723
cmp ecx, ebp
jne 0x18013765e
mov r8, qword [rax + 0x68]
mov edx, ebp
test r8, r8
je 0x180137613
movzx eax, byte [rbx]
add rbx, rbp
movzx ecx, byte [rax + r8]
mov eax, ecx
and ecx, ebp
shr eax, 3
and eax, esi
add eax, ecx
lea edx, [rax + rdx*4]
cmp edx, 0xff
jbe 0x1801375f0
mov byte [r10], dl
add r10, rbp
mov edx, ebp
sub r11d, esi
test r11d, r11d
jg 0x1801375c7
cmp edx, ebp
jbe 0x180137723
mov eax, 0x100
jmp 0x18013760a
shl edx, 2
cmp edx, eax
jb 0x180137607
jmp 0x180137720
movzx eax, byte [rbx]
add rbx, rbp
mov ecx, eax
shr eax, 3
and eax, esi
and ecx, ebp
add eax, ecx
lea edx, [rax + rdx*4]
cmp edx, 0xff
jbe 0x180137637
mov byte [r10], dl
add r10, rbp
mov edx, ebp
sub r11d, esi
test r11d, r11d
jg 0x180137613
cmp edx, ebp
jbe 0x180137723
mov eax, 0x100
jmp 0x180137651
shl edx, 2
cmp edx, eax
jb 0x18013764e
jmp 0x180137720
cmp ecx, ebp
je 0x180137665
xor al, al
jmp 0x180137726
mov r9, qword [rax + 0x68]
lea r8, [0x180181d20]
test r9, r9
je 0x1801376d4
cmp r11d, 4
jle 0x1801376bb
lea eax, [r11 - 5]
shr eax, 3
add eax, ebp
mov edi, eax
neg eax
lea r11d, [r11 + rax*8]
movzx eax, byte [rbx + 1]
movzx ecx, byte [rax + r9]
movzx eax, byte [rbx]
add rbx, rsi
mov dl, byte [rcx + r8]
movzx ecx, byte [rax + r9]
and dl, 0xf
mov al, byte [rcx + r8]
shl al, 4
add dl, al
mov byte [r10], dl
add r10, rbp
sub rdi, rbp
jne 0x18013768c
test r11d, r11d
jle 0x180137723
movzx eax, byte [rbx]
movzx ecx, byte [rax + r9]
mov al, byte [rcx + r8]
shl al, 4
mov byte [r10], al
jmp 0x180137723
cmp r11d, 4
jle 0x180137711
lea eax, [r11 - 5]
shr eax, 3
add eax, ebp
mov r9d, eax
neg eax
lea r11d, [r11 + rax*8]
movzx eax, byte [rbx + 1]
mov dl, byte [rax + r8]
movzx eax, byte [rbx]
and dl, 0xf
add rbx, rsi
mov cl, byte [rax + r8]
shl cl, 4
add dl, cl
mov byte [r10], dl
add r10, rbp
sub r9, rbp
jne 0x1801376ec
test r11d, r11d
jle 0x180137723
movzx ecx, byte [rbx]
mov dl, byte [rcx + r8]
shl dl, 4
mov byte [r10], dl
mov al, bpl
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret