Function at 0x140020540
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x50
mov rax, qword [0x140121080]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rsi, qword [0x140173298]
mov r15d, edx
mov r14d, dword [rsp + 0x90]
mov ecx, r14d
and ecx, 0x40000000
mov rbx, qword [rsi + 0x4010]
mov r9d, dword [rsi + 0x4a18]
bts r9d, 8
mov eax, dword [rbx + 0x14]
and eax, 4
mov dword [rsi + 0x4a18], r9d
or eax, 0x1000103
or r14d, eax
neg ecx
sbb eax, eax
and eax, 2
mov dword [rsi + 0x4a50], eax
cmp qword [rbx + 0x1b8], 0
jne 0x1400205d0
cmp qword [rsi + 0x4e08], 0
mov eax, 0x260
je 0x1400205d5
mov eax, 0x230
movss xmm2, dword [rbx + rax]
lea rcx, [rsp + 0x30]
movss xmm3, dword [rbx + rax + 4]
subss xmm3, dword [rbx + 0x114]
subss xmm2, dword [rbx + 0x110]
mov rdx, qword [r8]
call fcn.14005aad0
movsd xmm0, qword [rsp + 0x30]
lea rax, str.content
or r9d, 2
movsd qword [rsi + 0x4a38], xmm0
mov dword [rsi + 0x4a18], r9d
lea r8, str._s__s__08X
mov dword [rsi + 0x4a20], 1
lea rcx, [rsp + 0x30]
mov r9, qword [rbx + 8]
xor edx, edx
mov dword [rsp + 0x28], r15d
mov qword [rsp + 0x20], rax
call fcn.1400499c0
mov rcx, qword [rsp + 0x30]
mov rax, 0xffffffffffffffff
mov qword [rsp + 0x30], rcx
nop dword [rax]
inc rax
cmp byte [rcx + rax], 0
jne 0x140020660
mov rcx, qword [0x140173bd8]
lea rdx, [rsp + 0x30]
mov qword [rsp + 0x38], rax
mov r9d, r14d
movaps xmm0, xmmword [rsp + 0x30]
xor r8d, r8d
movdqa xmmword [rsp + 0x30], xmm0
call fcn.14001d100
mov rdi, qword [rsi + 0x4010]
movzx ebp, al
cmp word [rdi + 0xcc], 1
mov dword [rdi + 0x88], r15d
jne 0x1400206b8
movsd xmm0, qword [rdi + 0x28]
movsd qword [rbx + 0x110], xmm0
mov r9d, r15d
lea rdx, [0x1401075e1]
not r9d
lea r10, [0x1401024c0]
mov ebx, r9d
mov r8b, reloc.WLDAP32.dll_Ordinal_35
cmp r8b, 0x23
jne 0x1400206e5
cmp byte [rdx], r8b
jne 0x1400206e5
cmp byte [rdx + 1], r8b
cmove ebx, r9d
movzx ecx, bl
movzx eax, r8b
movzx r8d, byte [rdx]
xor rcx, rax
shr ebx, 8
inc rdx
xor ebx, dword [r10 + rcx*4]
test r8b, r8b
jne 0x1400206d2
not ebx
cmp dword [rsi + 0x4074], ebx
jne 0x140020715
xor edx, edx
xor ecx, ecx
call fcn.14004daa0
cmp dword [rsi + 0x4b50], r15d
jne 0x140020762
bt r14d, 0x17
jb 0x140020762
cmp word [rdi + 0x16c], 0
jne 0x140020738
cmp byte [rdi + 0x172], 0
je 0x140020762
xor edx, edx
mov rcx, rdi
call fcn.140056720
xor edx, edx
mov rcx, rdi
call fcn.14005d150
mov rdx, rdi
mov ecx, ebx
call fcn.14004daa0
mov eax, dword [rsi + 0x4b7c]
mov dword [rsi + 0x40a0], eax
movzx eax, bpl
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1400ebdb0
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x50
pop r15
pop r14
pop rdi
ret
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x60
mov rax, qword [0x140173b50]
mov rbx, r9
movaps xmmword [rsp + 0x50], xmm6
mov rbp, r8
movaps xmmword [rsp + 0x40], xmm7
movss xmm6, dword [rax + 0x94]
movaps xmm0, xmm6
mulss xmm0, dword [r9 + 4]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
mulss xmm6, dword [rbx]
movaps xmm7, xmm0
movaps xmm0, xmm6
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
mov rbx, qword [0x140173298]
lea rdx, [rsp + 0x30]
movaps xmm6, xmm0
mov dword [rsp + 0x30], 2
movss xmm2, dword [rbx + 0x38f0]
lea rcx, [rbx + 0x4aa0]
movss xmm1, dword [rbx + 0x38f4]
movss dword [rsp + 0x34], xmm2
movss dword [rsp + 0x38], xmm1
call fcn.140019430
movss dword [rbx + 0x38f0], xmm6
movss dword [rbx + 0x38f4], xmm7
mov rax, qword [0x140173b50]
mov rbx, qword [rsp + 0x90]
movss xmm6, dword [rax + 0x94]
movaps xmm0, xmm6
mulss xmm0, dword [rbx + 4]
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
mulss xmm6, dword [rbx]
movaps xmm7, xmm0
movaps xmm0, xmm6
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_roundf]
mov rbx, qword [0x140173298]
lea rdx, [rsp + 0x30]
movaps xmm6, xmm0
mov dword [rsp + 0x30], reloc.WS2_32.dll_ntohl
movss xmm2, dword [rbx + 0x3934]
lea rcx, [rbx + 0x4aa0]
movss xmm1, dword [rbx + 0x3938]
movss dword [rsp + 0x34], xmm2
movss dword [rsp + 0x38], xmm1
call fcn.140019430
movss dword [rbx + 0x3934], xmm6
movss dword [rbx + 0x3938], xmm7
mov rax, qword [0x140173bd0]
movzx ecx, byte [rax + 0x50]
neg cl
mov rcx, qword [0x140173298]
sbb esi, esi
xor edx, edx
and esi, 0x10
or esi, 0x40002004
mov rax, qword [rcx + 0x4010]
mov byte [rax + 0xc0], 1
mov rbx, qword [rcx + 0x4010]
lea rcx, str.content
movsxd rax, dword [rbx + 0x100]
mov r8, qword [rbx + 0x108]
mov r8d, dword [r8 + rax*4 - 4]
call fcn.140049b60
mov rcx, qword [rbx]
mov edi, eax
cmp dword [rcx + 0x405c], eax
jne 0x14002092a
lea r8, str.content
mov edx, reloc.WS2_32.dll_inet_addr
mov ecx, eax
call fcn.140061e80
mov r8, rbp
mov dword [rsp + 0x90], esi
mov edx, edi
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
movaps xmm6, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x40]
add rsp, 0x60
pop rdi
jmp 0x140020540