Function at 0x1400369e0
Capabilities:
Hash data using djb2

Disassembly:
push rdi
push r14
sub rsp, 0x148
mov rax, qword [0x140264330]
xor rax, rsp
mov qword [rsp + 0x130], rax
mov r9, rcx
xor edi, edi
lea rdx, str._string_
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x30], 0xffffffffffffffff
mov byte [rsp + 0x8c], dil
mov dword [rsp + 0x38], edi
call fcn.14002d0e0
test r9, r9
jne 0x140036a42
lea r8, str.wrong_arguments
lea rcx, [rsp + 0x30]
xor edx, edx
call fcn.14002d610
jmp 0x140036a57
lea rdx, [rsp + 0x30]
mov rcx, r9
call fcn.14002ebd0
mov r14, rax
test rax, rax
jne 0x140036a7a
mov r8d, dword [rsp + 0x30]
lea r9, [rsp + 0x8c]
lea rdx, [0x1401df680]
mov ecx, 3
call fcn.140041b60
jmp 0x140036dde
mov r11d, dword [rax]
mov qword [rsp + 0x168], rbx
mov qword [rsp + 0x170], rbp
mov qword [rsp + 0x140], rsi
mov r10d, 0x1505
lea rbp, reloc.WS2_32.dll_getpeername
test r11d, r11d
jne 0x140036b37
lea rbx, [0x1401de954]
mov r9d, r10d
mov ecx, WSACleanup
mov rax, rbx
nop dword [rax]
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140036ac0
mov rcx, qword [r14 + 0x20]
xor edx, edx
mov rax, r9
div qword [rbp + rcx*8]
lea rax, [r14 + 0x28]
shl rdx, 4
add rdx, qword [r14 + 0x18]
mov r8, qword [rdx]
cmp r8, rax
jne 0x140036b00
cmp r8, qword [rdx + 8]
je 0x140036b37
nop dword [rax]
cmp qword [r8 - 8], r9
jne 0x140036b2b
mov rcx, rdi
nop dword [rax]
movzx eax, byte [r8 + rcx + 0x20]
inc rcx
cmp al, byte [rbx + rcx - 1]
jne 0x140036b2b
cmp rcx, 7
jne 0x140036b10
mov rsi, qword [r8 + 0x10]
jmp 0x140036b3a
cmp r8, qword [rdx + 8]
je 0x140036b37
mov r8, qword [r8 + 8]
jmp 0x140036b00
mov rsi, rdi
test r11d, r11d
jne 0x140036bd7
lea rbx, [0x1401de98c]
mov r9, r10
mov ecx, 0x65
mov rax, rbx
nop word [rax + rax]
imul r9, r9, 0x21
lea rax, [rax + 1]
add r9, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140036b60
mov rcx, qword [r14 + 0x20]
xor edx, edx
mov rax, r9
div qword [rbp + rcx*8]
lea rax, [r14 + 0x28]
shl rdx, 4
add rdx, qword [r14 + 0x18]
mov r8, qword [rdx]
cmp r8, rax
jne 0x140036ba0
cmp r8, qword [rdx + 8]
je 0x140036bd7
nop dword [rax]
cmp qword [r8 - 8], r9
jne 0x140036bcb
mov rcx, rdi
nop dword [rax]
movzx eax, byte [r8 + rcx + 0x20]
inc rcx
cmp al, byte [rbx + rcx - 1]
jne 0x140036bcb
cmp rcx, 6
jne 0x140036bb0
mov rbx, qword [r8 + 0x10]
jmp 0x140036bda
cmp r8, qword [rdx + 8]
je 0x140036bd7
mov r8, qword [r8 + 8]
jmp 0x140036ba0
mov rbx, rdi
test r11d, r11d
jne 0x140036dab
lea rax, [0x1401de5fc]
mov ecx, 0x69
nop
imul r10, r10, 0x21
lea rax, [rax + 1]
add r10, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140036bf0
mov rcx, qword [r14 + 0x20]
xor edx, edx
mov rax, r10
div qword [rbp + rcx*8]
lea rax, [r14 + 0x28]
shl rdx, 4
add rdx, qword [r14 + 0x18]
mov rcx, qword [rdx]
cmp rcx, rax
jne 0x140036c30
cmp rcx, qword [rdx + 8]
je 0x140036dab
movzx eax, byte [0x1401de5fe]
movzx r8d, byte [0x1401de5fd]
movzx r9d, byte [0x1401de5fc]
cmp qword [rcx - 8], r10
jne 0x140036c5e
cmp byte [rcx + 0x20], r9b
jne 0x140036c5e
cmp byte [rcx + 0x21], r8b
jne 0x140036c5e
cmp byte [rcx + 0x22], al
je 0x140036c6e
cmp rcx, qword [rdx + 8]
je 0x140036dab
mov rcx, qword [rcx + 8]
jmp 0x140036c47
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x140036dab
mov ecx, dword [rax]
cmp ecx, 7
je 0x140036dab
test rsi, rsi
je 0x140036dab
cmp ecx, 3
jne 0x140036dab
cmp dword [rax + 0x10], 4
jl 0x140036dab
lea rcx, [rsp + 0x20]
call fcn.14002c420
mov r9d, dword [rsp + 0x24]
mov r8d, dword [0x1402d4ca4]
mov r10d, dword [0x1402d4ca0]
cmp r9d, r8d
jge 0x140036cf7
mov ecx, r8d
mov eax, 0x431bde83
sub ecx, r9d
imul ecx
sar edx, 0x12
mov ecx, edx
shr ecx, 0x1f
inc ecx
add ecx, edx
imul eax, ecx, 0xfff0bdc0
add r8d, eax
add r10d, ecx
mov dword [0x1402d4ca0], r10d
mov dword [0x1402d4ca4], r8d
mov ecx, r9d
sub ecx, r8d
cmp ecx, 0xf4240
jle 0x140036d30
mov eax, 0x431bde83
imul ecx
sar edx, 0x12
mov eax, edx
shr eax, 0x1f
add edx, eax
imul eax, edx, 0xf4240
add r8d, eax
sub r10d, edx
mov dword [0x1402d4ca0], r10d
mov dword [0x1402d4ca4], r8d
mov eax, dword [rsp + 0x20]
sub r9d, r8d
sub eax, r10d
movd xmm0, r9d
imul eax, eax, 0x3e8
cvtdq2pd xmm0, xmm0
mulsd xmm0, qword [0x14024bfa0]
cvttsd2si rcx, xmm0
add ecx, eax
mov dword [0x1402d4ca8], ecx
test rbx, rbx
je 0x140036d87
cmp dword [rbx], 1
jne 0x140036d87
cmp qword [rbx + 0x18], 1
jbe 0x140036d87
mov rax, qword [rbx + 0x20]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140036d87
cmp dword [rcx], 2
jne 0x140036d87
mov r9, qword [rcx + 0x10]
jmp 0x140036d8a
mov r9, rdi
cmp dword [rsi], 5
mov edx, dword [0x1402d4cac]
movsd xmm2, qword [0x1402d4be8]
sete dil
mov ecx, edi
call fcn.140030ff0
mov edi, 1
mov rax, qword [r14 + 8]
mov rsi, qword [rsp + 0x140]
mov rbp, qword [rsp + 0x170]
mov rbx, qword [rsp + 0x168]
cmp rax, 0xffffffffffffffff
je 0x140036dde
dec rax
mov qword [r14 + 8], rax
jne 0x140036dde
mov rcx, r14
call fcn.14002f8c0
mov eax, edi
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.1401bb2c0
add rsp, 0x148
pop r14
pop rdi
ret