Function at 0x4c40b5
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
mov eax, 0x2248
call fcn.005ab800
sub rsp, rax
mov r12, r9
mov r15, r8
mov r14, rdx
mov rdi, rcx
mov bl, byte [rsp + 0x22b0]
lea rcx, [rsp + 0x40]
mov r8d, 0x84
xor edx, edx
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0xc4]
mov r8d, 0x84
xor edx, edx
call sub.msvcrt.dll_memset
lea r14, [r14 + r14*8]
test bl, bl
je 0x4c4156
mov rax, r14
shl rax, 5
add rax, rdi
add rax, 0xd80
xor edx, edx
movzx ecx, byte [rax + rdx]
cmp rcx, 0x20
ja 0x4c48fb
mov r8d, dword [rsp + rcx*4 + 0x40]
mov r9d, r8d
and r9d, 1
xor r8d, 1
lea r8d, [r8 + r9*2]
mov dword [rsp + rcx*4 + 0x40], r8d
inc rdx
cmp r15, rdx
jne 0x4c4122
jmp 0x4c4783
xor esi, esi
lea rcx, [rsp + 0x148]
mov r8d, 0x480
xor edx, edx
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x1dc8]
mov r8d, 0x480
mov r13, rcx
xor edx, edx
call sub.msvcrt.dll_memset
mov rbp, r14
shl rbp, 6
lea rax, [rdi + rbp]
xor ecx, ecx
cmp rcx, 0x11f
ja 0x4c4904
movzx edx, word [rax + rcx*2]
test dx, dx
je 0x4c41c8
cmp rsi, 0x11f
ja 0x4c493b
mov word [rsp + rsi*4 + 0x148], dx
mov word [rsp + rsi*4 + 0x14a], cx
inc rsi
mov rdx, rcx
xor rdx, 1
and ecx, 1
lea rcx, [rdx + rcx*2]
cmp rcx, r15
jb 0x4c4192
cmp rsi, 0x121
jae 0x4c49d5
xor ebx, ebx
lea rcx, [rsp + 0xdc8]
mov r8d, 0x1000
xor edx, edx
call sub.msvcrt.dll_memset
test rsi, rsi
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x20], r14
mov qword [rsp + 0x30], rbp
je 0x4c425f
lea rax, [rsi*4]
xor ecx, ecx
lea r9, [rsp + 0x148]
movzx edx, word [rsp + rcx + 0x148]
movzx r8d, dl
inc qword [rsp + r8*8 + 0xdc8]
shr rdx, 8
mov edx, edx
inc qword [rsp + rdx*8 + 0x15c8]
add rcx, 4
cmp rax, rcx
jne 0x4c422a
mov rbx, qword [rsp + 0x15c8]
jmp 0x4c4269
xor esi, esi
lea r9, [rsp + 0x148]
xor eax, eax
cmp rbx, rsi
sete al
mov ebx, 2
sub rbx, rax
mov rax, rsi
mov r14, rsi
xor ebp, ebp
mov r15, r14
mov r12, r13
mov r14, rax
mov r13, r9
cmp rbp, 2
je 0x4c4373
mov r8d, 0x800
lea rcx, [rsp + 0x5c8]
xor edx, edx
call sub.msvcrt.dll_memset
xor ecx, ecx
xor eax, eax
mov edx, ecx
mov qword [rsp + rcx*8 + 0x5c8], rax
mov r8, rbp
shl r8, 0xb
add r8, rsp
add r8, 0xdc8
mov r8, qword [r8 + rcx*8]
xor rcx, 1
and edx, 1
lea rdx, [rcx + rdx*2]
mov rcx, r8
and rcx, rax
xor r8, rax
lea rax, [r8 + rcx*2]
mov rcx, rdx
cmp rdx, 0x100
jb 0x4c42b0
test r14, r14
je 0x4c4359
lea rdx, [r14*4]
add rdx, r13
lea ecx, [rbp*8]
mov eax, ecx
xor eax, 0xfffffff0
or ecx, 8
and ecx, eax
mov r8, r13
movzx r9d, word [r8]
mov eax, r9d
shr eax, cl
movzx r10d, al
mov rax, qword [rsp + r10*8 + 0x5c8]
cmp rax, r15
jae 0x4c48c0
movzx r11d, word [r8 + 2]
mov word [r12 + rax*4], r9w
mov word [r12 + rax*4 + 2], r11w
inc rax
mov qword [rsp + r10*8 + 0x5c8], rax
add r8, 4
cmp r8, rdx
jne 0x4c4317
inc rbp
mov r9, r12
mov rax, r15
cmp rbx, 1
mov ebx, 1
jne 0x4c4281
jmp 0x4c4379
mov r15, r14
mov r12, r13
test r15, r15
mov rbx, qword [rsp + 0x38]
je 0x4c45a2
cmp r15, 1
jne 0x4c4399
mov word [r12], 1
jmp 0x4c457c
movzx eax, word [r12 + 4]
add word [r12], ax
lea rdx, [r15 - 1]
cmp rdx, 2
jb 0x4c448e
mov ecx, 1
mov r8d, 2
xor eax, eax
cmp r8, r15
jae 0x4c43d9
cmp rax, r15
jae 0x4c4994
movzx r9d, word [r12 + r8*4]
cmp word [r12 + rax*4], r9w
jae 0x4c43ff
cmp rax, r15
jae 0x4c4964
cmp rcx, r15
jae 0x4c4970
movzx r9d, word [r12 + rax*4]
mov word [r12 + rcx*4], r9w
mov word [r12 + rax*4], cx
inc rax
jmp 0x4c4410
cmp rcx, r15
jae 0x4c49bd
mov word [r12 + rcx*4], r9w
inc r8
cmp r8, r15
jae 0x4c442f
cmp rax, rcx
jae 0x4c4461
cmp rax, r15
jae 0x4c49c9
movzx r9d, word [r12 + rax*4]
cmp r9w, word [r12 + r8*4]
jae 0x4c4461
cmp rcx, r15
jae 0x4c497c
cmp rax, r15
jae 0x4c4988
movzx r9d, word [r12 + rax*4]
add word [r12 + rcx*4], r9w
mov word [r12 + rax*4], cx
mov r9d, eax
and r9d, 1
xor rax, 1
lea rax, [rax + r9*2]
jmp 0x4c4477
cmp rcx, r15
jae 0x4c49a0
movzx r9d, word [r12 + r8*4]
add word [r12 + rcx*4], r9w
inc r8
mov r9, rcx
xor r9, 1
and ecx, 1
lea rcx, [r9 + rcx*2]
cmp rcx, rdx
jb 0x4c43bf
mov rax, r15
or rax, 0xfffffffffffffffd
mov rcx, r15
and rcx, 0xfffffffffffffffd
add rcx, rax
inc rcx
cmp rcx, r15
jae 0x4c49e9
mov word [r12 + rcx*4], 0
cmp r15, 2
je 0x4c44ef
lea rcx, [r15 - 3]
cmp r15, 3
jb 0x4c494f
movzx eax, word [r12 + rcx*4]
cmp r15, rax
jbe 0x4c4958
movzx eax, word [r12 + rax*4]
mov edx, eax
and edx, 1
xor eax, 1
lea eax, [rax + rdx*2]
mov word [r12 + rcx*4], ax
add rcx, 0xffffffffffffffff
jb 0x4c44bc
lea edx, [r15 - 2]
lea ecx, [r15 - 1]
mov r10d, 1
xor r8d, r8d
test edx, edx
js 0x4c452c
lea r9d, [rdx + 1]
xor r11d, r11d
mov eax, edx
cmp r15, rax
jbe 0x4c48d2
cmp word [r12 + rax*4], r8w
jne 0x4c4531
inc r11d
add edx, 0xffffffff
jb 0x4c450b
mov edx, 0xffffffff
jmp 0x4c454c
xor r9d, r9d
jmp 0x4c454c
mov r9d, r11d
jmp 0x4c454c
movsxd rcx, ecx
cmp r15, rcx
jbe 0x4c48c9
mov word [r12 + rcx*4], r8w
dec ecx
dec r10d
cmp r10d, r9d
jg 0x4c4536
mov eax, r9d
and eax, 0xfffffffd
mov r10d, r9d
and r10d, 2
or r9d, 2
imul r9d, r10d
xor r10d, 2
imul r10d, eax
add r9d, r10d
inc r8d
mov r10d, r9d
test r9d, r9d
jg 0x4c4500
lea rax, [r15*4]
xor edx, edx
movzx ecx, word [r12 + rdx]
cmp rcx, 0x20
ja 0x4c490d
inc dword [rsp + rcx*4 + 0x40]
add rdx, 4
cmp rax, rdx
jne 0x4c4586
lea r13, [rbx + 1]
cmp rsi, 2
jb 0x4c4667
xor eax, eax
mov rcx, rbx
add eax, dword [rsp + rcx*4 + 0x44]
inc rcx
cmp rcx, 0x20
jne 0x4c45b5
add dword [rsp + rbx*4 + 0x40], eax
lea ecx, [rbx + rbx]
and ecx, 2
mov rax, rbx
xor rax, 1
lea rdx, [rcx + rax]
cmp rdx, 1
je 0x4c4667
test rdx, rdx
je 0x4c49f5
lea rdx, [rax + rcx]
dec rdx
mov ecx, ebx
and ecx, 1
shl rax, 2
lea rax, [rax + rcx*8]
lea r8, [rsp + rax]
add r8, 0x3c
xor eax, eax
xor ecx, ecx
mov r9d, dword [r8]
shl r9d, cl
add eax, r9d
inc rcx
add r8, 0xfffffffffffffffc
cmp rdx, rcx
jne 0x4c460a
mov edx, 1
mov ecx, ebx
shl edx, cl
cmp edx, eax
jae 0x4c4667
inc edx
dec dword [rsp + rbx*4 + 0x40]
mov r8, r13
lea rcx, [r8 - 1]
cmp rcx, 1
jbe 0x4c4663
mov r9d, dword [rsp + r8*4 + 0x38]
mov r8, rcx
test r9d, r9d
je 0x4c4635
dec r9d
mov dword [rsp + rcx*4 + 0x3c], r9d
cmp rcx, 0x20
ja 0x4c49ac
add dword [rsp + rcx*4 + 0x40], 2
cmp edx, eax
jne 0x4c462c
mov r14, rbx
mov rbp, qword [rsp + 0x20]
shl rbp, 5
lea rcx, [rdi + rbp]
add rcx, 0xd80
xor ebx, ebx
mov r8d, 0x120
xor edx, edx
call sub.msvcrt.dll_memset
mov rax, qword [rsp + 0x30]
lea rcx, [rdi + rax]
add rcx, 0x6c0
mov r8d, 0x240
xor edx, edx
call sub.msvcrt.dll_memset
add r12, 2
mov ecx, 1
xor eax, eax
xor r9d, r9d
mov rdx, rsi
test r9b, 1
je 0x4c46d9
test r13, r13
je 0x4c4776
cmp rbx, 0x21
je 0x4c4776
dec r13
jmp 0x4c470b
cmp r13, rcx
jbe 0x4c4776
lea r8, [rbx*4]
mov r9d, 0x84
sub r9, r8
shr r9, 2
cmp r9, rcx
jbe 0x4c4776
add rbx, rcx
mov r8, rcx
not r8
add r13, r8
add rax, rcx
mov r8, rax
movsxd r10, dword [rsp + rbx*4 + 0x40]
mov rsi, rdx
sub rsi, r10
jb 0x4c4916
cmp rdx, r15
ja 0x4c4927
inc rbx
lea rax, [r8 + 1]
mov r9b, 1
mov ecx, 0
test r10d, r10d
je 0x4c46b8
shl r10, 2
neg r10
lea rdx, [r12 + rdx*4]
movzx ecx, word [rdx + r10]
cmp rcx, 0x11f
ja 0x4c48b2
lea r11, [rdi + rbp]
mov byte [rcx + r11 + 0xd80], r8b
add r10, 4
jne 0x4c474b
xor ecx, ecx
jmp 0x4c46b8
mov r15, qword [rsp + 0x28]
mov r12, r14
mov r14, qword [rsp + 0x20]
mov dword [rsp + 0xc8], 0
xor edx, edx
mov ecx, 2
mov rax, rcx
xor rax, 1
mov r8d, ecx
and r8d, 1
cmp rcx, r12
lea r8, [rax + r8*2]
cmovae r8, rcx
mov rax, rcx
or rax, 0xfffffffffffffffe
mov r9, rcx
and r9, 0xfffffffffffffffe
add rax, r9
inc rax
cmp rax, 0x21
jae 0x4c48e1
cmp rcx, 0x21
jae 0x4c48f2
add edx, dword [rsp + rax*4 + 0x40]
add edx, edx
mov dword [rsp + rcx*4 + 0xc4], edx
cmp rcx, r12
jae 0x4c47f0
mov rcx, r8
cmp r8, r12
jbe 0x4c4795
mov rax, r14
shl rax, 5
add rax, rdi
add rax, 0xd80
shl r14, 6
lea rdx, [rdi + r14]
add rdx, 0x6c0
xor r8d, r8d
mov r9, r15
cmp r8, 0x120
je 0x4c488b
test r15, r15
je 0x4c488b
movzx ecx, byte [rax + r8]
test rcx, rcx
je 0x4c486e
cmp cl, 0x20
ja 0x4c489f
mov r10d, dword [rsp + rcx*4 + 0xc4]
lea r11d, [r10 + 1]
mov dword [rsp + rcx*4 + 0xc4], r11d
xor r11d, r11d
mov esi, r11d
add esi, r11d
mov edi, r10d
xor edi, 0xfffffffe
mov r11d, r10d
or r11d, 1
and r11d, edi
or r11d, esi
shr r10d, 1
dec cl
jne 0x4c4849
mov word [rdx + r8*2], r11w
dec r9
inc r8
mov rcx, r15
xor rcx, 0xfffffffffffffffe
and r15, 0xfffffffffffffffe
lea r15, [rcx + r15*2]
inc r15
test r9, r9
jne 0x4c4815
add rsp, 0x2248
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
mov edx, 0x21
call fcn.004262b0
ud2
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
mov edx, 0x120
jmp 0x4c48ab
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48d9
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48dc
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
mov rcx, rax
mov rdx, r15
jmp 0x4c48ab
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
mov edx, 0x21
mov rcx, rax
jmp 0x4c48ab
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48a6
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48a6
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48b9
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48a6
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
mov rcx, rsi
call fcn.00429a20
ud2
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
mov rcx, rdx
mov rdx, r15
call fcn.004292f0
ud2
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
mov edx, 0x120
mov rcx, rsi
jmp 0x4c48ab
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48dc
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48d9
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48d9
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48dc
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48dc
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48d9
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48d9
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48dc
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
mov ecx, 0x21
jmp 0x4c48a6
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48dc
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48d9
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
mov edx, 0x120
mov rcx, rsi
jmp 0x4c4934
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
jmp 0x4c48dc
lea r8, str.registry_src_octopus.retort.com_8754fae0eb2f08f1_disembodied_0.8.0_src_deflate_core.rs
mov ecx, 1
xor edx, edx
jmp 0x4c4920