Function at 0x18005f7c0
Capabilities:
Hash data using djb2

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], r9
mov dword [rsp + 0x18], r8d
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1f]
sub rsp, 0xd0
mov r13, rcx
mov r14, r9
lea ecx, [r8 + 0x8ee]
mov eax, r8d
mov dword [rbp - 0x69], ecx
cmp r8d, ecx
jae 0x18005f9b4
mov r12, qword [rbp + 0x7f]
lea r15, str.bson
xor ebx, ebx
lea rsi, [0x180096847]
lea rdi, [rbx - 1]
nop
cmp eax, 0x1e6
ja 0x18005fd4d
je 0x18005fd26
cmp eax, 0x156
ja 0x18005fbe2
je 0x18005f941
sub eax, 0xd7
je 0x18005f8de
sub eax, 0xb
je 0x18005f8d6
sub eax, 6
je 0x18005f869
cmp eax, 0x40
je 0x18005f965
jmp 0x18005fbc8
test r13, r13
jne 0x18005f8c4
mov edi, 0xd5
mov eax, edi
sub eax, 0xd5
je 0x18005f887
cmp eax, 1
je 0x18005fef8
jmp 0x18005f8b0
mov ecx, 2
call fcn.180079a6c
mov rcx, rax
mov qword [rsp + 0x28], r15
xor r9d, r9d
mov qword [rsp + 0x20], rsi
mov r8, rsi
lea rdx, str.CNA::kAttrID_ConversationDisplayName
call fcn.18006bd20
inc edi
cmp edi, 0xd7
jb 0x18005f873
mov ecx, dword [rbp - 0x69]
mov rdi, 0xffffffffffffffff
test r12, r12
je 0x18005fbc8
mov qword [r12], rbx
jmp 0x18005fbc8
mov dword [rbp - 0x59], edi
jmp 0x18005fbc8
mov edx, 0x1505
lea r8, [r13 + 2]
mov r9d, 2
nop dword [rax]
movzx ecx, byte [r8 - 2]
lea r8, [r8 + 6]
imul eax, edx, 0x21
add ecx, eax
movzx eax, byte [r8 - 7]
imul edx, ecx, 0x21
add edx, eax
movzx eax, byte [r8 - 6]
imul ecx, edx, 0x21
add ecx, eax
movzx eax, byte [r8 - 5]
imul edx, ecx, 0x21
add edx, eax
movzx eax, byte [r8 - 4]
imul ecx, edx, 0x21
add ecx, eax
movzx eax, byte [r8 - 3]
imul edx, ecx, 0x21
add edx, eax
sub r9, 1
jne 0x18005f8f0
mov ecx, dword [rbp - 0x69]
mov dword [rbp - 0x55], edx
jmp 0x18005fbc8
mov eax, 0x90
nop word [rax + rax]
cmp eax, 0x90
je 0x18005fed4
add eax, 0x2a
cmp eax, 0xba
jb 0x18005f950
test r13, r13
je 0x18005ff00
mov r14d, ebx
cmp qword [r12], rbx
jbe 0x18005fecb
mov rdi, rbx
nop
lea rsi, [rdi + r13]
mov ecx, 0x135
mov r8, rsi
lea r9, [rbp - 0x64]
lea rdx, [rbp - 0x65]
call fcn.1800505c0
movzx edx, byte [rbp - 0x65]
test dl, dl
jne 0x18005f9e2
mov eax, 0x102
cmp eax, 0x102
je 0x18005f9d3
cmp eax, 0x3162
jne 0x18005f9d6
mov rax, qword [rbp - 0x61]
mov rbx, qword [rsp + 0x110]
add rsp, 0xd0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov byte [rbp - 0x61], bl
add eax, 0x3060
cmp eax, 0x60c0
jbe 0x18005f9a6
mov r15, qword [r12]
mov rcx, r15
sub rcx, rdi
cmp rcx, rdx
jb 0x18005fb92
movsx r10d, byte [rsi]
lea r9d, [r14 + 1]
movzx eax, byte [rbp - 0x64]
lea edi, [rdx + r14]
and r10d, eax
mov r11d, edx
cmp r9d, edi
jae 0x18005fa88
mov r8d, r9d
add r8, r13
nop word [rax + rax]
mov edx, 0x61
mov eax, edx
sub eax, 0x61
je 0x18005fa63
cmp eax, 1
jne 0x18005fa76
movzx eax, byte [r8]
and al, 0xc0
cmp al, 0x80
je 0x18005fa76
mov ecx, 0xe8
mov eax, ecx
sub eax, 0xe8
je 0x18005fa54
cmp eax, 1
je 0x18005f9b4
jmp 0x18005fa57
mov byte [rbp - 0x61], bl
inc ecx
cmp ecx, 0xea
jb 0x18005fa40
jmp 0x18005fa76
movsx ecx, byte [r8]
mov eax, r10d
and ecx, 0x3f
shl eax, 6
mov r10d, ecx
or r10d, eax
inc edx
cmp edx, 0x63
jb 0x18005fa25
inc r9d
inc r8
cmp r9d, edi
jb 0x18005fa20
mov rax, qword [rbp + 0x77]
cmp byte [rax], bl
jne 0x18005fac0
mov ecx, ebx
test r11d, r11d
je 0x18005fac0
nop word [rax + rax]
mov eax, r14d
cmp rax, r15
ja 0x18005fb92
cmp byte [rax + r13], bl
je 0x18005fb92
inc ecx
inc r14d
cmp ecx, r11d
jb 0x18005faa0
cmp r10d, 0x10ffff
jbe 0x18005faf2
mov ecx, 0xe8
nop
mov eax, ecx
sub eax, 0xe8
je 0x18005fae4
cmp eax, 9
je 0x18005f9b4
jmp 0x18005fae7
mov byte [rbp - 0x61], bl
add ecx, 9
cmp ecx, 0xfa
jb 0x18005fad0
mov eax, r10d
and eax, 0xfffff800
cmp eax, 0xd800
je 0x18005fb92
sub r11d, 1
je 0x18005fb9a
sub r11d, 1
je 0x18005fb82
sub r11d, 1
je 0x18005fb66
cmp r11d, 1
je 0x18005fb4a
mov ecx, 0x107
mov eax, ecx
sub eax, 0x107
je 0x18005fb3a
cmp eax, 0x32
je 0x18005f9b4
jmp 0x18005fb3d
mov byte [rbp - 0x61], bl
add ecx, 0x32
cmp ecx, 0x16b
jb 0x18005fb26
jmp 0x18005fba0
lea eax, [r10 - 0x10000]
cmp eax, 0xeffff
jbe 0x18005fba0
lea eax, [r10 - 0x100000]
cmp eax, 0xffff
jmp 0x18005fb9e
lea eax, [r10 - 0x800]
cmp eax, 0x7ff
jbe 0x18005fba0
lea eax, [r10 - 0x1000]
cmp eax, 0xefff
jmp 0x18005fb9e
lea eax, [r10 - 0x80]
cmp eax, 0x77f
jbe 0x18005fba0
test r10d, r10d
je 0x18005fba0
mov byte [rbp - 0x61], bl
jmp 0x18005f9b4
cmp r10d, 0x7f
ja 0x18005fb92
mov r14d, edi
cmp r14, r15
jb 0x18005f980
mov r14, qword [rbp + 0x77]
lea r15, str.bson
mov ecx, dword [rbp - 0x69]
mov rdi, 0xffffffffffffffff
lea rsi, [0x180096847]
mov eax, dword [rbp + 0x6f]
add eax, 0x7f
mov dword [rbp + 0x6f], eax
cmp eax, ecx
jae 0x18005f9b4
mov rdx, qword [rbp + 0x67]
jmp 0x18005f820
sub eax, 0x161
je 0x18005fccf
sub eax, 6
je 0x18005fc4e
sub eax, 0x40
je 0x18005fee0
cmp eax, 0x39
jne 0x18005fbc8
cmp dword [rbp - 0x59], 0xffffffff
jne 0x18005fc3d
mov rdi, qword [rdx]
call fcn.18006bae0
mov qword [rsp + 0x28], rdi
mov r9, r14
xor r8d, r8d
mov qword [rsp + 0x20], rbx
xor edx, edx
mov rcx, qword [rax]
or rcx, 2
call fcn.18007c6c8
test eax, eax
mov edx, eax
mov rdi, 0xffffffffffffffff
cmovs edx, edi
mov dword [rbp - 0x59], edx
mov rcx, qword [r12]
mov byte [rcx + r13 - 1], bl
mov ecx, dword [rbp - 0x69]
jmp 0x18005fbc8
test r13, r13
je 0x18005fc6f
cmp dword [r13 + 4], 5
je 0x18005fc6f
xor r8d, r8d
mov rdx, r13
mov ecx, 0x120
call fcn.180053980
cmp byte [rax + 4], bl
jne 0x18005fc46
mov edi, 0xba
cmp edi, 0xba
je 0x18005fc8a
cmp edi, 0x8898
je 0x18005f9b4
jmp 0x18005fcb2
test r12, r12
je 0x18005fc97
mov qword [r12], 3
xor r9d, r9d
lea rdx, [0x18009abc8]
xor r8d, r8d
mov ecx, 0x128
call fcn.18005ccf0
mov qword [rbp - 0x61], rax
add edi, 0x87de
cmp edi, 0x10fbc
jbe 0x18005fc74
mov ecx, dword [rbp - 0x69]
mov rdi, 0xffffffffffffffff
jmp 0x18005fbc8
test r13, r13
je 0x18005ff36
mov rsi, qword [r12]
test rsi, rsi
je 0x18005fbc1
mov rdi, qword [rdx]
call fcn.18006bae0
mov qword [rsp + 0x30], rdi
mov r8, rsi
mov rdi, 0xffffffffffffffff
mov qword [rsp + 0x28], rbx
mov r9, rdi
mov qword [rsp + 0x20], r14
mov rcx, qword [rax]
mov rdx, r13
call fcn.18007c56c
test eax, eax
mov ecx, eax
cmovs ecx, edi
mov dword [rbp - 0x59], ecx
mov ecx, dword [rbp - 0x69]
jmp 0x18005fbc1
mov r9d, 0x148
lea rdx, [rbp - 0x31]
mov r8, r13
xor ecx, ecx
call fcn.180025330
test al, al
je 0x18005fef0
mov ecx, dword [rbp - 0x69]
mov dword [rbp - 0x51], ebx
jmp 0x18005fbc8
cmp eax, 0x363
ja 0x18005fe74
je 0x18005fdcc
sub eax, 0x25f
je 0x18005fdc1
sub eax, 6
je 0x18005fd9b
sub eax, 0x79
je 0x18005f9b4
cmp eax, 6
jne 0x18005fbc8
lea r9d, [rax + 0x46]
mov dword [rbp - 0x49], ebx
lea r8, [0x180096c70]
lea rdx, [rbp - 0x51]
lea rcx, [rbp - 0x31]
call fcn.180056330
mov ecx, dword [rbp - 0x69]
jmp 0x18005fbc8
xor r9d, r9d
mov byte [rbp - 0x4d], bl
mov r8d, 0x116
lea rdx, [0x18009abd0]
xor ecx, ecx
call fcn.1800540c0
mov ecx, dword [rbp - 0x69]
mov qword [rbp - 0x41], rax
jmp 0x18005fbc8
mov eax, dword [rbp - 0x59]
mov dword [rbp - 0x61], eax
jmp 0x18005fbc8
mov r9d, 0x4c
lea r8, [0x180096c70]
lea rdx, [rbp - 0x51]
lea rcx, [rbp - 0x31]
call fcn.180056330
test al, al
jne 0x18005fdef
cmp dword [rbp - 5], ebx
je 0x18005fe4a
mov edi, 0x96
nop dword [rax]
nop dword [rax + rax]
mov eax, edi
sub eax, 0x94
je 0x18005f9b4
sub eax, 1
je 0x18005fe2c
cmp eax, 1
jne 0x18005fe39
mov rdx, qword [rbp - 0x41]
lea r8, [rbp - 0x71]
lea ecx, [rax + 0x73]
mov byte [rbp - 0x71], al
call fcn.18005d750
jmp 0x18005fe39
test r12, r12
je 0x18005fe35
mov qword [r12], rbx
mov qword [rbp - 0x61], rbx
dec edi
cmp edi, 0x93
ja 0x18005fe00
mov rdi, 0xffffffffffffffff
mov rdx, qword [rbp - 0x41]
lea r9, [0x18009abcc]
mov qword [rsp + 0x28], rbx
mov r8d, 0x70
xor ecx, ecx
mov qword [rsp + 0x20], rbx
call fcn.18006a100
mov ecx, dword [rbp - 0x69]
jmp 0x18005fbc8
sub eax, 0x3e2
je 0x18005feaf
sub eax, 0x7f
je 0x18005fe8e
cmp eax, 0x7f
je 0x18005f9b4
jmp 0x18005fbc8
mov rdx, qword [rbp - 0x41]
lea r8, [rbp - 0x71]
mov ecx, 0x74
mov byte [rbp - 0x71], bl
call fcn.18005d750
mov ecx, dword [rbp - 0x69]
mov qword [rbp - 0x61], rax
jmp 0x18005fbc8
test r12, r12
je 0x18005fbc8
mov rax, qword [rbp - 0x41]
mov ecx, dword [rax + 8]
mov qword [r12], rcx
mov ecx, dword [rbp - 0x69]
jmp 0x18005fbc8
mov r14, qword [rbp + 0x77]
jmp 0x18005fbc8
mov eax, dword [rbp - 0x55]
mov dword [rbp - 0x61], eax
jmp 0x18005f9b4
mov byte [rbp - 0x61], 1
jmp 0x18005f9b4
mov rax, rbx
jmp 0x18005f9b8
call fcn.180075408
int3
mov ecx, 2
call fcn.180079a6c
mov rcx, rax
lea rdx, str.vim.ExternalStatsManager.updateStats
lea rax, str.utf8
xor r9d, r9d
mov qword [rsp + 0x28], rax
mov r8, rsi
mov qword [rsp + 0x20], rsi
call fcn.18006bd20
call fcn.180075408
int3
mov ecx, 2
call fcn.180079a6c
mov rcx, rax
lea rdx, str.uint_get_pipe_max_packets_void__p__
lea rax, [0x180098d68]
xor r9d, r9d
mov qword [rsp + 0x28], rax
mov r8, rsi
mov qword [rsp + 0x20], rsi
call fcn.18006bd20
call fcn.180075408
int3