Function at 0x1400b16e0
Capabilities:
Hash data with crc32

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x138
lea rbp, [rsp + 0x80]
movaps xmmword [rbp + 0xa0], xmm12
movaps xmmword [rbp + 0x90], xmm11
movaps xmmword [rbp + 0x80], xmm10
movaps xmmword [rbp + 0x70], xmm9
movaps xmmword [rbp + 0x60], xmm8
movaps xmmword [rbp + 0x50], xmm7
movaps xmmword [rbp + 0x40], xmm6
mov qword [rbp + 0x38], 0xfffffffffffffffe
mov r15, qword [rcx + 0x20]
test r15, r15
je 0x1400b18f3
mov rbx, rcx
mov rsi, qword [rcx + 0x28]
test byte [r15 + 0xcc], 1
je 0x1400b18e2
test byte [rsi + 0xcc], 1
je 0x1400b18da
mov r14d, dword [rbx + 0x60]
movsxd r12, r14d
mov rax, qword [r15 + 0x48]
mov qword [rbp - 0x20], rax
mov rax, qword [rsi + 0x48]
mov qword [rbp - 0x18], rax
movss xmm0, dword [r15 + r12*4 + 0x50]
addss xmm0, dword [rbp + r12*4 - 0x20]
mov r13, qword [0x14032b510]
movss dword [rbp + r12*4 - 0x20], xmm0
mov rax, r12
xor rax, 1
movss xmm0, dword [rsi + rax*4 + 0x50]
addss xmm0, dword [rbp + rax*4 - 0x18]
movss dword [rbp + rax*4 - 0x18], xmm0
mov qword [rbp + 0x18], rsi
mov eax, dword [rsi + 0x10]
or eax, dword [r15 + 0x10]
test al, 0x20
jne 0x1400b17d0
xor ecx, ecx
test r14d, r14d
setne cl
shl ecx, 0x10
add ecx, 0x10000
test eax, ecx
je 0x1400b1931
lea r8, [rbp - 0x18]
mov rax, qword [r13 + 0x4140]
mov rcx, qword [rax + 0x2e0]
movss xmm0, dword [r13 + 0x3a3c]
movss xmm2, dword [r13 + 0x3c90]
movss xmm3, dword [r13 + 0x3c94]
movss xmm1, dword [r13 + 0x3c9c]
mulss xmm1, dword [r13 + 0x39f8]
movss xmm4, dword [0x14025ab88]
movaps xmm5, xmm4
minss xmm5, xmm2
xorps xmm6, xmm6
cmpltss xmm2, xmm6
andnps xmm2, xmm5
movss xmm5, dword [0x14025e228]
mulss xmm2, xmm5
movss xmm7, dword [0x14025dfe0]
addss xmm2, xmm7
cvttss2si eax, xmm2
minss xmm4, xmm3
cmpltss xmm3, xmm6
andnps xmm3, xmm4
mulss xmm3, xmm5
addss xmm3, xmm7
cvttss2si edx, xmm3
shl edx, 8
movss xmm2, dword [r13 + 0x3c98]
unpcklps xmm2, xmm1
xorps xmm1, xmm1
movaps xmm3, xmmword [0x14025e010]
minps xmm3, xmm2
cmpnltps xmm2, xmm1
andps xmm2, xmm3
mulps xmm2, xmmword [0x14025e230]
or edx, eax
addps xmm2, xmmword [0x14025e0d0]
cvttps2dq xmm1, xmm2
movdqa xmm2, xmm1
pslld xmm2, 0x18
pslld xmm1, 0x10
movd eax, xmm1
or eax, edx
pshufd xmm1, xmm2, 0x55
movd r9d, xmm1
or r9d, eax
movss dword [rsp + 0x20], xmm0
mov dword [rsp + 0x28], 0
lea rdx, [rbp - 0x20]
call fcn.1400b96f0
mov rsi, qword [rbp + 0x18]
test byte [r15 + 0xcc], 1
je 0x1400b18e2
mov rcx, r15
call fcn.1400b16e0
test byte [rsi + 0xcc], 1
je 0x1400b18f3
mov rcx, rsi
call fcn.1400b16e0
movaps xmm6, xmmword [rbp + 0x40]
movaps xmm7, xmmword [rbp + 0x50]
movaps xmm8, xmmword [rbp + 0x60]
movaps xmm9, xmmword [rbp + 0x70]
movaps xmm10, xmmword [rbp + 0x80]
movaps xmm11, xmmword [rbp + 0x90]
movaps xmm12, xmmword [rbp + 0xa0]
add rsp, 0x138
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov ecx, dword [rbx]
call fcn.14009f5f0
xorps xmm0, xmm0
movaps xmmword [rbp], xmm0
movaps xmmword [rbp - 0x10], xmm0
movss xmm8, dword [r13 + r12*4 + 0x3a10]
mov rax, qword [rbx + 0x20]
mov rcx, qword [rbx + 0x28]
movss xmm7, dword [rax + r12*4 + 0x48]
movss xmm6, dword [rcx + r12*4 + 0x48]
addss xmm6, dword [rcx + r12*4 + 0x50]
mov rax, qword [0x14032b510]
mov r8, qword [rax + 0x4140]
mov rax, qword [r8 + 0x138]
movsxd rcx, dword [r8 + 0x130]
mov r9d, dword [rax + rcx*4 - 4]
not r9d
mov al, reloc.WLDAP32.dll_Ordinal_35
lea rdx, [0x1402d6746]
mov edi, r9d
jmp 0x1400b19bf
movzx eax, al
movzx esi, dil
shr edi, 8
xor esi, eax
lea rax, [0x14025f0d0]
xor edi, dword [rax + rsi*4]
inc rdx
mov eax, ecx
test cl, cl
je 0x1400b19d7
movzx ecx, byte [rdx - 1]
cmp al, 0x23
jne 0x1400b19a0
cmp cl, 0x23
jne 0x1400b19a0
cmp byte [rdx], 0x23
cmove edi, r9d
mov cl, reloc.WLDAP32.dll_Ordinal_35
jmp 0x1400b19a0
not edi
mov rax, qword [r8]
cmp dword [rax + 0x418c], edi
jne 0x1400b19fa
lea r8, str.Splitter
mov ecx, edi
mov edx, reloc.WS2_32.dll_inet_addr
xor r9d, r9d
call fcn.14009f2d0
addss xmm7, xmm8
subss xmm6, xmm8
cmp dword [r13 + 0x41a4], edi
jne 0x1400b1bbd
lea r9, [rbp - 0x10]
mov rcx, r15
mov edx, r14d
mov r8d, 1
call fcn.1400b2440
lea r9, [rbp]
mov rcx, qword [rbp + 0x18]
mov edx, r14d
xor r8d, r8d
call fcn.1400b2440
mov edi, dword [rbp - 0x10]
test edi, edi
jle 0x1400b1b16
mov rcx, qword [rbp - 8]
cmp edi, 1
jne 0x1400b1a54
xor edx, edx
jmp 0x1400b1ad5
mov eax, edi
and eax, 0xfffffffe
xor edx, edx
mov rsi, qword [rcx + rdx*8]
movsd xmm0, qword [rsi + 0x48]
movsd xmm1, qword [rsi + 0x50]
addps xmm1, xmm0
movlhps xmm0, xmm1
movups xmmword [rbp + 0x20], xmm0
movss xmm0, dword [rbp + r12*4 + 0x20]
addss xmm0, xmm8
movaps xmm1, xmm0
cmpless xmm1, xmm7
movaps xmm2, xmm1
andnps xmm2, xmm0
andps xmm1, xmm7
orps xmm1, xmm2
mov rsi, qword [rcx + rdx*8 + 8]
movsd xmm0, qword [rsi + 0x48]
movsd xmm2, qword [rsi + 0x50]
addps xmm2, xmm0
movlhps xmm0, xmm2
movups xmmword [rbp + 0x20], xmm0
movss xmm0, dword [rbp + r12*4 + 0x20]
addss xmm0, xmm8
movaps xmm7, xmm0
cmpless xmm7, xmm1
movaps xmm2, xmm7
andps xmm2, xmm1
andnps xmm7, xmm0
orps xmm7, xmm2
add rdx, 2
cmp rax, rdx
jne 0x1400b1a5b
test dil, 1
je 0x1400b1b16
mov rax, qword [rcx + rdx*8]
movsd xmm0, qword [rax + 0x48]
movsd xmm1, qword [rax + 0x50]
addps xmm1, xmm0
movlhps xmm0, xmm1
movups xmmword [rbp + 0x20], xmm0
movss xmm0, dword [rbp + r12*4 + 0x20]
addss xmm0, xmm8
movaps xmm1, xmm0
cmpless xmm1, xmm7
movaps xmm2, xmm1
andnps xmm2, xmm0
andps xmm1, xmm7
orps xmm1, xmm2
movaps xmm7, xmm1
mov edi, dword [rbp]
test edi, edi
jle 0x1400b1bbd
mov rcx, qword [rbp + 8]
cmp edi, 1
jne 0x1400b1b2e
xor edx, edx
jmp 0x1400b1b8f
mov eax, edi
and eax, 0xfffffffe
xor edx, edx
mov rsi, qword [rcx + rdx*8]
movsd xmm0, qword [rsi + 0x48]
movsd xmm1, qword [rsi + 0x50]
addps xmm1, xmm0
movlhps xmm0, xmm1
movups xmmword [rbp + 0x20], xmm0
movss xmm0, dword [rbp + r12*4 + 0x28]
subss xmm0, xmm8
minss xmm6, xmm0
mov rsi, qword [rcx + rdx*8 + 8]
movsd xmm0, qword [rsi + 0x48]
movsd xmm1, qword [rsi + 0x50]
addps xmm1, xmm0
movlhps xmm0, xmm1
movups xmmword [rbp + 0x20], xmm0
movss xmm0, dword [rbp + r12*4 + 0x28]
subss xmm0, xmm8
minss xmm6, xmm0
add rdx, 2
cmp rax, rdx
jne 0x1400b1b35
test dil, 1
je 0x1400b1bbd
mov rax, qword [rcx + rdx*8]
movsd xmm0, qword [rax + 0x48]
movsd xmm1, qword [rax + 0x50]
addps xmm1, xmm0
movlhps xmm0, xmm1
movups xmmword [rbp + 0x20], xmm0
movss xmm0, dword [rbp + r12*4 + 0x28]
subss xmm0, xmm8
minss xmm6, xmm0
movss xmm0, dword [r15 + r12*4 + 0x50]
movss dword [rbp + 0x20], xmm0
mov rax, qword [rbp + 0x18]
movss xmm0, dword [rax + r12*4 + 0x50]
movss dword [rbp + 0x34], xmm0
movss xmm8, dword [rax + r12*4 + 0x48]
addss xmm8, dword [rax + r12*4 + 0x50]
movss xmm10, dword [r15 + r12*4 + 0x48]
mov rax, qword [0x14032b510]
movss xmm9, dword [rax + 0x3b00]
movss xmm3, dword [rax + 0x3b04]
movss xmm2, dword [rax + 0x3b08]
movss xmm0, dword [rax + 0x3b0c]
mulss xmm0, dword [rax + 0x39f8]
movss xmm5, dword [0x14025ab88]
movaps xmm4, xmm5
minss xmm4, xmm9
xorps xmm11, xmm11
cmpltss xmm9, xmm11
andnps xmm9, xmm4
movss xmm12, dword [0x14025e228]
mulss xmm9, xmm12
movss xmm4, dword [0x14025dfe0]
addss xmm9, xmm4
movaps xmm1, xmm5
minss xmm1, xmm3
cmpltss xmm3, xmm11
andnps xmm3, xmm1
mulss xmm3, xmm12
addss xmm3, xmm4
cvttss2si r13d, xmm3
shl r13d, 8
movaps xmm1, xmm5
minss xmm1, xmm2
cmpltss xmm2, xmm11
andnps xmm2, xmm1
mulss xmm2, xmm12
addss xmm2, xmm4
cvttss2si ecx, xmm2
shl ecx, 0x10
mov dword [rbp - 0x28], ecx
minss xmm5, xmm0
cmpltss xmm0, xmm11
andnps xmm0, xmm5
mulss xmm0, xmm12
addss xmm0, xmm4
cvttss2si ecx, xmm0
shl ecx, 0x18
mov dword [rbp - 0x24], ecx
mov r8, qword [rax + 0x4140]
mov rax, qword [r8 + 0x138]
movsxd rcx, dword [r8 + 0x130]
mov r9d, dword [rax + rcx*4 - 4]
not r9d
mov al, reloc.WLDAP32.dll_Ordinal_35
lea rdx, [0x1402d6746]
mov edi, r9d
jmp 0x1400b1d0f
movzx eax, al
movzx esi, dil
shr edi, 8
xor esi, eax
lea rax, [0x14025f0d0]
xor edi, dword [rax + rsi*4]
inc rdx
mov eax, ecx
test cl, cl
je 0x1400b1d27
movzx ecx, byte [rdx - 1]
cmp al, 0x23
jne 0x1400b1cf0
cmp cl, 0x23
jne 0x1400b1cf0
cmp byte [rdx], 0x23
cmove edi, r9d
mov cl, reloc.WLDAP32.dll_Ordinal_35
jmp 0x1400b1cf0
not edi
mov rax, qword [r8]
cmp dword [rax + 0x418c], edi
jne 0x1400b1d4a
lea r8, str.Splitter
mov ecx, edi
mov edx, reloc.WS2_32.dll_inet_addr
xor r9d, r9d
call fcn.14009f2d0
subss xmm7, xmm10
cvttss2si eax, xmm9
subss xmm8, xmm6
or r13d, eax
or r13d, dword [rbp - 0x28]
or r13d, dword [rbp - 0x24]
mov dword [rsp + 0x48], r13d
movss dword [rsp + 0x30], xmm8
movss dword [rsp + 0x28], xmm7
lea rax, [rbp + 0x34]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x40], 0x3d23d70a
mov dword [rsp + 0x38], 0x40800000
lea rcx, [rbp - 0x20]
lea r9, [rbp + 0x20]
mov edx, edi
mov r8d, r14d
call fcn.1400ce3e0
test al, al
je 0x1400b1f11
cmp dword [rbp - 0x10], 0
jle 0x1400b1f11
cmp dword [rbp], 0
jle 0x1400b1f11
movss xmm0, dword [rbp + 0x20]
movss dword [r15 + r12*4 + 0x58], xmm0
movss dword [r15 + r12*4 + 0x50], xmm0
movss xmm0, dword [rbp + 0x34]
mov rax, qword [rbp + 0x18]
subss xmm0, dword [rax + r12*4 + 0x50]
movss xmm1, dword [rax + r12*4 + 0x48]
subss xmm1, xmm0
movss dword [rax + r12*4 + 0x48], xmm1
movss xmm0, dword [rbp + 0x34]
movss dword [rax + r12*4 + 0x58], xmm0
movss dword [rax + r12*4 + 0x50], xmm0
mov r12, rax
movsxd r8, dword [rbp - 0x10]
test r8, r8
jle 0x1400b1e69
mov rcx, qword [rbp - 8]
xor edx, edx
jmp 0x1400b1e21
inc rdx
cmp rdx, r8
jge 0x1400b1e69
mov rdi, qword [rcx + rdx*8]
mov rax, qword [rdi + 0x18]
cmp rax, rbx
je 0x1400b1e19
add rdi, 0x18
jmp 0x1400b1e53
mov rdi, rax
mov rsi, qword [rax + 0x18]
add rdi, 0x18
mov rax, rsi
cmp rsi, rbx
je 0x1400b1e19
cmp dword [rax + 0x60], r14d
jne 0x1400b1e40
mov rax, qword [rax + 0x20]
or byte [rax + 0xcc], 0x80
mov rax, qword [rdi]
jmp 0x1400b1e40
movsxd r8, dword [rbp]
test r8, r8
jle 0x1400b1ec9
mov rcx, qword [rbp + 8]
xor edx, edx
jmp 0x1400b1e82
inc rdx
cmp rdx, r8
jge 0x1400b1ec9
mov rdi, qword [rcx + rdx*8]
mov rax, qword [rdi + 0x18]
cmp rax, rbx
je 0x1400b1e7a
add rdi, 0x18
jmp 0x1400b1eb3
mov rdi, rax
mov rsi, qword [rax + 0x18]
add rdi, 0x18
mov rax, rsi
cmp rsi, rbx
je 0x1400b1e7a
cmp dword [rax + 0x60], r14d
jne 0x1400b1ea0
mov rax, qword [rax + 0x28]
or byte [rax + 0xcc], 0x80
mov rax, qword [rdi]
jmp 0x1400b1ea0
mov rdx, qword [r15 + 0x48]
mov r8, qword [r15 + 0x50]
mov rcx, r15
xor r9d, r9d
call fcn.1400b1300
mov rdx, qword [r12 + 0x48]
mov r8, qword [r12 + 0x50]
mov rcx, r12
xor r9d, r9d
call fcn.1400b1300
mov rax, qword [0x14032b510]
xorps xmm0, xmm0
ucomiss xmm0, dword [rax + 0x619c]
jb 0x1400b1f11
movss xmm0, dword [rax + 0x1c]
movss dword [rax + 0x619c], xmm0
mov rax, qword [0x14032b510]
mov rcx, qword [rax + 0x4140]
dec dword [rcx + 0x130]
mov rcx, qword [rbp + 8]
test rcx, rcx
mov rsi, qword [rbp + 0x18]
je 0x1400b1fbd
mov r8d, dword [rax + 0x4098]
movzx edi, word [rax + 0x6338]
movsx rbx, di
cmp dword [rax + rbx*8 + 0x633c], r8d
jne 0x1400b1f5e
movzx edx, word [rax + rbx*8 + 0x6342]
inc edx
jmp 0x1400b1fa2
movsx ebx, di
inc ebx
movsxd rbx, ebx
imul rdi, rbx, 0x2aaaaaab
mov rdx, rdi
shr rdx, 0x3f
shr rdi, 0x20
add edi, edx
add edi, edi
lea edi, [rdi + rdi*2]
sub ebx, edi
mov word [rax + 0x6338], bx
movsxd rbx, ebx
mov dword [rax + rbx*8 + 0x633c], r8d
mov dword [rax + rbx*8 + 0x6340], 0
mov dx, 1
mov word [rax + rbx*8 + 0x6342], dx
inc dword [rax + 0x6334]
mov rdx, qword [0x14032b520]
call qword [0x140321fb8]
mov rcx, qword [rbp - 8]
test rcx, rcx
je 0x1400b18d0
mov rax, qword [0x14032b510]
test rax, rax
je 0x1400b2050
mov r8d, dword [rax + 0x4098]
movzx edi, word [rax + 0x6338]
movsx rbx, di
cmp dword [rax + rbx*8 + 0x633c], r8d
jne 0x1400b1ffe
movzx edx, word [rax + rbx*8 + 0x6342]
inc edx
jmp 0x1400b2042
movsx ebx, di
inc ebx
movsxd rbx, ebx
imul rdi, rbx, 0x2aaaaaab
mov rdx, rdi
shr rdx, 0x3f
shr rdi, 0x20
add edi, edx
add edi, edi
lea edi, [rdi + rdi*2]
sub ebx, edi
mov word [rax + 0x6338], bx
movsxd rbx, ebx
mov dword [rax + rbx*8 + 0x633c], r8d
mov dword [rax + rbx*8 + 0x6340], 0
mov dx, 1
mov word [rax + rbx*8 + 0x6342], dx
inc dword [rax + 0x6334]
mov rdx, qword [0x14032b520]
call qword [0x140321fb8]
jmp 0x1400b18d0