Function at 0x14005f950
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 [0x140119db8]
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.140006f60
test eax, eax
jle 0x140060258
lea r13, [0x140000000]
lea r14, str.Decremented_item_count_by
movzx ebx, byte [rsp + 0x30]
mov ecx, dword [rbp - 0x10]
sub ecx, 2
je 0x1400601f8
cmp ecx, 1
jne 0x1400601a6
mov rax, qword [rbp + 8]
mov rcx, qword [rax + 0x10]
test rcx, rcx
je case.0x14005fa85.2
cmp qword [rax + 0x18], 3
jbe case.0x14005fa85.2
movzx ecx, byte [rcx]
sub ecx, 2
je 0x140060125
sub ecx, 1
je 0x1400600e0
sub ecx, 1
je 0x14005fa59
sub ecx, 2
je 0x14005fa11
cmp ecx, 1
je 0x140060258
jmp case.0x14005fa85.2
mov rcx, qword [rbp + 8]
call fcn.14006e270
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 0x14005fa33
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.140003500
lea rcx, [rsp + 0x40]
call fcn.14003f390
jmp 0x140060171
mov rcx, qword [rbp + 8]
call fcn.14006e220
mov rsi, rax
test rax, rax
je case.0x14005fa85.2
movzx eax, byte [rax]
cmp eax, 0xe
ja case.0x14005fa85.2
mov edx, dword [r13 + rax*4 + 0x60288]
add rdx, r13
jmp rdx
mov dword [r15 + 0x260], r12d
mov word [r15 + 0x264], r12w
lea rcx, [r15 + 0x268]
call fcn.14005f170
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 0x14005fad9
lea r8, [rsp + 0x30]
lea rcx, [rbp + 0x10]
call fcn.14005d3e0
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 0x14005fb41
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.14005d560
mov rcx, qword [rax]
mov eax, dword [rdi]
mov dword [rcx + 0x14], eax
add rdi, 4
cmp rdi, rsi
jne 0x14005fb10
mov rdi, qword [rbp + 0x10]
test rdi, rdi
je case.0x14005fa85.2
mov rdx, qword [rbp + 0x20]
sub rdx, rdi
and rdx, 0xfffffffffffffffc
mov rax, rdi
cmp rdx, 0x1000
jb 0x14005fb7a
add rdx, 0x27
mov rdi, qword [rdi - 8]
sub rax, rdi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400601c3
mov rcx, rdi
call fcn.1400d96d4
jmp case.0x14005fa85.2
mov edi, dword [rsi + 0x14]
mov r9, qword [0x14011dc78]
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 0x14005fc20
mov rax, qword [r11 + rdx*8]
cmp edi, dword [rcx + 0x10]
je 0x14005fc23
nop dword [rax]
cmp rcx, rax
je 0x14005fc20
mov rcx, qword [rcx + 8]
cmp edi, dword [rcx + 0x10]
jne 0x14005fc10
jmp 0x14005fc23
mov rcx, r12
test rcx, rcx
cmove rcx, r8
cmp rcx, r8
je case.0x14005fa85.2
movzx eax, byte [rcx + 0x16]
movzx edx, byte [rsi + 2]
cmp al, dl
jbe 0x14005ff54
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 0x14005fc50
lea r9, [rsp + 0x30]
lea r8, [rbp + 0x25]
mov rdx, r10
lea rcx, [rbp - 0x80]
call fcn.140002b90
nop
movzx edx, byte [rsi + 2]
lea rcx, [rsp + 0x60]
call fcn.140003410
mov rdi, rax
mov r8, qword [rax + 0x10]
mov rcx, qword [rax + 0x18]
mov rax, rcx
sub rax, r8
cmp rax, 0x1a
jb 0x14005fd42
lea rax, [r8 + 0x1a]
mov qword [rdi + 0x10], rax
mov rsi, rdi
cmp rcx, 0x10
jb 0x14005fccb
mov rsi, qword [rdi]
lea rax, [0x1400ece12]
cmp rax, rsi
jbe 0x14005fcf9
lea rax, [rsi + r8]
cmp r14, rax
ja 0x14005fcf9
cmp rsi, r14
ja 0x14005fcea
mov r14, r12
jmp 0x14005fcff
mov r14, rsi
lea rax, str.Decremented_item_count_by
sub r14, rax
jmp 0x14005fcff
mov r14d, reloc.WLDAP32.dll_Ordinal_26
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, reloc.WLDAP32.dll_Ordinal_26
sub r8, r14
lea rdx, str.Decremented_item_count_by
add rdx, 0x1a
add rdx, r14
call sub.VCRUNTIME140.dll_memcpy
jmp 0x14005fd65
mov qword [rsp + 0x28], reloc.WLDAP32.dll_Ordinal_26
mov qword [rsp + 0x20], r14
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0x1a]
mov rcx, rdi
call fcn.14000e450
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 0x14005fdd7
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 0x14005fdf8
mov qword [rsp + 0x20], 2
lea r9, [0x1400ea450]
xor r8d, r8d
lea edx, [r8 + 2]
lea rcx, [rsp + 0x40]
call fcn.140002c90
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.140002e60
lea rcx, [rbp - 0x40]
call fcn.140044ab0
nop
mov rdx, qword [rbp - 0x48]
cmp rdx, 0x10
jb 0x14005fe70
inc rdx
mov rcx, qword [rbp - 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005fe6a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400601ca
call fcn.1400d96d4
nop
mov rdx, qword [rsp + 0x58]
cmp rdx, 0x10
jb 0x14005fead
inc rdx
mov rcx, qword [rsp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005fea8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400601d1
call fcn.1400d96d4
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 0x14005fefd
inc rdx
mov rcx, qword [rsp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005fef8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400601d8
call fcn.1400d96d4
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.0x14005fa85.2
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005ff4a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400601df
call fcn.1400d96d4
jmp case.0x14005fa85.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 0x14005ffc0
cmp rax, rcx
jne 0x14005ffb5
mov qword [r11 + rdx*8], r8
mov qword [r11 + rdx*8 + 8], r8
jmp 0x14005ffcc
mov r8, qword [rcx + 8]
mov qword [r11 + rdx*8 + 8], r8
jmp 0x14005ffcc
cmp rax, rcx
jne 0x14005ffcc
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, Ordinal_27
call fcn.1400d96d4
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 0x140060000
lea r9, [rsp + 0x30]
lea r8, [rbp + 0x25]
mov rdx, r10
lea rcx, [rbp - 0x80]
call fcn.140002b90
nop
lea r8, [rbp - 0x80]
lea rdx, str.Erased_item_from_inventory:
lea rcx, [rbp - 0x40]
call fcn.14000a780
mov rcx, rax
call fcn.140044ab0
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 0x10
jb case.0x14005fa85.2
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140060095
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400601e6
call fcn.1400d96d4
jmp case.0x14005fa85.2
mov rcx, rsi
call fcn.14003fd40
jmp 0x140060171
mov rcx, rsi
call fcn.14003c4c0
jmp 0x140060171
mov rcx, rsi
call fcn.140035d50
jmp 0x140060171
mov rcx, rsi
call fcn.14001ad40
jmp 0x140060171
mov rcx, rsi
call fcn.14003d590
jmp 0x140060171
mov rcx, qword [rbp + 8]
call fcn.14006e270
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 0x140060102
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140003500
lea rcx, [rsp + 0x60]
call fcn.140029100
jmp 0x140060171
mov rcx, qword [rbp + 8]
call fcn.14006e270
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 0x140060150
mov rdx, rax
lea rcx, [rsp + 0x60]
call fcn.140003500
lea rcx, [rsp + 0x60]
call fcn.1400294a0
test al, al
jne 0x1400601ed
mov rcx, qword [r15 + 0x18]
test rcx, rcx
je 0x140060258
cmp qword [r15], 0
je 0x140060258
mov r8, qword [rbp + 8]
xor edx, edx
call fcn.140006a80
mov rcx, qword [r15]
call fcn.140006f30
lea r14, str.Decremented_item_count_by
xor r8d, r8d
lea rdx, [rbp - 0x10]
mov rcx, qword [r15 + 8]
call fcn.140006f60
test eax, eax
jle 0x140060258
jmp 0x14005f9b3
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.140005960
jmp 0x140060258
mov byte [r15 + 0xe0], 0
lea rcx, [r15 + 0x1c0]
call fcn.140024720
mov rcx, qword [r15 + 0x10]
test rcx, rcx
je 0x140060236
xor edx, edx
call fcn.140005bc0
mov rcx, qword [r15 + 0x10]
call fcn.1400066f0
mov qword [r15 + 0x10], r12
mov rcx, qword [r15 + 8]
call fcn.140005720
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.140024080
mov dword [r15 + 0x50], 0x432e
mov rcx, qword [rbp + 0x28]
xor rcx, rsp
call fcn.1400d97f0
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.1400602d0
cmp qword [rbx + 8], 0
je 0x1400620a2
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp 0x14005f950
add rsp, 0x20
pop rbx
ret