Function at 0x14005d030
Capabilities:
Encrypt data using speck
Hash data using fnv

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x30]
sub rsp, 0x130
mov rax, qword [0x14008fd48]
xor rax, rsp
mov qword [rbp + 0x28], rax
mov r15, rcx
xor r12d, r12d
xor r8d, r8d
lea rdx, [rbp - 0x10]
mov rcx, qword [rcx + 8]
call fcn.140006dc0
test eax, eax
jle 0x14005d938
lea r13, [0x140000000]
lea r14, str.Decremented_item_count_by
movzx ebx, byte [rsp + 0x30]
mov ecx, dword [rbp - 0x10]
sub ecx, 2
je 0x14005d8d8
cmp ecx, 1
jne 0x14005d886
mov rax, qword [rbp + 8]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je case.0x14005d165.2
cmp qword [rax + 0x18], 3
jbe case.0x14005d165.2
movzx ecx, byte [rcx]
sub ecx, 2
je 0x14005d805
sub ecx, 1
je 0x14005d7c0
sub ecx, 1
je 0x14005d139
sub ecx, 2
je 0x14005d0f1
cmp ecx, 1
je 0x14005d938
jmp case.0x14005d165.2
mov rcx, qword [rbp + 8]
call fcn.140061770
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x58], r12
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x14005d113
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.140003360
lea rcx, [rsp + 0x40]
call fcn.14003f1c0
jmp 0x14005d851
mov rcx, qword [rbp + 8]
call fcn.140061720
mov rsi, rax
test rax, rax
je case.0x14005d165.2
movzx eax, byte [rax]
cmp eax, 0xe
ja case.0x14005d165.2
mov edx, dword [r13 + rax*4 + 0x5d968]
add rdx, r13
jmp rdx
mov dword [r15 + 0x260], r12d
mov word [r15 + 0x264], r12w
lea rcx, [r15 + 0x268]
call fcn.14005c850
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x10], xmm1
mov qword [rbp + 0x20], r12
mov eax, dword [rsi + 0x39]
mov dword [r15 + 0x260], eax
movzx eax, word [rsi + 0x3d]
mov word [r15 + 0x264], ax
mov edx, eax
test rax, rax
je 0x14005d1b9
lea r8, [rsp + 0x30]
lea rcx, [rbp + 0x10]
call fcn.14005aac0
mov r8, qword [rbp + 0x18]
mov rcx, qword [rbp + 0x10]
sub r8, rcx
sar r8, 2
lea r8, [r8*4]
lea rdx, [rsi + 0x3f]
call sub.VCRUNTIME140.dll_memcpy
mov rsi, qword [rbp + 0x18]
mov rdi, qword [rbp + 0x10]
cmp rdi, rsi
je 0x14005d221
nop word [rax + rax]
movzx eax, word [rdi]
mov dword [rsp + 0x38], eax
lea r8, [rsp + 0x38]
lea rdx, [rbp - 0x20]
lea rcx, [r15 + 0x268]
call fcn.14005ac40
mov rcx, qword [rax]
mov eax, dword [rdi]
mov dword [rcx + 0x14], eax
add rdi, 4
cmp rdi, rsi
jne 0x14005d1f0
mov rdi, qword [rbp + 0x10]
test rdi, rdi
je case.0x14005d165.2
mov rdx, qword [rbp + 0x20]
sub rdx, rdi
and rdx, 0xfffffffffffffffc
mov rax, rdi
cmp rdx, 0x1000
jb 0x14005d25a
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005d8a3
mov rcx, rdi
call fcn.140069974
jmp case.0x14005d165.2
mov edi, dword [rsi + 0x14]
mov r9, qword [0x1400937b8]
mov eax, edi
shr eax, 8
movzx edx, al
movzx eax, dil
movabs rcx, 0xcbf29ce484222325
xor rax, rcx
movabs r8, 0x100000001b3
imul rax, r8
xor rdx, rax
imul rdx, r8
mov eax, edi
shr eax, 0x10
movzx ecx, al
xor rdx, rcx
imul rdx, r8
mov eax, edi
shr rax, 0x18
xor rdx, rax
imul rdx, r8
mov r10, qword [r9 + 0x298]
and rdx, r10
mov r11, qword [r9 + 0x280]
add rdx, rdx
mov rcx, qword [r11 + rdx*8 + 8]
mov r8, qword [r9 + 0x270]
cmp rcx, r8
je 0x14005d300
mov rax, qword [r11 + rdx*8]
cmp edi, dword [rcx + 0x10]
je 0x14005d303
nop dword [rax]
cmp rcx, rax
je 0x14005d300
mov rcx, qword [rcx + 8]
cmp edi, dword [rcx + 0x10]
jne 0x14005d2f0
jmp 0x14005d303
mov rcx, r12
test rcx, rcx
cmove rcx, r8
cmp rcx, r8
je case.0x14005d165.2
movzx eax, byte [rcx + 0x16]
movzx edx, byte [rsi + 2]
cmp al, dl
jbe 0x14005d634
sub al, dl
mov byte [rcx + 0x16], al
lea r10, [rbp + 0x25]
nop dword [rax]
dec r10
mov eax, 0xcccccccd
mul edi
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub dil, cl
add dil, 0x30
mov byte [r10], dil
mov edi, edx
test edx, edx
jne 0x14005d330
lea r9, [rsp + 0x30]
lea r8, [rbp + 0x25]
mov rdx, r10
lea rcx, [rbp - 0x80]
call fcn.1400029f0
nop
movzx edx, byte [rsi + 2]
lea rcx, [rsp + 0x60]
call fcn.140003270
mov rdi, rax
mov r8, qword [rax + 0x10]
mov rcx, qword [rax + 0x18]
mov rax, rcx
sub rax, r8
cmp rax, 0x1a
jb 0x14005d422
lea rax, [r8 + 0x1a]
mov qword [rdi + 0x10], rax
mov rsi, rdi
cmp rcx, 0x10
jb 0x14005d3ab
mov rsi, qword [rdi]
lea rax, [0x14007a67a]
cmp rax, rsi
jbe 0x14005d3d9
lea rax, [rsi + r8]
cmp r14, rax
ja 0x14005d3d9
cmp rsi, r14
ja 0x14005d3ca
mov r14, r12
jmp 0x14005d3df
mov r14, rsi
lea rax, str.Decremented_item_count_by
sub r14, rax
jmp 0x14005d3df
mov r14d, 0x1a
lea rcx, [rsi + 0x1a]
inc r8
mov rdx, rsi
call sub.VCRUNTIME140.dll_memmove
mov r8, r14
lea rdx, str.Decremented_item_count_by
mov rcx, rsi
call sub.VCRUNTIME140.dll_memcpy
lea rcx, [rsi + r14]
mov r8d, 0x1a
sub r8, r14
lea rdx, str.Decremented_item_count_by
add rdx, 0x1a
add rdx, r14
call sub.VCRUNTIME140.dll_memcpy
jmp 0x14005d445
mov qword [rsp + 0x28], 0x1a
mov qword [rsp + 0x20], r14
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x1a]
mov rcx, rdi
call fcn.14000e2b0
mov rdi, rax
xorps xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x58], r12
movups xmm0, xmmword [rdi]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rsp + 0x50], xmm1
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rdi], 0
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x58]
mov rax, rdx
sub rax, rcx
cmp rax, 2
jb 0x14005d4b7
lea rax, [rcx + 2]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x40]
cmp rdx, 0x10
cmovae rax, qword [rsp + 0x40]
mov word [rax + rcx], 0x203a
mov byte [rax + rcx + 2], 0
lea rax, [rsp + 0x40]
jmp 0x14005d4d8
mov qword [rsp + 0x20], 2
lea r9, [0x140077f54]
xor r8d, r8d
lea edx, [r8 + 2]
lea rcx, [rsp + 0x40]
call fcn.140002af0
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x60], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x50], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rax], 0
lea r9, [rbp - 0x80]
lea r8, [rbp - 0x60]
movzx edx, bl
lea rcx, [rbp - 0x40]
call fcn.140002cc0
lea rcx, [rbp - 0x40]
call fcn.1400448e0
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x14005d550
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d54a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005d8aa
call fcn.140069974
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x14005d58d
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d588
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005d8b1
call fcn.140069974
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x58], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x40], 0
mov rdx, qword [rsp + 0x78]
cmp rdx, 0x10
jb 0x14005d5dd
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d5d8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005d8b8
call fcn.140069974
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], reloc.WS2_32.dll_ntohs
mov byte [rsp + 0x60], 0
mov rdx, qword [rbp - 0x68]
cmp rdx, 0x10
jb case.0x14005d165.2
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d62a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005d8bf
call fcn.140069974
jmp case.0x14005d165.2
movzx edx, byte [rcx + 0x10]
movabs rax, 0xcbf29ce484222325
xor rdx, rax
movabs rsi, 0x100000001b3
imul rdx, rsi
movzx eax, byte [rcx + 0x11]
xor rdx, rax
imul rdx, rsi
movzx eax, byte [rcx + 0x12]
xor rdx, rax
imul rdx, rsi
movzx eax, byte [rcx + 0x13]
xor rdx, rax
imul rdx, rsi
and rdx, r10
add rdx, rdx
mov rax, qword [r11 + rdx*8]
cmp qword [r11 + rdx*8 + 8], rcx
jne 0x14005d6a0
cmp rax, rcx
jne 0x14005d695
mov qword [r11 + rdx*8], r8
mov qword [r11 + rdx*8 + 8], r8
jmp 0x14005d6ac
mov r8, qword [rcx + 8]
mov qword [r11 + rdx*8 + 8], r8
jmp 0x14005d6ac
cmp rax, rcx
jne 0x14005d6ac
mov rax, qword [rcx]
mov qword [r11 + rdx*8], rax
mov rdx, qword [rcx]
dec qword [r9 + 0x278]
mov rax, qword [rcx + 8]
mov qword [rax], rdx
mov rax, qword [rcx + 8]
mov qword [rdx + 8], rax
mov edx, 0x18
call fcn.140069974
lea r10, [rbp + 0x25]
nop dword [rax]
nop word [rax + rax]
dec r10
mov eax, 0xcccccccd
mul edi
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub dil, cl
add dil, 0x30
mov byte [r10], dil
mov edi, edx
test edx, edx
jne 0x14005d6e0
lea r9, [rsp + 0x30]
lea r8, [rbp + 0x25]
mov rdx, r10
lea rcx, [rbp - 0x80]
call fcn.1400029f0
nop
lea r8, [rbp - 0x80]
lea rdx, str.Erased_item_from_inventory:
lea rcx, [rbp - 0x40]
call fcn.14000a5e0
mov rcx, rax
call fcn.1400448e0
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 0x10
jb case.0x14005d165.2
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005d775
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14005d8c6
call fcn.140069974
jmp case.0x14005d165.2
mov rcx, rsi
call fcn.14003fb70
jmp 0x14005d851
mov rcx, rsi
call fcn.14003c2f0
jmp 0x14005d851
mov rcx, rsi
call fcn.140035b80
jmp 0x14005d851
mov rcx, rsi
call fcn.14001ab70
jmp 0x14005d851
mov rcx, rsi
call fcn.14003d3c0
jmp 0x14005d851
mov rcx, qword [rbp + 8]
call fcn.140061770
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], r12
mov r8, 0xffffffffffffffff
inc r8
cmp byte [rax + r8], 0
jne 0x14005d7e2
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140003360
lea rcx, [rsp + 0x60]
call fcn.140028f30
jmp 0x14005d851
mov rcx, qword [rbp + 8]
call fcn.140061770
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], r12
mov qword [rsp + 0x78], r12
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x14005d830
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140003360
lea rcx, [rsp + 0x60]
call fcn.1400292d0
test al, al
jne 0x14005d8cd
mov rcx, qword [r15 + 0x18]
test rcx, rcx
je 0x14005d938
cmp qword [r15], 0
je 0x14005d938
mov r8, qword [rbp + 8]
xor edx, edx
call fcn.1400068e0
mov rcx, qword [r15]
call fcn.140006d90
lea r14, str.Decremented_item_count_by
xor r8d, r8d
lea rdx, [rbp - 0x10]
mov rcx, qword [r15 + 8]
call fcn.140006dc0
test eax, eax
jle 0x14005d938
jmp 0x14005d093
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov rcx, qword [rbp + 8]
call fcn.1400057c0
jmp 0x14005d938
mov byte [r15 + 0xe0], 0
lea rcx, [r15 + 0x1c0]
call fcn.140024550
mov rcx, qword [r15 + 0x10]
test rcx, rcx
je 0x14005d916
xor edx, edx
call fcn.140005a20
mov rcx, qword [r15 + 0x10]
call fcn.140006550
mov qword [r15 + 0x10], r12
mov rcx, qword [r15 + 8]
call fcn.140005580
mov qword [r15 + 8], r12
mov qword [r15 + 0x24], r12
lea rcx, [r15 + 0x30]
mov r8d, reloc.WS2_32.dll_ntohs
lea rdx, str.213.179.209.168
call fcn.140023eb0
mov dword [r15 + 0x50], 0x432e
mov rcx, qword [rbp + 0x28]
xor rcx, rsp
call fcn.140069a90
lea r11, [rsp + 0x130]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
push rbx
sub rsp, 0x20
mov rbx, rcx
call fcn.14005d9b0
cmp qword [rbx + 8], 0
je 0x14005f782
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp 0x14005d030
add rsp, 0x20
pop rbx
ret