Function at 0x54f0a8
Capabilities:
Hash data with crc32

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x110
push ebx
push esi
push edi
and dword [ebp - 0xc], 0
and dword [ebp - 0x20], 0
mov esi, ecx
mov eax, dword [esi + 0x100]
mov ebx, dword [eax]
xor edi, edi
inc edi
push edi
and ebx, 0xfffff
push ebx
lea ecx, [ebp - 0x20]
push ecx
lea ecx, [ebp - 0xd0]
push ecx
lea ecx, [ebp - 0xc]
push ecx
lea ecx, [ebp - 0x110]
push ecx
push 0x596a80
push eax
mov ecx, esi
mov dword [ebp - 0x10], esi
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], 2
mov dword [ebp - 0x14], 3
call fcn.0054a65c
test eax, eax
jne 0x54f14b
push 0x74
call fcn.0051dda0
test eax, eax
je 0x54f127
mov ecx, eax
call fcn.0051d906
mov edi, eax
mov dword [ebp - 8], edi
jmp 0x54f12e
and dword [ebp - 8], 0
mov edi, dword [ebp - 8]
test edi, edi
je 0x54f3d0
push 0
lea eax, [ebx + ebx]
push ebx
push eax
mov eax, ebx
and eax, 0xfffff
or eax, 0x73600000
jmp 0x54f1b8
push edi
push ebx
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x110]
push eax
push 0x596ae0
push dword [esi + 0x100]
mov ecx, esi
call fcn.0054a65c
test eax, eax
jne 0x54f229
push 0x74
call fcn.0051dda0
test eax, eax
je 0x54f196
mov ecx, eax
call fcn.0051d906
mov edi, eax
mov dword [ebp - 8], edi
jmp 0x54f19d
and dword [ebp - 8], 0
mov edi, dword [ebp - 8]
test edi, edi
je 0x54f3d0
push 0
lea eax, [ebx + ebx]
push ebx
push eax
mov eax, ebx
and eax, 0xfffff
or eax, 0x73500000
push eax
mov ecx, edi
call fcn.0051ddeb
test eax, eax
mov dword [ebp - 4], eax
mov ecx, edi
jl 0x54f41f
push dword [esi + 0x100]
call fcn.0051d93c
test eax, eax
mov dword [ebp - 4], eax
jl 0x54f41d
mov edx, dword [esi + 0x100]
mov esi, dword [edx + 0x10]
mov edi, dword [edi + 0x10]
mov eax, ebx
mov ebx, dword [ebp - 8]
shl eax, 2
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebx + 8]
mov ecx, eax
shr ecx, 2
lea esi, [ebp - 0xd0]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea esi, [ebp - 0xc0]
jmp 0x54f466
push edi
push ebx
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0xd0]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x110]
push eax
push 0x596b40
push dword [esi + 0x100]
mov ecx, esi
call fcn.0054a65c
test eax, eax
jne 0x54f499
mov eax, dword [ebp - 0xb0]
mov edx, dword [esi + 0x14]
mov ecx, dword [edx + eax*4]
mov eax, 0x80000
cmp dword [ecx + 0x3c], eax
jne 0x54f29c
xor eax, eax
test ebx, ebx
jbe 0x54f2dd
mov ecx, ebx
lea esi, [ebp - 0xa0]
lea edi, [ebp - 0x20]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + eax*4 - 0xb0]
mov ecx, dword [edx + ecx*4]
mov ecx, dword [ecx + 0x38]
mov dword [ebp + eax*4 - 0x30], ecx
inc eax
cmp eax, ebx
jb 0x54f284
jmp 0x54f2d7
mov ecx, dword [ebp - 0xa0]
mov ecx, dword [edx + ecx*4]
cmp dword [ecx + 0x3c], eax
jne 0x54f497
xor eax, eax
test ebx, ebx
jbe 0x54f2dd
mov ecx, ebx
lea esi, [ebp - 0xb0]
lea edi, [ebp - 0x20]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + eax*4 - 0xa0]
mov ecx, dword [edx + ecx*4]
mov ecx, dword [ecx + 0x38]
mov dword [ebp + eax*4 - 0x30], ecx
inc eax
cmp eax, ebx
jb 0x54f2c1
mov esi, dword [ebp - 0x10]
xor edi, edi
inc edi
and dword [ebp - 8], 0
test ebx, ebx
mov dword [ebp - 0xc], edi
mov dword [ebp - 4], edi
jbe 0x54f3ac
fld qword [0x57cbd0]
mov edi, dword [esi + 0x10]
fld qword [0x57cbe8]
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0xd0]
mov ecx, dword [edx + eax*4]
mov eax, dword [ecx + 4]
mov eax, dword [edi + eax*4]
test byte [eax + 5], 1
jne 0x54f31f
and dword [ebp - 4], 0
and dword [ebp - 0xc], 0
fld st(1)
fld qword [ecx + 0x20]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x54f331
and dword [ebp - 4], 0
fld st(0)
fld qword [ecx + 0x20]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x54f343
and dword [ebp - 0xc], 0
mov eax, dword [ebp - 8]
mov eax, dword [ebp + eax*4 - 0xc0]
mov ecx, dword [edx + eax*4]
mov eax, dword [ecx + 4]
mov eax, dword [edi + eax*4]
test byte [eax + 5], 1
jne 0x54f364
and dword [ebp - 4], 0
and dword [ebp - 0xc], 0
fld st(0)
fld qword [ecx + 0x20]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x54f376
and dword [ebp - 4], 0
fld st(1)
fld qword [ecx + 0x20]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x54f388
and dword [ebp - 0xc], 0
inc dword [ebp - 8]
cmp dword [ebp - 8], ebx
jb 0x54f2fe
cmp dword [ebp - 4], 0
fstp st(0)
fstp st(0)
jne 0x54f3ac
cmp dword [ebp - 0xc], 0
jne 0x54f3ac
xor eax, eax
inc eax
jmp 0x54f499
push 0x74
call fcn.0051dda0
test eax, eax
je 0x54f3c5
mov ecx, eax
call fcn.0051d906
mov edi, eax
mov dword [ebp - 8], edi
jmp 0x54f3cc
and dword [ebp - 8], 0
mov edi, dword [ebp - 8]
test edi, edi
jne 0x54f3da
mov eax, 0x8007000e
jmp 0x54f499
mov eax, ebx
and eax, 0xfffff
cmp dword [ebp - 4], 0
je 0x54f3ee
or eax, 0x73600000
jmp 0x54f3f3
or eax, 0x73500000
push 0
push ebx
lea ecx, [ebx + ebx]
push ecx
push eax
mov ecx, edi
call fcn.0051ddeb
test eax, eax
mov dword [ebp - 4], eax
mov ecx, edi
jl 0x54f41f
push dword [esi + 0x100]
call fcn.0051d93c
test eax, eax
mov dword [ebp - 4], eax
jge 0x54f42b
mov ecx, edi
push 1
call fcn.004d4b79
mov eax, dword [ebp - 4]
jmp 0x54f499
mov edx, dword [esi + 0x100]
mov esi, dword [edx + 0x10]
mov edi, dword [edi + 0x10]
mov eax, ebx
mov ebx, dword [ebp - 8]
shl eax, 2
mov ecx, eax
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, dword [ebx + 8]
mov ecx, eax
shr ecx, 2
lea esi, [ebp - 0x20]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea esi, [ebp - 0x30]
mov edi, dword [ebx + 8]
mov ecx, eax
shr ecx, 2
add edi, eax
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 0x10]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [eax + 0x100]
push ebx
call fcn.0051e04a
push 1
mov ecx, ebx
mov esi, eax
call fcn.004d4b79
mov eax, esi
jmp 0x54f499
mov eax, edi
pop edi
pop esi
pop ebx
leave
ret