Function at 0x140049ae0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x370
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x350], rax
mov r15, qword [rsp + 0x3d0]
mov r13, r8
mov qword [rsp + 0x40], r8
mov r14, rdx
mov qword [rsp + 0x48], rdx
mov r12, rcx
mov qword [rsp + 0x38], rcx
xor edx, edx
mov r8d, 0x100
mov esi, r9d
lea rcx, [rsp + 0x150]
call fcn.14006e780
movsxd rbp, dword [r13 + rsi*4]
xor eax, eax
lea rdi, [r15 + rbp]
mov qword [r12], rax
mov ebx, esi
mov dword [r12 + 8], eax
mov byte [r14 + rbp], 1
movzx ecx, word [rdi + 2]
cmp word [rdi], cx
je 0x14004a090
movzx eax, word [rdi + 3]
cmp word [rdi + 1], ax
je 0x14004a090
cmp cx, word [rdi + 4]
je 0x14004a090
nop dword [rax]
nop word [rax + rax]
inc ebx
mov rcx, rdi
movsxd rdx, dword [r13 + rbx*4]
add rdx, r15
mov rax, qword [rdx]
xor rax, qword [rdi]
jne 0x140049bbe
sub rdx, rdi
nop dword [rax + rax]
mov rax, qword [rdx + rcx + 8]
add rcx, 8
xor rax, qword [rcx]
je 0x140049bb0
bsf rax, rax
mov dword [rsp + 0x30], 0
shr eax, 3
sub rax, rdi
add rax, rcx
cmp rax, 7
jae 0x140049b90
nop dword [rax]
movsxd rcx, dword [r13 + rsi*4 - 4]
mov rdx, rdi
mov rax, qword [rdi]
add rcx, r15
xor rax, qword [rcx]
jne 0x140049c0e
sub rcx, rdi
nop word [rax + rax]
mov rax, qword [rcx + rdx + 8]
add rdx, 8
xor rax, qword [rdx]
je 0x140049c00
bsf rcx, rax
lea eax, [rsi - 1]
mov dword [rsp + 0x30], 0
shr ecx, 3
sub rcx, rdi
add rcx, rdx
cmp rcx, 7
cmovb eax, esi
mov esi, eax
jae 0x140049be0
mov r12d, dword [rsp + 0x3d8]
mov edi, ebx
sub edi, esi
cmp edi, r12d
jae 0x140049c7c
cmp esi, ebx
jae 0x140049c72
lea rcx, [rax*4]
add rcx, r13
sub ebx, esi
mov edx, ebx
nop word [rax + rax]
movsxd rax, dword [rcx]
lea rcx, [rcx + 4]
mov byte [rax + r14], 1
sub rdx, 1
jne 0x140049c60
mov rax, qword [rsp + 0x38]
jmp 0x14004a0f2
cmp dword [rsp + 0x3e0], 4
mov r14d, 7
jb 0x140049d15
lea ecx, [r14 - 5]
call fcn.14006f398
mov rcx, rax
lea rdx, [0x140092414]
call fcn.140041730
lea ecx, [r14 - 5]
call fcn.14006f398
mov rcx, rax
call fcn.14006f5d4
lea ecx, [r14 - 5]
call fcn.14006f398
mov rcx, rax
mov dword [rsp + 0x20], ebp
mov r9d, r14d
lea rdx, str.found__3u_matches_of_length____i_at_pos__7u
mov r8d, edi
call fcn.140041730
lea ecx, [r14 - 5]
call fcn.14006f398
mov rcx, rax
call fcn.14006f5d4
lea ecx, [r14 - 5]
call fcn.14006f398
mov rcx, rax
lea rdx, [0x140092414]
call fcn.140041730
lea ecx, [r14 - 5]
call fcn.14006f398
mov rcx, rax
call fcn.14006f5d4
mov ebp, r14d
nop dword [rax + rax]
xor r11b, r11b
xor ecx, ecx
xor edi, edi
mov r10d, esi
mov r14d, esi
mov edx, esi
cmp esi, ebx
jae 0x140049d76
mov eax, esi
lea r8, [rax*4]
add r8, r13
mov eax, dword [r8]
add eax, ebp
movzx r9d, byte [rax + r15]
cmp r9b, r11b
je 0x140049d61
cmp ecx, edi
jbe 0x140049d58
mov edi, ecx
mov r14d, r10d
mov r10d, edx
movzx r11d, r9b
xor ecx, ecx
inc ecx
inc edx
add r8, 4
cmp edx, ebx
jb 0x140049d40
cmp ecx, edi
jbe 0x140049d76
mov edi, ecx
mov r14d, r10d
cmp edi, r12d
jb 0x140049d86
mov esi, r14d
lea ebx, [r14 + rdi]
inc ebp
jmp 0x140049d20
mov eax, esi
lea rcx, [rsp + 0x50]
xor edx, edx
mov r8d, 0x100
mov r14d, esi
movsxd r13, dword [r13 + rax*4]
call fcn.14006e780
mov r10, qword [rsp + 0x40]
lea rbp, [r15 + r13]
xor ebx, ebx
mov edi, 0x3f
mov rax, qword [rbp]
inc r14d
mov rdx, rbp
movsxd rcx, dword [r10 + r14*4]
add rcx, r15
xor rax, qword [rcx]
jne 0x140049dde
sub rcx, rbp
nop dword [rax + rax]
mov rax, qword [rcx + rdx + 8]
add rdx, 8
xor rax, qword [rdx]
je 0x140049dd0
bsf rcx, rax
shr ecx, 3
sub rcx, rbp
add rcx, rdx
cmp rcx, 0x40
cmovae rcx, rdi
inc dword [rsp + rcx*4 + 0x50]
cmp rcx, 7
jae 0x140049db2
test esi, esi
je 0x140049e67
mov rax, qword [rbp]
lea r9d, [rsi - 1]
movsxd rdx, dword [r10 + r9*4]
mov rcx, rbp
add rdx, r15
xor rax, qword [rdx]
jne 0x140049e2e
sub rdx, rbp
nop dword [rax + rax]
mov rax, qword [rdx + rcx + 8]
add rcx, 8
xor rax, qword [rcx]
je 0x140049e20
bsf rdx, rax
mov eax, ebx
shr edx, 3
sub rdx, rbp
add rdx, rcx
mov ecx, ebx
cmp rdx, 0x40
cmovae rdx, rdi
inc dword [rsp + rdx*4 + 0x50]
cmp rdx, 7
cmovb r9d, esi
test r9d, r9d
mov esi, r9d
setne cl
cmp rdx, 7
setae al
test eax, ecx
jne 0x140049e01
xor edx, edx
lea rcx, [rsp + 0x250]
mov r8d, 0x100
call fcn.14006e780
mov eax, dword [rsp + 0x14c]
mov rcx, rbx
mov dword [rsp + 0x34c], eax
nop dword [rax]
mov eax, dword [rsp + rcx + 0x148]
add eax, dword [rsp + rcx + 0x34c]
mov dword [rsp + rcx + 0x348], eax
sub rcx, 4
cmp rcx, 0xffffffffffffff08
jge 0x140049e90
mov rcx, rdi
lea rax, [rsp + 0x344]
nop dword [rax]
cmp dword [rax + 8], r12d
jae 0x140049eeb
cmp dword [rax + 4], r12d
jae 0x140049ee9
cmp dword [rax], r12d
jae 0x140049ee4
sub rcx, 3
sub rax, 0xc
sub edi, 3
cmp rcx, 7
jge 0x140049ec0
jmp 0x140049eeb
sub edi, 2
jmp 0x140049eeb
dec edi
movsxd rcx, edi
lea rax, [r15 + r13]
movzx edx, byte [rax + rcx - 1]
mov eax, ecx
add rax, r15
cmp byte [rax + r13 - 2], dl
jne 0x140049f1e
nop dword [rax]
nop word [rax + rax]
dec ecx
mov eax, ecx
add rax, r15
cmp byte [rax + r13 - 2], dl
je 0x140049f10
mov ebx, ecx
cmp rbx, 7
jb 0x140049c72
mov dword [rsp + 0x164], 0
cmp ebx, 7
jl 0x140049f72
xor edx, edx
mov edi, 7
nop dword [rax]
nop word [rax + rax]
mov ecx, dword [rsp + rdx + 0x6c]
lea eax, [rdi - 3]
imul ecx, eax
lea rdx, [rdx + 4]
inc edi
add ecx, dword [rsp + rdx + 0x164]
mov dword [rsp + rdx + 0x168], ecx
cmp edi, ebx
jle 0x140049f50
cmp dword [rsp + 0x3e0], 4
jb 0x140049fef
mov edi, dword [rsp + rbx*4 + 0x150]
xorps xmm0, xmm0
movaps xmmword [rsp + 0x360], xmm6
xorps xmm6, xmm6
cvtsi2sd xmm0, rbx
cvtsi2sd xmm6, rdi
test rbx, rbx
jns 0x140049fa8
addsd xmm0, qword [0x140096228]
mov ecx, 2
divsd xmm6, xmm0
call fcn.14006f398
mov rcx, rax
mov r9d, ebx
lea rdx, str.Selected_dict_at_position__u__of_length__u_:_saves__u__ratio:__.2f____n
mov r8d, r13d
movsd qword [rsp + 0x28], xmm6
mov dword [rsp + 0x20], edi
call fcn.140041730
mov ecx, 2
call fcn.14006f398
mov rcx, rax
call fcn.14006f5d4
movaps xmm6, xmmword [rsp + 0x360]
mov r12, qword [rsp + 0x38]
mov eax, dword [rsp + rbx*4 + 0x150]
mov dword [r12], r13d
mov dword [r12 + 4], ebx
mov dword [r12 + 8], eax
cmp esi, r14d
jae 0x14004a0ef
mov rcx, qword [rsp + 0x40]
sub r14d, esi
mov eax, esi
mov r8d, 1
mov r11d, r14d
mov r14, qword [rsp + 0x48]
lea r10, [rcx + rax*4]
nop
mov edi, dword [r10]
cmp rdi, r13
jne 0x14004a03d
mov rcx, rbx
jmp 0x14004a076
mov rax, qword [rbp]
lea rdx, [r15 + rdi]
xor rax, qword [rdx]
mov rcx, rbp
jne 0x14004a05e
sub rdx, rbp
mov rax, qword [rcx + rdx + 8]
add rcx, 8
xor rax, qword [rcx]
je 0x14004a050
sub ecx, ebp
mov dword [rsp + 0x30], 0
bsf rax, rax
shr eax, 3
add ecx, eax
cmp ecx, ebx
cmova ecx, ebx
lea eax, [rcx + rdi]
cmp edi, eax
jae 0x14004a085
add rdi, r14
mov rax, r8
rep stosb byte [rdi], al
add r10, 4
sub r11, r8
jne 0x14004a030
jmp 0x14004a0ef
movzx ecx, word [rdi + 4]
mov edx, 6
cmp word [r15 + rbp + 6], cx
jne 0x14004a0af
add edx, 2
mov eax, edx
add rax, r15
cmp word [rax + rbp], cx
je 0x14004a0a1
mov eax, edx
lea edi, [rdx + 1]
add rax, r15
mov r8d, 1
movzx ecx, byte [rax + rbp]
cmp cl, byte [rax + rbp - 1]
cmovne edi, edx
cmp edi, r8d
jbe 0x14004a0ef
lea rax, [r14 + 1]
add rax, rbp
nop dword [rax]
nop dword [rax + rax]
inc r8d
mov byte [rax], 1
lea rax, [rax + 1]
cmp r8d, edi
jb 0x14004a0e0
mov rax, r12
mov rcx, qword [rsp + 0x350]
xor rcx, rsp
call fcn.14006d240
mov rbx, qword [rsp + 0x3b0]
add rsp, 0x370
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret