Function at 0x14008aad0
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
lea rbp, [rsp - 0x17]
sub rsp, 0xe0
mov rax, qword [0x140114038]
xor rax, rsp
mov qword [rbp + 0xf], rax
movsxd rbx, dword [rbp + 0x77]
mov r15d, r9d
mov rax, qword [rbp + 0x7f]
mov r13d, ebx
movdqa xmm0, xmmword [0x140104a80]
mov esi, r8d
imul r13d, r8d
mov r14d, edx
mov dword [rbp - 0x5d], r9d
mov r12, rcx
mov dword [rbp - 0x55], r8d
mov dword [rbp - 0x6d], edx
mov qword [rbp - 0x21], rcx
mov dword [rbp - 0x7d], r13d
mov qword [rbp - 0x19], rax
mov dword [rbp - 1], 6
mov dword [rsp + 0x20], 0x474e5089
mov dword [rsp + 0x24], 0xa1a0a0d
movdqu xmmword [rbp - 0x11], xmm0
test edx, edx
jne 0x14008ab5d
mov r14d, r13d
mov dword [rbp - 0x6d], r13d
jmp 0x14008ab61
mov dword [rbp - 0x7d], r13d
lea ecx, [r13 + 1]
mov eax, r15d
mul ecx
mov dword [rbp - 0x59], ecx
mov ecx, eax
mov rax, 0xffffffffffffffff
cmovo rcx, rax
call fcn.1400c5d44
mov qword [rbp - 0x41], rax
mov rdi, rax
test rax, rax
je 0x14008abb5
mov eax, ebx
mul esi
mov ecx, eax
mov rax, 0xffffffffffffffff
cmovo rcx, rax
call fcn.1400c5d44
mov qword [rbp - 0x39], rax
mov rsi, rax
test rax, rax
jne 0x14008abde
mov rcx, rdi
call fcn.1400ba61c
xor eax, eax
mov rcx, qword [rbp + 0xf]
xor rcx, rsp
call fcn.1400b3780
mov rbx, qword [rsp + 0x120]
add rsp, 0xe0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
xor ecx, ecx
mov qword [rbp - 0x51], rbx
mov dword [rbp - 0x71], ecx
mov rdi, rbx
test r15d, r15d
jle 0x14008b135
movsxd r11, r14d
lea r8, [0x140114eb8]
movsxd r14, r13d
xor ebx, ebx
mov qword [rbp - 0x31], r14
mov qword [rsp + 0x28], r11
mov dword [rbp - 0x65], ecx
mov dword [rbp - 0x69], ebx
nop dword [rax]
nop word [rax + rax]
test ecx, ecx
mov dword [rbp - 0x75], 0x7fffffff
lea rdx, [0x140114ed0]
cmovne rdx, r8
xor r9d, r9d
xor eax, eax
mov qword [rbp - 0x29], rdx
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x40], r9d
nop word [rax + rax]
xor r15d, r15d
test eax, eax
cmovne r15d, r9d
mov dword [rbp - 0x79], r15d
cmp r15d, 5
jge 0x14008b0d7
movsxd rcx, r15d
movsxd rax, ebx
add rax, r12
mov r8, rax
mov qword [rsp + 0x38], rax
lea rdx, [rdx + rcx*4]
neg r8
mov qword [rbp - 0x49], rdx
movsxd r10, dword [rdx]
xor ebx, ebx
mov qword [rsp + 0x30], r8
mov r12d, r15d
mov dword [rbp - 0x61], r15d
mov dword [rsp + 0x48], ebx
test rdi, rdi
jle 0x14008add0
lea r9, [rsi + r8]
mov rdx, rax
mov r8, rdi
neg r11
nop
cmp r10d, 6
ja case.default.0x14008acc8
lea rcx, [0x140000000]
mov eax, dword [rcx + r10*4 + 0x8b2d8]
add rax, rcx
jmp rax
inc rdx
sub r8, 1
jne 0x14008acb0
jmp 0x14008adc1
movzx eax, byte [rdx]
mov byte [r9 + rdx], al
lea rdx, [rdx + 1]
sub r8, 1
je 0x14008adc1
jmp case.0x14008acc8.0
movzx eax, byte [rdx]
mov byte [r9 + rdx], al
lea rdx, [rdx + 1]
sub r8, 1
je 0x14008adc1
jmp case.0x14008acc8.1
movzx eax, byte [rdx]
sub al, byte [r11 + rdx]
mov byte [r9 + rdx], al
lea rdx, [rdx + 1]
sub r8, 1
je 0x14008adc1
jmp case.0x14008acc8.2
movzx ecx, byte [r11 + rdx]
movzx eax, byte [rdx]
lea rdx, [rdx + 1]
shr cl, 1
sub al, cl
mov byte [r9 + rdx - 1], al
sub r8, 1
je 0x14008adc1
jmp case.0x14008acc8.3
movzx eax, byte [r11 + rdx]
lea rdx, [rdx + 1]
xor ecx, ecx
test al, al
cmovne ecx, eax
movzx eax, byte [rdx - 1]
sub al, cl
mov byte [r9 + rdx - 1], al
sub r8, 1
je 0x14008adc1
jmp case.0x14008acc8.4
movzx eax, byte [rdx]
mov byte [r9 + rdx], al
lea rdx, [rdx + 1]
sub r8, 1
je 0x14008adc1
jmp case.0x14008acc8.5
movzx eax, byte [rdx]
mov byte [r9 + rdx], al
lea rdx, [rdx + 1]
sub r8, 1
jne case.0x14008acc8.6
mov r11, qword [rsp + 0x28]
mov rax, qword [rsp + 0x38]
mov r8, qword [rsp + 0x30]
cmp rdi, r14
jge 0x14008af85
mov r13, rdi
lea rbx, [rdi + rsi]
sub r13, r11
add rbx, r8
mov r11, r14
mov rcx, rax
sub r11, rdi
nop
cmp r10d, 6
ja case.default.0x14008ae08
lea r8, [0x140000000]
mov eax, dword [r8 + r10*4 + 0x8b2f4]
add rax, r8
jmp rax
inc rcx
sub r11, 1
jne 0x14008adf0
mov ebx, dword [rsp + 0x48]
mov r13d, dword [rbp - 0x7d]
jmp 0x14008af90
movzx eax, byte [rdi + rcx]
mov byte [rbx + rcx], al
lea rcx, [rcx + 1]
sub r11, 1
je 0x14008af38
jmp case.0x14008ae08.0
movzx eax, byte [rdi + rcx]
sub al, byte [rcx]
mov byte [rbx + rcx], al
lea rcx, [rcx + 1]
sub r11, 1
je 0x14008af38
jmp case.0x14008ae08.1
movzx eax, byte [rdi + rcx]
sub al, byte [rcx + r13]
mov byte [rbx + rcx], al
lea rcx, [rcx + 1]
sub r11, 1
je 0x14008af38
jmp case.0x14008ae08.2
movzx eax, byte [rcx]
movzx edx, byte [rcx + r13]
lea rcx, [rcx + 1]
add edx, eax
movzx eax, byte [rdi + rcx - 1]
shr edx, 1
sub al, dl
mov byte [rbx + rcx - 1], al
sub r11, 1
je 0x14008af38
jmp case.0x14008ae08.3
movzx r12d, byte [rcx + r13]
lea rdx, [rcx + r13]
mov rax, rdx
sub rax, rdi
movzx edi, byte [rcx]
mov r8d, edi
movzx r15d, byte [rax]
sub r8d, r15d
lea r9d, [r8 + r12]
mov eax, r9d
sub r9d, r15d
sub eax, edi
cdq
mov esi, eax
mov eax, r8d
xor esi, edx
sub esi, edx
cdq
mov r14d, eax
mov eax, r9d
xor r14d, edx
sub r14d, edx
cdq
mov r8d, eax
xor r8d, edx
sub r8d, edx
cmp esi, r14d
jg 0x14008af03
cmp esi, r8d
jle 0x14008af0d
cmp r14d, r8d
mov edi, r15d
cmovle edi, r12d
mov rax, qword [rbp - 0x51]
movzx eax, byte [rax + rcx]
sub al, dil
mov rdi, qword [rbp - 0x51]
mov byte [rbx + rcx], al
inc rcx
sub r11, 1
jne case.0x14008ae08.4
mov rsi, qword [rbp - 0x39]
mov r14, qword [rbp - 0x31]
mov r15d, dword [rbp - 0x79]
mov r12d, dword [rbp - 0x61]
mov ebx, dword [rsp + 0x48]
mov r13d, dword [rbp - 0x7d]
jmp 0x14008af90
movzx edx, byte [rcx]
movzx eax, byte [rdi + rcx]
lea rcx, [rcx + 1]
shr dl, 1
sub al, dl
mov byte [rbx + rcx - 1], al
sub r11, 1
je 0x14008af38
jmp case.0x14008ae08.5
movzx eax, byte [rdi + rcx]
sub al, byte [rcx]
mov byte [rbx + rcx], al
lea rcx, [rcx + 1]
sub r11, 1
je 0x14008af38
jmp case.0x14008ae08.6
mov r8, rax
neg r8
mov qword [rsp + 0x30], r8
mov eax, dword [rsp + 0x44]
test eax, eax
jne 0x14008b0c2
xor ecx, ecx
test r13d, r13d
jle 0x14008b020
cmp r13d, 8
jb 0x14008b020
cmp dword [0x140114018], 2
jl 0x14008b020
mov edx, r13d
xorps xmm3, xmm3
xorps xmm4, xmm4
and edx, 0x80000007
jge 0x14008afca
dec edx
or edx, 0xfffffff8
inc edx
mov eax, r13d
sub eax, edx
movsxd rdx, eax
pmovsxbd xmm1, dword [rcx + rsi]
pabsd xmm2, xmm1
pmovsxbd xmm1, dword [rcx + rsi + 4]
paddd xmm3, xmm2
add rcx, 8
pabsd xmm2, xmm1
paddd xmm2, xmm4
movdqa xmm4, xmm2
cmp rcx, rdx
jl 0x14008afd2
paddd xmm3, xmm2
movdqa xmm0, xmm3
psrldq xmm0, 8
paddd xmm3, xmm0
movdqa xmm0, xmm3
psrldq xmm0, 4
paddd xmm3, xmm0
movd ebx, xmm3
xor r8d, r8d
xor r9d, r9d
cmp rcx, r14
jge 0x14008b078
mov rax, r14
sub rax, rcx
cmp rax, 2
jl 0x14008b067
lea r10, [r14 - 1]
nop dword [rax + rax]
movsx eax, byte [rcx + rsi]
cdq
xor eax, edx
sub eax, edx
add r8d, eax
movsx eax, byte [rcx + rsi + 1]
cdq
add rcx, 2
xor eax, edx
sub eax, edx
add r9d, eax
cmp rcx, r10
jl 0x14008b040
cmp rcx, r14
jge 0x14008b072
movsx eax, byte [rcx + rsi]
cdq
xor eax, edx
sub eax, edx
add ebx, eax
lea eax, [r8 + r9]
add ebx, eax
mov rdx, qword [rbp - 0x49]
inc r15d
mov r8, qword [rsp + 0x30]
add rdx, 4
cmp ebx, dword [rbp - 0x75]
mov rax, qword [rsp + 0x38]
cmovge r12d, dword [rsp + 0x40]
cmovge ebx, dword [rbp - 0x75]
mov r9d, r12d
mov r11, qword [rsp + 0x28]
mov dword [rsp + 0x40], r12d
mov dword [rbp - 0x75], ebx
mov dword [rbp - 0x79], r15d
mov qword [rbp - 0x49], rdx
cmp r15d, 5
jl 0x14008ac83
mov eax, dword [rsp + 0x44]
jmp 0x14008b0c7
mov r9d, dword [rsp + 0x40]
mov r11, qword [rsp + 0x28]
mov rdx, qword [rbp - 0x29]
mov ebx, dword [rbp - 0x69]
mov r12, qword [rbp - 0x21]
inc eax
mov dword [rsp + 0x44], eax
cmp eax, 2
jl 0x14008ac50
movsxd r15, dword [rbp - 0x65]
mov r8, r14
mov rcx, qword [rbp - 0x41]
mov rdx, rsi
mov byte [r15 + rcx], r9b
inc rcx
add rcx, r15
call fcn.1400b5c90
mov ecx, dword [rbp - 0x71]
lea eax, [r13 + 1]
add ebx, dword [rbp - 0x6d]
lea r8, [0x140114eb8]
mov r11, qword [rsp + 0x28]
add r15d, eax
inc ecx
mov dword [rbp - 0x65], r15d
mov r15d, dword [rbp - 0x5d]
mov dword [rbp - 0x71], ecx
mov dword [rbp - 0x69], ebx
cmp ecx, r15d
jl 0x14008ac20
mov rcx, rsi
call fcn.1400ba61c
mov rcx, qword [rbp - 0x41]
lea r8, [rbp + 7]
mov edx, r15d
mov r9d, 8
imul edx, dword [rbp - 0x59]
call fcn.1400895d0
mov rcx, qword [rbp - 0x41]
mov r14, rax
call fcn.1400ba61c
test r14, r14
je 0x14008abb5
mov ecx, dword [rbp + 7]
mov rax, 0xffffffffffffffff
add ecx, 0x2d
add ecx, 0xc
cmovb rcx, rax
call fcn.1400c5d44
mov rsi, rax
test rax, rax
je 0x14008abb5
mov ecx, dword [rbp + 7]
mov edx, 0xd
mov r12, qword [rbp - 0x19]
add ecx, 0x39
mov dword [r12], ecx
mov rcx, qword [rsp + 0x20]
mov qword [rax], rcx
mov ecx, dword [rbp - 0x55]
mov dword [rax + 8], 0xd000000
mov dword [rax + 0xc], 0x52444849
mov eax, ecx
sar eax, 0x18
mov byte [rsi + 0x10], al
mov eax, ecx
sar eax, 0x10
mov byte [rsi + 0x11], al
mov eax, ecx
sar eax, 8
mov byte [rsi + 0x12], al
mov eax, r15d
mov byte [rsi + 0x13], cl
lea rcx, [rsp + 0x20]
sar eax, 0x18
mov byte [rsi + 0x14], al
mov eax, r15d
sar eax, 0x10
mov byte [rsi + 0x15], al
mov eax, r15d
sar eax, 8
mov byte [rsi + 0x16], al
movzx eax, byte [rbp + rdi*4 - 0x11]
mov byte [rsi + 0x17], r15b
mov byte [rsi + 0x18], 8
mov byte [rsi + 0x19], al
lea rax, [rsi + 0x1d]
mov word [rsi + 0x1a], 0
mov qword [rsp + 0x20], rax
mov byte [rsi + 0x1c], 0
call fcn.14008a950
mov eax, dword [rbp + 7]
mov rdx, r14
mov rbx, qword [rsp + 0x20]
sar eax, 0x18
mov byte [rbx], al
mov eax, dword [rbp + 7]
sar eax, 0x10
mov byte [rbx + 1], al
mov eax, dword [rbp + 7]
sar eax, 8
mov byte [rbx + 2], al
movzx eax, byte [rbp + 7]
mov byte [rbx + 3], al
mov dword [rbx + 4], 0x54414449
add rbx, 8
movsxd r8, dword [rbp + 7]
mov rcx, rbx
call fcn.1400b5c90
movsxd rax, dword [rbp + 7]
mov rcx, r14
add rax, rbx
mov qword [rsp + 0x20], rax
call fcn.1400ba61c
mov edx, dword [rbp + 7]
lea rcx, [rsp + 0x20]
call fcn.14008a950
mov rax, qword [rsp + 0x20]
lea rcx, [rsp + 0x20]
xor edx, edx
mov dword [rax], 0
mov dword [rax + 4], 0x444e4549
add rax, 8
mov qword [rsp + 0x20], rax
call fcn.14008a950
movsxd rax, dword [r12]
add rax, rsi
cmp qword [rsp + 0x20], rax
je 0x14008b2cf
mov r8d, 0x1e4
lea rdx, str.C:Users_swe_r_source_reposUnnamedPreLoaderUnnamedPreLoader_stb_image_write.h
lea rcx, str.o__out__out_len
call fcn.1400c5c38
mov rax, rsi
jmp 0x14008abb7