Function at 0x140021b00
Capabilities:
Encrypt data using tea

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xd8
mov qword [rsp + 0xc0], r8
mov r9, rdx
mov rdi, rcx
lea rax, str.encrypt
mov qword [rsp + 0x88], rax
lea r10, str._home_neko_.nimble_pkgs2_xxtea_1.0.2_3da765c81268f6d18f7e845b25e123549526b383_xxtea.nim
mov qword [rsp + 0x98], r10
mov qword [rsp + 0x90], 0
mov word [rsp + 0xa0], 0
mov eax, dword [0x140682508]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
lea r12, [rax + 0x2ac8]
mov rax, qword [rax + 0x2ac8]
test rax, rax
mov qword [rsp + 0x28], rdx
je 0x140021bc0
movzx ecx, word [rax + 0x22]
add ecx, 1
mov word [rsp + 0xa2], cx
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0x80]
mov qword [r12], rax
movzx eax, cx
cmp eax, 0x7d0
jne 0x140021be2
call fcn.1400153a0
lea r10, str._home_neko_.nimble_pkgs2_xxtea_1.0.2_3da765c81268f6d18f7e845b25e123549526b383_xxtea.nim
mov r9, qword [rsp + 0x28]
jmp 0x140021be2
mov word [rsp + 0xa2], 0
mov qword [rsp + 0x80], 0
lea rax, [rsp + 0x80]
mov qword [r12], rax
mov eax, dword [0x140682508]
mov rcx, qword gs:[0x58]
mov r8, qword [rcx + rax*8]
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rsp + 0x90], 9
mov r11, qword [r9]
cmp r11, 1
mov qword [rsp + 0x78], rdi
jg 0x140021cf6
mov rsi, qword [r9 + 8]
mov rcx, rdi
mov rdx, r11
call fcn.1400162d0
mov rax, qword [rdi]
test rax, rax
jle 0x1400220e2
mov rcx, qword [rsp + 0x78]
mov rcx, qword [rcx + 8]
xor edx, edx
cmp rax, 0xc
jb 0x140021c8a
mov r8, rcx
sub r8, rsi
cmp r8, 0x20
jb 0x140021c8a
mov rdx, rax
and rdx, 0xfffffffffffffff8
xor r8d, r8d
nop dword [rax + rax]
movups xmm0, xmmword [rsi + r8*4 + 8]
movups xmm1, xmmword [rsi + r8*4 + 0x18]
movups xmmword [rcx + r8*4 + 8], xmm0
movups xmmword [rcx + r8*4 + 0x18], xmm1
add r8, 8
cmp rdx, r8
jne 0x140021c60
cmp rax, rdx
je 0x1400220e2
mov r8, rdx
not r8
add r8, rax
mov r9, rax
and r9, 3
je 0x140021cb4
nop dword [rax]
mov r10d, dword [rsi + rdx*4 + 8]
mov dword [rcx + rdx*4 + 8], r10d
add rdx, 1
add r9, 0xffffffffffffffff
jne 0x140021ca0
cmp r8, 3
jb 0x1400220e2
nop
mov r8d, dword [rsi + rdx*4 + 8]
mov dword [rcx + rdx*4 + 8], r8d
mov r8d, dword [rsi + rdx*4 + 0xc]
mov dword [rcx + rdx*4 + 0xc], r8d
mov r8d, dword [rsi + rdx*4 + 0x10]
mov dword [rcx + rdx*4 + 0x10], r8d
mov r8d, dword [rsi + rdx*4 + 0x14]
mov dword [rcx + rdx*4 + 0x14], r8d
add rdx, 4
cmp rax, rdx
jne 0x140021cc0
jmp 0x1400220e2
lea rcx, [r11 - 1]
mov qword [rsp + 0x90], 0xb
mov rsi, qword [r9 + 8]
mov r14d, dword [rsi + r11*4 + 4]
xor eax, eax
mov qword [rsp + 0x30], rax
cmp r11, 0x34
ja 0x140021d28
mov eax, 0x34
xor edx, edx
div r11d
jmp 0x140021d2a
xor eax, eax
lea rdx, [r8 + 0x2ad8]
mov qword [rsp + 0xb8], rdx
add rax, 6
mov edx, ecx
and edx, 3
mov qword [rsp + 0xc8], rdx
mov rdx, r11
mov qword [rsp + 0x38], r11
mov qword [rsp + 0xb0], rcx
test rax, rax
jle 0x140022106
add rax, 0xffffffffffffffff
mov qword [rsp + 0xd0], rax
mov r13, qword [rsp + 0x30]
add r13d, 0x9e3779b9
mov qword [rsp + 0x30], r13
shr r13d, 2
and r13d, 3
mov ebp, 1
nop dword [rax]
mov qword [rsp + 0x98], r10
mov qword [rsp + 0x90], 0x15
cmp rbp, rdx
jge 0x1400220cd
lea r15, [rbp - 1]
mov ebx, dword [rsi + rbp*4 + 8]
mov qword [rsp + 0x90], 0x16
mov rax, qword [rsp + 0xc0]
mov rsi, qword [rax]
mov rdi, qword [rax + 8]
lea rax, [rdi + 8]
test rdi, rdi
cmovne rdi, rax
lea rax, [0x140049090]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x58], r10
mov qword [rsp + 0x50], 0
mov word [rsp + 0x60], 0
mov rax, qword [r12]
test rax, rax
je 0x140021e50
movzx ecx, word [rax + 0x22]
add ecx, 1
mov word [rsp + 0x62], cx
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x40]
mov qword [r12], rax
movzx eax, cx
cmp eax, 0x7d0
jne 0x140021e69
call fcn.1400153a0
mov r11, qword [rsp + 0x38]
lea r10, str._home_neko_.nimble_pkgs2_xxtea_1.0.2_3da765c81268f6d18f7e845b25e123549526b383_xxtea.nim
mov r9, qword [rsp + 0x28]
jmp 0x140021e69
mov word [rsp + 0x62], 0
mov qword [rsp + 0x40], 0
lea rax, [rsp + 0x40]
mov qword [r12], rax
mov qword [rsp + 0x50], 6
mov ecx, r15d
and ecx, 3
xor rcx, r13
cmp rcx, rsi
jge 0x140021ec0
mov eax, r14d
shr eax, 5
lea edx, [rbx*4]
xor edx, eax
mov eax, ebx
shr eax, 3
mov r8d, r14d
shl r8d, 4
xor r8d, eax
add r8d, edx
xor ebx, dword [rsp + 0x30]
xor r14d, dword [rdi + rcx*4]
add r14d, ebx
xor r14d, r8d
jmp 0x140021edd
add rsi, 0xffffffffffffffff
mov rdx, rsi
call fcn.140013bf0
mov r11, qword [rsp + 0x38]
lea r10, str._home_neko_.nimble_pkgs2_xxtea_1.0.2_3da765c81268f6d18f7e845b25e123549526b383_xxtea.nim
mov r9, qword [rsp + 0x28]
mov rax, qword [r12]
mov rax, qword [rax]
mov qword [r12], rax
mov rax, qword [rsp + 0xb8]
cmp byte [rax], 0
jne 0x1400220e2
mov rsi, qword [r9 + 8]
add r14d, dword [rsi + rbp*4 + 4]
mov dword [rsi + rbp*4 + 4], r14d
mov qword [rsp + 0x90], 0x17
mov rdx, qword [r9]
cmp r15, rdx
jge 0x1400220d6
mov qword [rsp + 0x90], 0x44
lea rax, str._home_neko_.choosenim_toolchains_nim_2.0.2_lib_system_iterators_1.nim
mov qword [rsp + 0x98], rax
add rbp, 1
cmp r11, rbp
jne 0x140021d90
mov qword [rsp + 0x90], 0x18
mov qword [rsp + 0x98], r10
test rdx, rdx
jle 0x14002212c
mov ebx, dword [rsi + 8]
mov qword [rsp + 0x90], 0x19
cmp r11, rdx
jg 0x140022134
mov rax, qword [rsp + 0xc0]
mov rsi, qword [rax]
mov rax, qword [rax + 8]
lea rdi, [rax + 8]
test rax, rax
cmove rdi, rax
lea rax, [0x140049090]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x58], r10
mov qword [rsp + 0x50], 0
mov word [rsp + 0x60], 0
mov rax, qword [r12]
test rax, rax
je 0x140021ffc
movzx ecx, word [rax + 0x22]
add ecx, 1
mov word [rsp + 0x62], cx
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0x40]
mov qword [r12], rax
movzx eax, cx
cmp eax, 0x7d0
jne 0x140022015
call fcn.1400153a0
mov r11, qword [rsp + 0x38]
lea r10, str._home_neko_.nimble_pkgs2_xxtea_1.0.2_3da765c81268f6d18f7e845b25e123549526b383_xxtea.nim
mov r9, qword [rsp + 0x28]
jmp 0x140022015
mov word [rsp + 0x62], 0
mov qword [rsp + 0x40], 0
lea rax, [rsp + 0x40]
mov qword [r12], rax
mov qword [rsp + 0x50], 6
xor r13, qword [rsp + 0xc8]
cmp r13, rsi
jge 0x140022059
mov eax, r14d
shr eax, 5
lea ecx, [rbx*4]
xor ecx, eax
mov eax, ebx
shr eax, 3
mov edx, r14d
shl edx, 4
xor edx, eax
add edx, ecx
xor ebx, dword [rsp + 0x30]
xor r14d, dword [rdi + r13*4]
add r14d, ebx
xor r14d, edx
jmp 0x140022079
add rsi, 0xffffffffffffffff
mov rcx, r13
mov rdx, rsi
call fcn.140013bf0
mov r11, qword [rsp + 0x38]
lea r10, str._home_neko_.nimble_pkgs2_xxtea_1.0.2_3da765c81268f6d18f7e845b25e123549526b383_xxtea.nim
mov r9, qword [rsp + 0x28]
mov rax, qword [r12]
mov rax, qword [rax]
mov qword [r12], rax
mov rax, qword [rsp + 0xb8]
cmp byte [rax], 0
jne 0x1400220e2
mov rsi, qword [r9 + 8]
add r14d, dword [rsi + r11*4 + 4]
mov dword [rsi + r11*4 + 4], r14d
mov qword [rsp + 0x90], 0x1a
mov rdx, qword [r9]
cmp r11, rdx
mov rcx, qword [rsp + 0xb0]
mov rax, qword [rsp + 0xd0]
jle 0x140021d5a
add rdx, 0xffffffffffffffff
jmp 0x1400220dd
add rdx, 0xffffffffffffffff
mov rcx, rbp
jmp 0x1400220dd
add rdx, 0xffffffffffffffff
mov rcx, r15
call fcn.140013bf0
mov rax, qword [r12]
mov rax, qword [rax]
mov qword [r12], rax
mov rax, qword [rsp + 0x78]
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x90], 9
movups xmm0, xmmword [r9]
movaps xmmword [rsp + 0x40], xmm0
lea rdx, [rsp + 0x40]
mov rcx, qword [rsp + 0x78]
call fcn.1400218e0
jmp 0x1400220e2
add rdx, 0xffffffffffffffff
xor ecx, ecx
jmp 0x1400220dd
add rdx, 0xffffffffffffffff
mov rcx, qword [rsp + 0xb0]
jmp 0x1400220dd