Function at 0x140035580
Capabilities:
Hash data using djb2

Disassembly:
push rdi
push r14
sub rsp, 0x148
mov rax, qword [0x1402581e0]
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.14002bcd0
test r9, r9
jne 0x1400355e2
lea r8, str.wrong_arguments
lea rcx, [rsp + 0x30]
xor edx, edx
call fcn.14002c200
jmp 0x1400355f7
lea rdx, [rsp + 0x30]
mov rcx, r9
call fcn.14002d7c0
mov r14, rax
test rax, rax
jne 0x14003561a
mov r8d, dword [rsp + 0x30]
lea r9, [rsp + 0x8c]
lea rdx, [0x1401d4550]
mov ecx, 3
call fcn.140040950
jmp 0x14003597e
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 0x1400356d7
lea rbx, [0x1401d3824]
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 0x140035660
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 0x1400356a0
cmp r8, qword [rdx + 8]
je 0x1400356d7
nop dword [rax]
cmp qword [r8 - 8], r9
jne 0x1400356cb
mov rcx, rdi
nop dword [rax]
movzx eax, byte [r8 + rcx + 0x20]
inc rcx
cmp al, byte [rbx + rcx - 1]
jne 0x1400356cb
cmp rcx, 7
jne 0x1400356b0
mov rsi, qword [r8 + 0x10]
jmp 0x1400356da
cmp r8, qword [rdx + 8]
je 0x1400356d7
mov r8, qword [r8 + 8]
jmp 0x1400356a0
mov rsi, rdi
test r11d, r11d
jne 0x140035777
lea rbx, [0x1401d385c]
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 0x140035700
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 0x140035740
cmp r8, qword [rdx + 8]
je 0x140035777
nop dword [rax]
cmp qword [r8 - 8], r9
jne 0x14003576b
mov rcx, rdi
nop dword [rax]
movzx eax, byte [r8 + rcx + 0x20]
inc rcx
cmp al, byte [rbx + rcx - 1]
jne 0x14003576b
cmp rcx, 6
jne 0x140035750
mov rbx, qword [r8 + 0x10]
jmp 0x14003577a
cmp r8, qword [rdx + 8]
je 0x140035777
mov r8, qword [r8 + 8]
jmp 0x140035740
mov rbx, rdi
test r11d, r11d
jne 0x14003594b
lea rax, [0x1401d3474]
mov ecx, 0x69
nop
imul r10, r10, 0x21
lea rax, [rax + 1]
add r10, rcx
movsx rcx, byte [rax]
test rcx, rcx
jne 0x140035790
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 0x1400357d0
cmp rcx, qword [rdx + 8]
je 0x14003594b
movzx eax, byte [0x1401d3476]
movzx r8d, byte [0x1401d3475]
movzx r9d, byte [0x1401d3474]
cmp qword [rcx - 8], r10
jne 0x1400357fe
cmp byte [rcx + 0x20], r9b
jne 0x1400357fe
cmp byte [rcx + 0x21], r8b
jne 0x1400357fe
cmp byte [rcx + 0x22], al
je 0x14003580e
cmp rcx, qword [rdx + 8]
je 0x14003594b
mov rcx, qword [rcx + 8]
jmp 0x1400357e7
mov rax, qword [rcx + 0x10]
test rax, rax
je 0x14003594b
mov ecx, dword [rax]
cmp ecx, 7
je 0x14003594b
test rsi, rsi
je 0x14003594b
cmp ecx, 3
jne 0x14003594b
cmp dword [rax + 0x10], 4
jl 0x14003594b
lea rcx, [rsp + 0x20]
call fcn.14002b010
mov r9d, dword [rsp + 0x24]
mov r8d, dword [0x1402c7aa4]
mov r10d, dword [0x1402c7aa0]
cmp r9d, r8d
jge 0x140035897
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 [0x1402c7aa0], r10d
mov dword [0x1402c7aa4], r8d
mov ecx, r9d
sub ecx, r8d
cmp ecx, 0xf4240
jle 0x1400358d0
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 [0x1402c7aa0], r10d
mov dword [0x1402c7aa4], 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 [0x140240e40]
cvttsd2si rcx, xmm0
add ecx, eax
mov dword [0x1402c7aa8], ecx
test rbx, rbx
je 0x140035927
cmp dword [rbx], 1
jne 0x140035927
cmp qword [rbx + 0x18], 1
jbe 0x140035927
mov rax, qword [rbx + 0x20]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x140035927
cmp dword [rcx], 2
jne 0x140035927
mov r9, qword [rcx + 0x10]
jmp 0x14003592a
mov r9, rdi
cmp dword [rsi], 5
mov edx, dword [0x1402c7aac]
movsd xmm2, qword [0x1402c79e8]
sete dil
mov ecx, edi
call fcn.14002fbe0
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 0x14003597e
dec rax
mov qword [r14 + 8], rax
jne 0x14003597e
mov rcx, r14
call fcn.14002e4b0
mov eax, edi
mov rcx, qword [rsp + 0x130]
xor rcx, rsp
call fcn.1401bddc0
add rsp, 0x148
pop r14
pop rdi
ret