Function at 0x14009c420
Capabilities:
Hash data with crc32
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x30
movaps xmmword [rsp + 0x20], xmm6
mov r15, rcx
mov rbx, qword [0x14032b510]
and byte [rcx + 0x43d], 0xf8
mov r14, rdx
cmp byte [rbx + 0x5a], 0
jne 0x14009c455
cmp byte [r15 + 0x3c], 0
je 0x14009c510
mov eax, dword [r15 + 0x14]
test eax, 0x1080001
jne 0x14009c514
cmp byte [r15 + 0xfb], 0
jne 0x14009c514
mov edx, dword [r15 + 0x468]
test edx, edx
jne 0x14009c54b
mov r9, qword [rbx + 0x6160]
movsxd r10, dword [rbx + 0x6158]
mov r8, r10
shl r8, 4
add r8, r9
mov edx, 1
nop
mov rax, r9
test r10d, r10d
je 0x14009c4f0
mov rax, r9
mov rsi, r10
mov rcx, r10
jmp 0x14009c4c8
mov rsi, rcx
test rcx, rcx
je 0x14009c4f0
shr rcx, 1
mov rdi, rcx
shl rdi, 4
cmp dword [rax + rdi], edx
jae 0x14009c4c0
not rcx
add rcx, rsi
add rax, rdi
add rax, 0x10
jmp 0x14009c4c0
cmp rax, r8
je 0x14009c96d
cmp dword [rax], edx
jne 0x14009c96d
cmp qword [rax + 8], 0
je 0x14009c96d
inc edx
jmp 0x14009c4a0
mov eax, dword [r15 + 0x14]
shr eax, 0x13
xor ecx, ecx
test byte [rbx + 0x4b40], 1
je 0x14009c539
movsx edx, byte [r15 + 0x11c]
test dword [rbx + 0x4b44], edx
je 0x14009c539
movzx ecx, byte [rbx + 0x4b80]
or ecx, eax
test cl, 1
jne 0x14009c7db
mov edx, dword [r15 + 0x468]
mov rdi, qword [r15 + 0x458]
test edx, edx
je 0x14009c68f
test rdi, rdi
jne 0x14009c68f
mov r8, qword [rbx + 0x6160]
movsxd r9, dword [rbx + 0x6158]
test r9, r9
je 0x14009c5b6
mov rcx, r8
mov rax, r9
mov rdi, r9
jmp 0x14009c598
mov rax, rdi
test rdi, rdi
je 0x14009c5bc
shr rdi, 1
mov rsi, rdi
shl rsi, 4
cmp dword [rcx + rsi], edx
jae 0x14009c590
not rdi
add rdi, rax
add rcx, rsi
add rcx, 0x10
jmp 0x14009c590
xor r9d, r9d
mov rcx, r8
shl r9, 4
add r8, r9
cmp rcx, r8
je 0x14009c5e2
cmp dword [rcx], edx
jne 0x14009c5e2
mov rdi, qword [rcx + 8]
test rdi, rdi
je 0x14009c5e2
cmp qword [rdi + 0x20], 0
jne 0x14009c7db
jmp 0x14009c60f
mov rcx, rbx
call fcn.1400ab760
mov rdi, rax
mov eax, 0xfffffe00
and eax, dword [rdi + 0xc8]
or eax, 0x92
mov dword [rdi + 0xc8], eax
mov eax, dword [rbx + 0x4098]
mov dword [rdi + 0xac], eax
mov sil, 1
test byte [rdi + 0xcc], 1
jne 0x14009c66f
mov rax, rdi
nop
mov rsi, rax
test byte [rax + 0xcc], 1
jne 0x14009c635
mov rax, qword [rsi + 0x18]
test rax, rax
jne 0x14009c620
mov rax, rsi
nop dword [rax + rax]
mov rcx, rax
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x14009c640
call fcn.1400b1290
mov rdx, qword [rsi + 0x48]
mov r8, qword [rsi + 0x50]
mov rcx, rsi
mov r9, rdi
call fcn.1400b1300
movzx esi, byte [rdi + 0xcc]
and sil, 1
mov rcx, rdi
mov rdx, r15
mov r8b, 1
call fcn.1400b0ee0
movzx eax, byte [rdi + 0xcc]
and al, 0xfe
or al, sil
mov byte [rdi + 0xcc], al
mov eax, dword [rbx + 0x4098]
cmp dword [rdi + 0xac], eax
jge 0x14009c6c5
nop dword [rax]
mov rcx, rdi
mov rdi, qword [rdi + 0x18]
test rdi, rdi
jne 0x14009c6a0
cmp dword [rcx + 0xac], eax
jl 0x14009c7db
or byte [r15 + 0x43d], 1
jmp 0x14009ca18
xor eax, eax
lea r8, [0x14025fbe0]
movss xmm0, dword [0x14025ab88]
xorps xmm1, xmm1
movss xmm2, dword [0x14025e228]
movss xmm3, dword [0x14025dfe0]
nop dword [rax]
movsxd rdx, dword [rax + r8]
shl rdx, 4
movss xmm4, dword [rbx + rdx + 0x3ae0]
movss xmm5, dword [rbx + rdx + 0x3ae4]
movaps xmm6, xmm0
minss xmm6, xmm4
cmpltss xmm4, xmm1
andnps xmm4, xmm6
mulss xmm4, xmm2
addss xmm4, xmm3
cvttss2si ecx, xmm4
movaps xmm4, xmm0
minss xmm4, xmm5
cmpltss xmm5, xmm1
andnps xmm5, xmm4
mulss xmm5, xmm2
addss xmm5, xmm3
cvttss2si esi, xmm5
shl esi, 8
or esi, ecx
movss xmm4, dword [rbx + rdx + 0x3ae8]
movaps xmm5, xmm0
minss xmm5, xmm4
cmpltss xmm4, xmm1
andnps xmm4, xmm5
mulss xmm4, xmm2
addss xmm4, xmm3
cvttss2si ecx, xmm4
shl ecx, 0x10
movss xmm4, dword [rbx + rdx + 0x3aec]
movaps xmm5, xmm0
minss xmm5, xmm4
cmpltss xmm4, xmm1
andnps xmm4, xmm5
mulss xmm4, xmm2
addss xmm4, xmm3
cvttss2si edx, xmm4
shl edx, 0x18
or edx, ecx
or edx, esi
mov dword [r15 + rax + 0x440], edx
add rax, 4
cmp rax, 0x18
jne 0x14009c6f0
mov rax, qword [rdi + 0x88]
test rax, rax
je 0x14009c927
mov dword [rdi + 0x14], 3
test byte [rdi + 0x10], 1
jne 0x14009c7f9
movzx ecx, word [r15 + 0x106]
cmp cx, word [rax + 0x106]
jge 0x14009c7f9
mov rcx, rbx
mov rdx, r15
mov r8b, 1
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
pop rdi
pop rsi
pop r14
pop r15
jmp fcn.1400a4df0
mov rax, qword [0x14032b510]
mov ecx, dword [rax + 0x4b40]
mov edx, ecx
or edx, 1
mov dword [rax + 0x4b40], edx
mov rdx, qword [rdi + 0x48]
mov qword [rax + 0x4b54], rdx
mov qword [rax + 0x4b5c], 0
mov dword [rax + 0x4b44], 1
mov byte [rax + 0x4b80], 1
or ecx, 3
mov dword [rax + 0x4b40], ecx
mov rcx, qword [rdi + 0x50]
mov qword [rax + 0x4b64], rcx
mov dword [rax + 0x4b48], 1
mov byte [rbx + 0x4b80], 0
movzx eax, byte [r15 + 0x43d]
mov ecx, eax
and cl, 0xf8
or cl, 3
mov byte [r15 + 0x43d], cl
test byte [rdi + 0x10], 1
jne 0x14009ca18
cmp qword [rdi + 0x90], r15
jne 0x14009c890
or al, 7
mov byte [r15 + 0x43d], al
mov eax, dword [r15 + 0x14]
mov ecx, eax
or ecx, 0x1000002
mov dword [r15 + 0x14], ecx
or byte [r15 + 0x1c], 2
and ecx, 0xfffffffe
or eax, 0x1000003
test dword [rdi + 0x10], 0x3000
cmove eax, ecx
mov dword [r15 + 0x14], eax
cmp qword [rdi + 0x40], 0
je 0x14009c908
cmp byte [r15 + 0xf4], 0
je 0x14009c908
mov rax, qword [r15 + 0x458]
mov rsi, qword [rax + 0x40]
mov bx, 0xffff
test rsi, rsi
je 0x14009c900
mov edx, dword [r15 + 0xb8]
mov rcx, rsi
call fcn.1400e2e50
test rax, rax
je 0x14009c900
sub eax, dword [rsi + 8]
shr eax, 3
imul ebx, eax, 0x6db7
mov word [r15 + 0x43e], bx
test byte [rdi + 0xcc], 0x40
jne 0x14009c979
test r14, r14
je 0x14009c982
mov eax, dword [r15 + 0xb8]
cmp dword [rdi + 0xc0], eax
je 0x14009c97e
jmp 0x14009c982
cmp dword [rdi + 0x14], 2
jne 0x14009c935
or byte [r15 + 0x43d], 1
cmp dword [rdi + 0x30], 2
jl 0x14009ca18
cmp byte [r15 + 0xf9], 0
je 0x14009ca18
mov byte [r15 + 0xfa], 1
xor eax, eax
cmp byte [r15 + 0xf3], 1
adc al, 1
mov byte [r15 + 0x118], al
jmp 0x14009ca18
mov dword [r15 + 0x468], edx
jmp 0x14009c54b
test r14, r14
je 0x14009c982
mov byte [r14], 0
mov rax, qword [r15 + 0x458]
mov r9, qword [rax + 0x88]
mov r8, qword [r15 + 8]
mov rax, qword [r9 + 0x138]
movsxd rcx, dword [r9 + 0x130]
mov esi, dword [rax + rcx*4 - 4]
not esi
movzx eax, byte [r8]
test al, al
je 0x14009c9f3
lea rdx, [r8 + 2]
lea r10, [0x14025f0d0]
mov ecx, esi
jmp 0x14009c9dc
movzx eax, al
mov edi, ecx
shr edi, 8
movzx ecx, cl
xor ecx, eax
xor edi, dword [r10 + rcx*4]
inc rdx
mov eax, ebx
mov ecx, edi
test bl, bl
je 0x14009c9f5
movzx ebx, byte [rdx - 1]
cmp al, 0x23
jne 0x14009c9c0
cmp bl, 0x23
jne 0x14009c9c0
cmp byte [rdx], 0x23
cmove ecx, esi
mov bl, reloc.WLDAP32.dll_Ordinal_35
jmp 0x14009c9c0
mov edi, esi
not edi
mov rax, qword [r9]
cmp dword [rax + 0x418c], edi
jne 0x14009ca11
mov ecx, edi
mov edx, reloc.WS2_32.dll_inet_addr
xor r9d, r9d
call fcn.14009f2d0
mov dword [r15 + 0xbc], edi
movaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x30
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret