Function at 0x4adfe0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
mov eax, 0x2e18
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.004a3410
sub rsp, rax
test rcx, rcx
mov rbp, rcx
mov r13, r8
mov r12, r9
je 0x4ae020
mov rax, qword [rcx + 0x58]
test rax, rax
je 0x4ae020
cmp edx, dword [rcx + 0x10]
jae 0x4ae020
cmp dword [rcx + 0x14], 1
je 0x4ae040
nop dword [rax + rax]
xor eax, eax
add rsp, 0x2e18
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, qword [rax + 0x20]
mov esi, edx
mov qword [rsp + 0x70], rsi
mov ebx, dword [rcx + rsi*4]
mov rcx, rbx
add rbx, qword [rax]
je 0x4ae020
movzx eax, word [rbx + 4]
mov dword [rsp + 0xc4], ecx
lea rdi, [rsp + 0x310]
movzx ecx, word [rbx + 0xc]
movzx r15d, word [rbx + 8]
lea rsi, [rbx + 0x2e]
mov dword [rsp + 0xc0], edx
mov dword [rsp + 0x58], edx
mov qword [rsp + 0x68], rdi
mov word [rsp + 0xc8], ax
movzx eax, word [rbx + 6]
mov word [rsp + 0xcc], r15w
mov word [rsp + 0xca], ax
movzx eax, word [rbx + 0xa]
mov word [rsp + 0x60], ax
mov word [rsp + 0xce], ax
movzx eax, word [rbx + 0xe]
mov qword [rsp + 0x328], 0
mov dword [rsp + 0x330], 0xffffffff
mov r8d, eax
mov r9d, eax
sar eax, 5
and eax, 0xf
sar r9d, 9
and r8d, 0x1f
sub eax, 1
add r9d, 0x50
mov dword [rsp + 0x31c], r8d
mov dword [rsp + 0x320], eax
mov eax, ecx
mov dword [rsp + 0x324], r9d
sar eax, 0xb
mov dword [rsp + 0x318], eax
mov eax, ecx
sar eax, 5
and eax, 0x3f
mov dword [rsp + 0x314], eax
lea eax, [rcx + rcx]
mov rcx, rdi
and eax, 0x3e
mov dword [rsp + 0x310], eax
call qword [sym.imp.msvcrt.dll__mktime64]
mov qword [rsp + 0xd0], rax
mov eax, dword [rbx + 0x10]
mov ecx, 0x103
mov r10d, dword [rbx + 0x14]
movzx r11d, word [rbx + 0x1c]
lea r8, [rsp + 0xc0]
mov r14d, dword [rbx + 0x2a]
mov edx, dword [rsp + 0x58]
mov dword [rsp + 0xd8], eax
mov eax, dword [rbx + 0x18]
mov qword [rsp + 0x50], r10
cmp r11d, 0x103
movq xmm0, qword [rsp + 0x50]
mov qword [rsp + 0xf8], r14
mov qword [rsp + 0x48], rax
movzx eax, word [rbx + 0x24]
movhps xmm0, qword [rsp + 0x48]
movaps xmmword [rsp + 0xe0], xmm0
mov word [rsp + 0xf0], ax
mov eax, dword [rbx + 0x26]
mov dword [rsp + 0xf4], eax
mov rax, r11
cmova r11d, ecx
cmp r11d, 8
lea rcx, [r8 + 0x44]
jae 0x4ae5e0
test r11b, 4
jne 0x4ae670
test r11d, r11d
mov r9d, r11d
je 0x4ae1e0
movzx edi, byte [rbx + 0x2e]
and r11d, 2
mov byte [r8 + 0x44], dil
jne 0x4ae6c0
movzx ecx, word [rbx + 0x20]
movzx r11d, word [rbx + 0x1e]
mov byte [rsp + r9 + 0x104], 0
mov r9d, 0xff
cmp ecx, 0xff
lea rsi, [r11 + rax + 0x2e]
cmova ecx, r9d
lea r9, [r8 + 0x148]
add rsi, rbx
cmp ecx, 8
mov dword [rsp + 0x100], ecx
jae 0x4ae5c0
test cl, 4
jne 0x4ae650
test ecx, ecx
mov eax, ecx
je 0x4ae244
movzx r11d, byte [rsi]
and ecx, 2
mov byte [r8 + 0x148], r11b
jne 0x4ae6b0
test r10, r10
mov byte [rsp + rax + 0x208], 0
mov eax, 1
je 0x4ae022
mov rcx, qword [rbp + 0x58]
test rcx, rcx
je 0x4ae272
cmp edx, dword [rbp + 0x10]
jae 0x4ae272
cmp dword [rbp + 0x14], 1
je 0x4ae611
and r15d, 0x21
jne 0x4ae020
mov ebx, dword [rsp + 0x2e80]
and ebx, 0x400
je 0x4ae690
mov qword [rsp + 0x50], r10
mov rcx, qword [rbp + 0x50]
mov r9d, 0x1e
lea r8, [rsp + 0xa0]
mov rdx, r14
call qword [rbp + 0x40]
cmp rax, 0x1e
mov r10, qword [rsp + 0x50]
jne 0x4ae020
cmp dword [rsp + 0xa0], 0x4034b50
jne 0x4ae020
movzx edx, word [rsp + 0xba]
movzx eax, word [rsp + 0xbc]
lea eax, [rdx + rax + 0x1e]
cdqe
add rax, r14
mov qword [rsp + 0x70], rax
add rax, r10
cmp rax, qword [rbp]
ja 0x4ae020
mov rax, qword [rbp + 0x58]
mov rax, qword [rax + 0x68]
test rax, rax
jne 0x4ae7c0
cmp r10, 0x10000
mov eax, 0x10000
mov qword [rsp + 0x50], r10
cmovbe rax, r10
mov rcx, qword [rbp + 0x38]
mov edx, 1
mov qword [rsp + 0x88], rax
mov r8, rax
call qword [rbp + 0x20]
test rax, rax
mov qword [rsp + 0x58], rax
je 0x4ae020
test ebx, ebx
mov r10, qword [rsp + 0x50]
jne 0x4ae76d
xor r15d, r15d
cmp word [rsp + 0x60], 0
je 0x4ae83f
mov qword [rsp + 0x60], r10
mov dword [rsp + 0x310], 0
mov r8d, 0x8000
mov rcx, qword [rbp + 0x38]
mov edx, 1
call qword [rbp + 0x20]
test rax, rax
mov qword [rsp + 0x50], rax
je 0x4ae74d
lea rax, [rsp + 0x90]
mov r10, qword [rsp + 0x60]
mov qword [rsp + 0x2e60], rbp
mov rbp, r15
mov r15, qword [rsp + 0x2e60]
xor esi, esi
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0x98]
lea rdi, [0x004ea440]
mov qword [rsp + 0x2e70], r13
mov qword [rsp + 0x2e78], r12
xor r14d, r14d
xor ebx, ebx
mov qword [rsp + 0x80], rax
mov r13, r10
mov r12, rsi
nop word [rax + rax]
mov rax, qword [rsp + 0x50]
mov rdx, r14
and edx, 0x7fff
lea rsi, [rax + rdx]
mov eax, 0x8000
sub rax, rdx
test rbp, rbp
mov qword [rsp + 0x98], rax
jne 0x4ae6a2
mov rax, qword [r15 + 0x58]
cmp qword [rax + 0x68], 0
jne 0x4ae6a2
mov rax, qword [rsp + 0x88]
mov rbp, qword [rsp + 0x70]
mov rcx, qword [r15 + 0x50]
mov r8, qword [rsp + 0x58]
cmp r13, rax
mov r12, rax
mov rdx, rbp
cmovbe r12, r13
mov r9, r12
call qword [r15 + 0x40]
cmp rax, r12
jne 0x4ae7f3
mov rdx, qword [rsp + 0x58]
add rbp, rax
sub r13, rax
mov qword [rsp + 0x70], rbp
xor r12d, r12d
mov rbp, rax
xor eax, eax
test r13, r13
mov r9, qword [rsp + 0x50]
setne al
mov r8, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x68]
add eax, eax
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x90], rbp
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0x28], rax
call fcn.004bb400
mov r9, qword [rsp + 0x98]
mov r11d, eax
mov rax, qword [rsp + 0x90]
sub rbp, rax
add r12, rax
test r9, r9
je 0x4ae54a
mov dword [rsp + 0x60], r11d
mov r8, rsi
mov rdx, r14
mov rcx, qword [rsp + 0x2e78]
call qword [rsp + 0x2e70]
cmp rax, qword [rsp + 0x98]
jne 0x4ae7f3
test rsi, rsi
mov r11d, dword [rsp + 0x60]
je 0x4ae6d1
test rax, rax
not ebx
je 0x4ae53a
lea r8, [rsi + rax]
nop
add rsi, 1
movzx ecx, byte [rsi - 1]
mov edx, ebx
shr edx, 4
xor ebx, ecx
shr cl, 4
and ebx, 0xf
xor edx, dword [rdi + rbx*4]
mov ebx, edx
xor edx, ecx
and edx, 0xf
shr ebx, 4
xor ebx, dword [rdi + rdx*4]
cmp rsi, r8
jne 0x4ae510
not ebx
add r14, rax
cmp r14, qword [rsp + 0x48]
ja 0x4ae7f3
lea eax, [r11 - 1]
cmp eax, 1
jbe 0x4ae3f0
test r11d, r11d
mov rbp, r15
jne 0x4ae929
xor eax, eax
cmp qword [rsp + 0xe8], r14
je 0x4ae82e
mov rdx, qword [rbp + 0x58]
cmp qword [rdx + 0x68], 0
jne 0x4ae592
mov dword [rsp + 0x48], eax
mov rcx, qword [rbp + 0x38]
mov rdx, qword [rsp + 0x58]
call qword [rbp + 0x28]
mov eax, dword [rsp + 0x48]
cmp qword [rsp + 0x50], 0
je 0x4ae022
mov dword [rsp + 0x48], eax
mov rcx, qword [rbp + 0x38]
mov rdx, qword [rsp + 0x50]
call qword [rbp + 0x28]
mov eax, dword [rsp + 0x48]
jmp 0x4ae022
mov eax, ecx
sub ecx, 1
mov rdi, r9
mov r8, qword [rsi + rax - 8]
shr ecx, 3
mov qword [r9 + rax - 8], r8
rep movsq qword [rdi], qword [rsi]
jmp 0x4ae244
mov r9, qword [rbx + 0x2e]
mov qword [rsp + 0x104], r9
mov r9d, r11d
mov rdi, qword [rsi + r9 - 8]
mov qword [rcx + r9 - 8], rdi
lea rdi, [r8 + 0x48]
sub rcx, rdi
sub rsi, rcx
add ecx, r11d
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
jmp 0x4ae1e0
mov rdx, qword [rcx + 0x20]
mov rdi, qword [rsp + 0x70]
mov edx, dword [rdx + rdi*4]
add rdx, qword [rcx]
je 0x4ae272
movzx ecx, word [rdx + 0x1c]
test cx, cx
je 0x4ae63a
cmp byte [rdx + rcx + 0x2d], 0x2f
je 0x4ae022
test byte [rdx + 0x26], 0x10
mov eax, 1
je 0x4ae272
jmp 0x4ae022
mov eax, dword [rsi]
mov dword [r8 + 0x148], eax
mov eax, ecx
mov ecx, dword [rsi + rax - 4]
mov dword [r9 + rax - 4], ecx
jmp 0x4ae244
mov r9d, dword [rbx + 0x2e]
mov dword [r8 + 0x44], r9d
mov r9d, r11d
mov r11d, dword [rsi + r9 - 4]
mov dword [rcx + r9 - 4], r11d
jmp 0x4ae1e0
test word [rsp + 0x60], 0xfff7
je 0x4ae28f
jmp 0x4ae020
mov rax, qword [rsp + 0x58]
lea rdx, [rax + r12]
jmp 0x4ae473
movzx ecx, word [rsi + rax - 2]
mov word [r9 + rax - 2], cx
jmp 0x4ae244
movzx r11d, word [rsi + r9 - 2]
mov word [rcx + r9 - 2], r11w
jmp 0x4ae1e0
xor ebx, ebx
jmp 0x4ae53c
xor r14d, r14d
mov rsi, r10
mov rdi, rbp
jmp 0x4ae71c
mov r15, qword [rsp + 0x58]
mov ecx, ebx
mov r8, rax
mov rdx, r15
call fcn.004abe10
mov r9, rbp
mov ebx, eax
mov r8, r15
mov rdx, r14
mov rcx, r12
call r13
cmp rax, rbp
jne 0x4ae74a
add qword [rsp + 0x70], rax
add r14, rax
sub rsi, rax
je 0x4ae93f
mov rax, qword [rsp + 0x88]
mov rcx, qword [rdi + 0x50]
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x70]
cmp rsi, rax
cmovbe rax, rsi
mov r15, rax
mov r9, rax
call qword [rdi + 0x40]
cmp rax, r15
mov rbp, rax
je 0x4ae6e3
mov rbp, rdi
mov rax, qword [rbp + 0x58]
mov rax, qword [rax + 0x68]
mov rdi, rax
mov qword [rsp + 0x50], rax
xor eax, eax
test rdi, rdi
je 0x4ae57e
jmp 0x4ae020
mov rax, qword [rbp + 0x58]
cmp qword [rax + 0x68], 0
je 0x4ae89a
mov r9, r10
mov qword [rsp + 0x48], r10
xor edx, edx
mov r8, qword [rsp + 0x58]
mov rcx, r12
call r13
mov r10, qword [rsp + 0x48]
cmp r10, rax
jne 0x4ae74d
mov rax, qword [rbp + 0x58]
mov rax, qword [rax + 0x68]
mov rdi, rax
mov qword [rsp + 0x50], rax
mov eax, 1
test rdi, rdi
je 0x4ae57e
jmp 0x4ae022
add rax, qword [rsp + 0x70]
test ebx, ebx
mov qword [rsp + 0x58], rax
je 0x4ae80f
mov r9, r10
mov qword [rsp + 0x48], r10
xor edx, edx
mov r8, qword [rsp + 0x58]
mov rcx, r12
call r13
mov r10, qword [rsp + 0x48]
cmp rax, r10
jne 0x4ae74d
jmp 0x4ae79b
mov rax, qword [r15 + 0x58]
mov rbp, r15
cmp qword [rax + 0x68], 0
mov eax, 0
jne 0x4ae59e
jmp 0x4ae57e
cmp word [rsp + 0x60], 0
je 0x4ae8fe
mov r15, r10
mov qword [rsp + 0x88], r10
xor r10d, r10d
jmp 0x4ae35e
xor eax, eax
cmp dword [rsp + 0xd8], ebx
sete al
jmp 0x4ae573
mov rax, qword [rbp + 0x58]
mov rax, qword [rax + 0x68]
test rax, rax
mov qword [rsp + 0x50], rax
je 0x4ae6d8
mov r9, r10
mov qword [rsp + 0x48], r10
xor edx, edx
mov r8, qword [rsp + 0x58]
mov rcx, r12
call r13
mov r10, qword [rsp + 0x48]
mov r14, rax
cmp rax, r10
jne 0x4ae74d
mov rdx, qword [rsp + 0x58]
mov r8, r14
xor ecx, ecx
call fcn.004abe10
mov qword [rsp + 0x50], 0
mov ebx, eax
jmp 0x4ae563
xor ebx, ebx
mov rsi, r10
mov r14, qword [rsp + 0x70]
jmp 0x4ae8cd
mov r9, rdi
mov r8, r15
mov rdx, rbx
mov rcx, r12
call r13
cmp rax, rdi
jne 0x4ae74d
add r14, rax
add rbx, rax
sub rsi, rax
je 0x4ae79b
mov rax, qword [rsp + 0x88]
mov r15, qword [rsp + 0x58]
mov rdx, r14
mov rcx, qword [rbp + 0x50]
cmp rax, rsi
mov r8, r15
cmova rax, rsi
mov rdi, rax
mov r9, rax
call qword [rbp + 0x40]
cmp rdi, rax
je 0x4ae8a6
jmp 0x4ae74d
mov r9, r10
mov qword [rsp + 0x48], r10
xor edx, edx
mov r8, qword [rsp + 0x58]
mov rcx, r12
call r13
mov r10, qword [rsp + 0x48]
mov r14, rax
cmp r10, rax
je 0x4ae87b
jmp 0x4ae74d
mov rdx, qword [r15 + 0x58]
xor eax, eax
cmp qword [rdx + 0x68], 0
je 0x4ae57e
jmp 0x4ae59e
mov rbp, rdi
jmp 0x4ae563