Function at 0x10061b80
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
mov eax, dword [0x100bc040]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
xor eax, eax
push esi
push edi
mov edi, dword [0x1019fdb0]
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x14], al
call fcn.1005d480
mov dword [ebp - 0x20], eax
test eax, eax
je 0x10061bbb
mov dword [edi + 0x4934], 0
xor eax, eax
jmp 0x10061bc1
mov eax, dword [edi + 0x4934]
cmp dword [edi + 0x4938], 0
je 0x10061c0a
test eax, eax
jne 0x10061c0a
movss xmm0, dword [edi + 0x18]
mulss xmm0, dword [0x100b2908]
movss xmm1, dword [edi + 0x4944]
subss xmm1, xmm0
xorps xmm0, xmm0
comiss xmm0, dword [edi + 0x495c]
maxss xmm1, xmm0
movss dword [edi + 0x4944], xmm1
jb 0x10061c0a
comiss xmm0, xmm1
jb 0x10061c0a
mov dword [edi + 0x4938], eax
or ebx, 0xffffffff
mov edx, 0x100b0f95
mov al, 0x23
or esi, 0xffffffff
cmp al, 0x23
jne 0x10061c25
cmp byte [edx], al
jne 0x10061c25
cmp byte [edx + 1], al
cmove ebx, esi
movzx ecx, bl
movzx eax, al
xor ecx, eax
shr ebx, 8
mov al, byte [edx]
inc edx
xor ebx, dword [ecx*4 + 0x100aa010]
test al, al
jne 0x10061c17
mov eax, dword [edi + 8]
not ebx
mov esi, dword [0x1019fdb0]
test al, 2
je 0x10061c57
test byte [edi + 0xc], 1
mov byte [ebp - 0xe], 1
jne 0x10061c5b
mov byte [ebp - 0xe], 0
and eax, 0xffffff01
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0x20]
test eax, eax
jne 0x10061c96
mov ecx, dword [edi + 0x492c]
test ecx, ecx
je 0x10061c96
push 0x1001
mov edx, ebx
call fcn.1005bfa0
mov esi, dword [0x1019fdb0]
add esp, 4
test al, al
je 0x10061c93
mov byte [ebp - 0xf], 1
jmp 0x10061c9e
mov eax, dword [ebp - 0x20]
mov byte [ebp - 0xf], 0
test eax, eax
jne 0x10061cc7
mov ecx, dword [edi + 0x4930]
test ecx, ecx
je 0x10061cc7
push 0x1001
mov edx, ebx
call fcn.1005bfa0
mov esi, dword [0x1019fdb0]
add esp, 4
test al, al
je 0x10061cc7
mov byte [ebp - 0x10], 1
jmp 0x10061cd1
cmp dword [ebp - 0x20], 0
mov byte [ebp - 0x10], 0
jne 0x10061d04
cmp byte [ebp - 0xe], 0
je 0x10061d04
cmp dword [edi + 0x4934], 0
jne 0x10061d04
push 0
xor edx, edx
mov ecx, 0x26b
call fcn.1005a110
add esp, 4
test al, al
je 0x10061d04
mov al, byte [ebp - 0x10]
mov cl, byte [ebp - 0xf]
mov byte [ebp - 0xe], 1
mov dl, byte [ebp - 0xe]
jmp 0x10061d27
xor dl, dl
cmp dword [ebp - 0x20], 0
mov byte [ebp - 0xe], dl
jne 0x10061d33
cmp dword [edi + 0x4934], 0
mov al, byte [ebp - 0x10]
mov cl, byte [ebp - 0xf]
mov byte [ebp - 0xe], dl
mov byte [ebp - 0x10], al
mov byte [ebp - 0xf], cl
jne 0x10061d33
test cl, cl
jne 0x10061d2f
test al, al
je 0x10061d33
mov al, 1
jmp 0x10061d35
xor al, al
mov byte [ebp - 0xd], al
test dl, dl
jne 0x10061d44
test al, al
je 0x10061ea7
mov eax, dword [edi + 0x47c8]
test eax, eax
jne 0x10061d6c
mov ecx, dword [edi + 0x3e0c]
mov edx, getpeername
push 0xffffffffffffffff
dec ecx
call fcn.10061a50
add esp, 4
test eax, eax
je 0x10061ea7
mov eax, dword [eax + 0x300]
lea ecx, [ebp - 0x24]
sub esp, 8
mov dword [edi + 0x4938], eax
mov dword [edi + 0x4934], eax
mov dword [edi + 0x4944], 0
mov dword [edi + 0x4940], 0
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.100248c0
movss xmm0, dword [eax]
movss xmm1, dword [eax + 4]
mov al, byte [ebp - 0xe]
mov byte [edi + 0x4948], al
movzx eax, byte [ebp - 0xd]
xor eax, 1
movss dword [edi + 0x4954], xmm0
add eax, 2
movss dword [edi + 0x4958], xmm1
cmp byte [ebp - 0xf], 0
movss dword [edi + 0x494c], xmm0
movss dword [edi + 0x4950], xmm1
mov dword [edi + 0x47f8], eax
jne 0x10061dfe
cmp byte [ebp - 0x10], 0
je 0x10061ea1
mov esi, dword [edi + 0x4930]
or esi, dword [edi + 0x492c]
mov ecx, dword [0x1019fdb0]
test esi, 0x1000
je 0x10061e2d
mov edx, 0x1000
call fcn.1004ae40
mov dword [eax + 4], ebx
mov dword [eax], ebx
mov word [eax + 8], 0
test esi, 0x2000
je 0x10061e4a
mov edx, 0x2000
call fcn.1004ae40
mov dword [eax + 4], ebx
mov dword [eax], ebx
mov word [eax + 8], 0
test esi, 0x4000
je 0x10061e67
mov edx, 0x4000
call fcn.1004ae40
mov dword [eax + 4], ebx
mov dword [eax], ebx
mov word [eax + 8], 0
test esi, 0x8000
je 0x10061e84
mov edx, 0x8000
call fcn.1004ae40
mov dword [eax + 4], ebx
mov dword [eax], ebx
mov word [eax + 8], 0
test esi, 0x800
je 0x10061ea1
mov edx, 0x800
call fcn.1004ae40
mov dword [eax + 4], ebx
mov dword [eax], ebx
mov word [eax + 8], 0
mov esi, dword [0x1019fdb0]
movss xmm0, dword [edi + 0x18]
addss xmm0, dword [edi + 0x4940]
mov ebx, dword [edi + 0x4934]
movss xmm2, dword [0x100b27e4]
movss xmm3, dword [0x100b27a4]
movss xmm1, dword [0x100b2860]
movss dword [edi + 0x4940], xmm0
test ebx, ebx
je 0x10062091
cmp dword [edi + 0x47f8], 3
jne 0x10061fb9
subss xmm0, xmm2
xorps xmm2, xmm2
divss xmm0, xmm3
comiss xmm2, xmm0
jbe 0x10061f04
xorps xmm1, xmm1
jmp 0x10061f08
minss xmm1, xmm0
movss xmm5, dword [edi + 0x4944]
xor edx, edx
maxss xmm5, xmm1
mov ecx, 0x274
push 1
movss dword [edi + 0x4944], xmm5
call fcn.1005a110
add esp, 4
xor edx, edx
mov ecx, 0x273
mov bl, al
push 1
call fcn.1005a110
movzx ecx, al
add esp, 4
movzx eax, bl
mov ebx, dword [edi + 0x4934]
sub ecx, eax
je 0x10061f78
call fcn.10061ac0
movss xmm1, dword [0x100b2860]
mov ebx, dword [edi + 0x4934]
movaps xmm5, xmm1
mov esi, dword [0x1019fdb0]
mov dword [edi + 0x4944], 0x3f800000
jmp 0x10061f80
movss xmm1, dword [0x100b2860]
mov edx, 0x26b
mov ecx, esi
call fcn.10059bc0
cmp byte [eax], 0
je 0x1006200a
mov edx, 0x26b
call fcn.1004ae40
cmp byte [eax + 8], 0
jne 0x1006200a
movss xmm2, dword [0x100b27e4]
movss xmm3, dword [0x100b27a4]
test ebx, ebx
je 0x10062091
cmp dword [edi + 0x47f8], 2
xorps xmm5, xmm5
jne 0x10062094
movss xmm0, dword [edi + 0x4940]
mov edx, 0xf800
mov eax, dword [edi + 0x492c]
subss xmm0, xmm2
test eax, eax
mov ecx, edx
cmovne ecx, eax
mov eax, dword [edi + 0x4930]
test eax, eax
divss xmm0, xmm3
cmovne edx, eax
and edx, ecx
mov ecx, edx
and ecx, 0xf800
comiss xmm5, xmm0
jbe 0x10062042
xorps xmm1, xmm1
jmp 0x10062046
comiss xmm1, xmm5
seta al
and byte [edi + 0x4948], al
je 0x10062027
cmp dword [edi + 0x47c8], 0
je 0x10062030
mov byte [ebp - 0x14], 1
jmp 0x10062030
mov eax, dword [edi + 0x4934]
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 0x18]
xorps xmm5, xmm5
mov dword [edi + 0x4934], 0
jmp 0x10062096
minss xmm1, xmm0
movss xmm0, dword [edi + 0x4944]
mov al, byte [ebp - 0xf]
maxss xmm0, xmm1
movss dword [edi + 0x4944], xmm0
test al, al
jne 0x1006207f
cmp byte [ebp - 0x10], al
jne 0x1006207f
mov eax, dword [edi + 0xde0]
and eax, edx
and eax, 0xf800
cmp eax, ecx
je 0x10062094
mov ebx, dword [edi + 0x4934]
jmp 0x10062096
movzx ecx, al
xor ecx, 1
lea ecx, [ecx*2 - 1]
call fcn.10061ac0
xorps xmm5, xmm5
xor ebx, ebx
cmp byte [ebp - 8], 0
je 0x100620c3
push 0
or edx, 0xffffffff
mov ecx, 0x4000
call fcn.1005a110
add esp, 4
test al, al
je 0x100620c3
mov byte [edi + 0x4948], 1
mov dword [edi + 0x47f8], 2
cmp byte [edi + 0x4948], 0
mov esi, 1
je 0x10062215
cmp dword [edi + 0x47f8], 2
jne 0x10062215
cmp dword [edi + 0x3778], 0
jg 0x1006211d
cmp byte [edi + 0xddc], 0
jne 0x1006211d
cmp byte [edi + 0xddd], 0
jne 0x1006211d
cmp byte [edi + 0xddf], 0
mov ecx, dword [0x1019fdb0]
jne 0x10062123
mov edx, 0x4000
call fcn.1004ae40
cmp dword [eax], 0xffffffff
je 0x1006212a
jmp 0x10062123
mov ecx, dword [0x1019fdb0]
mov byte [edi + 0x4948], 0
mov edx, 0x4000
call fcn.10059bc0
comiss xmm5, dword [eax + 8]
ja 0x100621ed
cmp byte [eax], 0
jne 0x100621ed
mov edx, 0x4000
call fcn.1004ae40
cmp byte [eax + 8], 0
jne 0x100621ed
cmp byte [edi + 0x4948], 0
je 0x100621ed
cmp dword [edi + 0x3e94], 0
je 0x1006217a
cmp byte [edi + 0x3ea1], 0
je 0x100621ed
lea eax, [edi + 0x36a8]
test eax, eax
jne 0x1006218a
lea eax, [ecx + 0xdc0]
movss xmm0, dword [eax]
movss xmm1, dword [0x100b2aac]
comiss xmm0, xmm1
movss xmm2, dword [eax + 4]
jb 0x100621a9
comiss xmm2, xmm1
jb 0x100621a9
mov dl, 1
jmp 0x100621ab
xor dl, dl
lea eax, [edi + 0xdc0]
test eax, eax
jne 0x100621bb
lea eax, [ecx + 0xdc0]
movss xmm0, dword [eax]
comiss xmm0, xmm1
movss xmm2, dword [eax + 4]
jb 0x100621d2
comiss xmm2, xmm1
jb 0x100621d2
mov al, 1
jmp 0x100621d4
xor al, al
mov ecx, dword [ebp - 0x14]
cmp al, dl
movzx ecx, cl
mov eax, ecx
mov dword [ebp - 0x14], ecx
mov ecx, dword [0x1019fdb0]
cmove eax, esi
mov dword [ebp - 0x14], eax
mov edx, 0x4000
call fcn.10059bc0
cmp byte [eax], 0
je 0x1006220c
mov edx, 0x4000
call fcn.1004ae40
cmp byte [eax + 8], 0
je 0x1006221b
mov byte [edi + 0x4948], 0
jmp 0x1006221b
mov ecx, dword [0x1019fdb0]
mov eax, dword [edi + 0x4934]
test eax, eax
je 0x1006244e
test byte [eax + 0xc], 4
jne 0x1006244e
cmp dword [edi + 0x47f8], 2
xorps xmm3, xmm3
jne 0x100622a6
cmp byte [edi + 0xddd], 0
jne 0x100622a6
mov edx, 0x204
call fcn.10059bc0
mov edx, 0x203
movss xmm1, dword [eax + 0xc]
call fcn.10059bc0
mov edx, 0x201
subss xmm1, dword [eax + 0xc]
call fcn.10059bc0
mov edx, 0x202
mov esi, eax
call fcn.10059bc0
sub esp, 8
lea ecx, [ebp - 0xc]
movss xmm0, dword [eax + 0xc]
subss xmm0, dword [esi + 0xc]
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call fcn.100248c0
movss xmm3, dword [ebp - 0xc]
movss xmm5, dword [ebp - 8]
cmp dword [edi + 0x47f8], 3
jne 0x10062313
mov ecx, dword [0x1019fdb0]
mov edx, 0x27c
call fcn.10059bc0
mov edx, 0x27b
movss xmm1, dword [eax + 0xc]
call fcn.10059bc0
mov edx, 0x279
subss xmm1, dword [eax + 0xc]
call fcn.10059bc0
mov edx, 0x27a
mov esi, eax
call fcn.10059bc0
sub esp, 8
lea ecx, [ebp - 0xc]
movss xmm0, dword [eax + 0xc]
subss xmm0, dword [esi + 0xc]
movss dword [esp + 4], xmm1
movss dword [esp], xmm0
call fcn.100248c0
movss xmm3, dword [ebp - 0xc]
movss xmm5, dword [ebp - 8]
xorps xmm2, xmm2
ucomiss xmm3, xmm2
lahf
test ah, 0x44
jp 0x1006232c
ucomiss xmm5, xmm2
lahf
test ah, 0x44
jnp 0x10062449
movss xmm1, dword [edi + 0x58]
lea ecx, [ebp - 0x1c]
minss xmm1, dword [edi + 0x5c]
movss xmm0, dword [edi + 0x18]
sub esp, 8
mulss xmm0, dword [0x100b2a64]
mulss xmm1, xmm0
movaps xmm0, xmm1
mulss xmm1, xmm3
mulss xmm0, xmm5
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
call fcn.100248c0
movss xmm0, dword [ebp - 0x18]
lea ecx, [ebp - 0xc]
addss xmm0, dword [edi + 0x4950]
movss xmm1, dword [ebp - 0x1c]
sub esp, 8
addss xmm1, dword [edi + 0x494c]
mov byte [edi + 0x4803], 1
cvttss2si eax, xmm0
movss dword [edi + 0x4950], xmm0
movss dword [edi + 0x494c], xmm1
movd xmm0, eax
cvttss2si eax, xmm1
cvtdq2ps xmm0, xmm0
movss dword [esp + 4], xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [esp], xmm0
call fcn.100248c0
movss xmm2, dword [ebp - 0xc]
xorps xmm0, xmm0
movss xmm1, dword [ebp - 8]
ucomiss xmm2, xmm0
lahf
test ah, 0x44
jp 0x100623e4
ucomiss xmm1, xmm0
lahf
test ah, 0x44
jnp 0x10062449
mov eax, dword [edi + 0x4934]
lea ecx, [ebp - 0x1c]
sub esp, 8
mov esi, dword [eax + 0x300]
addss xmm1, dword [esi + 0x18]
addss xmm2, dword [esi + 0x14]
movss dword [esp + 4], xmm1
movss dword [esp], xmm2
call fcn.100248c0
push 1
lea edx, [ebp - 0x1c]
mov ecx, esi
call fcn.10059560
movss xmm0, dword [edi + 0x494c]
add esp, 4
subss xmm0, dword [ebp - 0xc]
movss dword [edi + 0x494c], xmm0
movss xmm0, dword [edi + 0x4950]
subss xmm0, dword [ebp - 8]
movss dword [edi + 0x4950], xmm0
mov esi, 1
test ebx, ebx
je 0x100624ca
mov eax, dword [edi + 0x47c8]
test eax, eax
je 0x10062464
cmp ebx, dword [eax + 0x300]
je 0x100624c0
xor edx, edx
xor ecx, ecx
call fcn.1004e7e0
mov eax, dword [0x1019fdb0]
xor dl, dl
mov ecx, ebx
mov word [eax + 0x4801], 1
mov byte [eax + 0x4803], 1
call fcn.1005d650
mov edx, esi
mov ecx, ebx
call fcn.10058c20
mov esi, dword [edi + 0x47c8]
cmp dword [esi + 0x314], 0
jne 0x100624ac
xor dl, dl
mov ecx, esi
call fcn.1005f2a0
cmp word [esi + 0x14e], 2
jne 0x100624c0
mov dword [edi + 0x47fc], 1
mov dword [edi + 0x4934], 0
cmp byte [ebp - 0x14], 0
je 0x1006258f
cmp dword [edi + 0x47c8], 0
je 0x1006258f
xor edx, edx
xor ecx, ecx
call fcn.1004e7e0
mov esi, dword [edi + 0x47c8]
cmp dword [esi + 0x2f8], 0
lea ecx, [esi + 0x2f8]
je 0x10062529
nop
test byte [esi + 0x14c], 2
jne 0x10062529
mov eax, dword [esi + 0xc]
and eax, 0x15000000
cmp eax, 0x1000000
jne 0x10062529
mov esi, dword [ecx]
cmp dword [esi + 0x2f8], 0
lea ecx, [esi + 0x2f8]
jne 0x10062500
mov ebx, dword [edi + 0x47c8]
cmp esi, ebx
je 0x10062542
xor edx, edx
mov ecx, esi
call fcn.10058c20
mov dword [esi + 0x310], ebx
mov eax, dword [edi + 0x47c8]
test byte [eax + 0x14c], 2
je 0x1006255c
mov ecx, dword [edi + 0x47fc]
xor ecx, 1
jmp 0x1006255e
xor ecx, ecx
cmp ecx, dword [edi + 0x47fc]
je 0x1006258f
cmp ecx, 1
jne 0x10062575
mov dword [eax + 0x318], 0
call fcn.1005f1a0
mov eax, dword [0x1019fdb0]
mov word [eax + 0x4801], 1
mov byte [eax + 0x4803], 1
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100a046e
mov esp, ebp
pop ebp
ret