Function at 0x10038c50
Capabilities:
Hash data with crc32

Disassembly:
mov ecx, dword [esp + 4]
sub esp, 0x10
push ebx
push ebp
push esi
mov esi, dword [0x1021c4b0]
push edi
xor edi, edi
mov ebp, dword [esi + 0x1a10]
test cl, 0x10
jne 0x10038eb2
mov ebx, dword [ebp + 0x110]
lea eax, [esi + 0x1a44]
mov dword [esp + 0x14], eax
test ebx, ebx
je 0x10038c90
cmp dword [eax], ebx
jne 0x10038ea8
jmp 0x10038c94
mov dword [esp + 0x14], eax
cmp byte [esi + 0xf4], 0
je 0x10038ea8
test ebx, ebx
jne 0x10038e71
test cl, 8
je 0x10038ea8
test byte [ebp + 0x114], 1
jne 0x10038ccf
cmp dword [eax], edi
je 0x10038ea8
cmp dword [esi + 0x1a70], ebp
jne 0x10038ea8
lea eax, [ebp + 0x118]
mov ecx, ebp
push eax
call fcn.1003cb30
mov ebx, eax
mov dword [ebp + 0x110], ebx
mov edi, dword [0x1021c4b0]
mov eax, dword [edi + 0x1a30]
test eax, eax
je 0x10038d06
cmp eax, ebx
je 0x10038d06
cmp byte [edi + 0x1a34], 0
je 0x10038e25
mov eax, dword [edi + 0x1a10]
mov dword [esp + 0x18], eax
cmp dword [edi + 0x1a14], eax
jne 0x10038e25
mov eax, dword [edi + 0x1a44]
test eax, eax
je 0x10038d37
cmp eax, ebx
je 0x10038d37
cmp byte [edi + 0x1a51], 0
je 0x10038e25
lea eax, [ebp + 0x118]
lea ecx, [eax + 8]
push 1
push ecx
push eax
mov dword [esp + 0x28], ecx
call fcn.1003e6a0
add esp, 0xc
test al, al
je 0x10038e25
cmp byte [edi + 0x1b93], 0
jne 0x10038e25
mov edx, dword [esp + 0x18]
push 0
push edx
call fcn.1003e830
add esp, 8
test al, al
je 0x10038e25
test byte [edx + 0x1a8], 4
jne 0x10038e25
test ebx, ebx
je 0x10038e00
mov eax, dword [0x1021c4b0]
fldz
mov dword [eax + 0x1a30], ebx
mov byte [eax + 0x1a34], 0
cmp dword [eax + 0x1a38], ebx
je 0x10038db5
fst dword [eax + 0x1a40]
fst dword [eax + 0x1a3c]
cmp byte [edi + 0x2e18], 0
je 0x10038df5
cmp dword [edi + 0x1a38], ebx
jne 0x10038df5
fld1
lea eax, [ebp + 0x118]
push ecx
fstp dword [esp]
push 0xf
push ecx
mov ecx, dword [0x1021c4b0]
fstp dword [esp]
push 0xff00ffff
push dword [esp + 0x2c]
lea ecx, [ecx + 0x1d3c]
push eax
call fcn.1004af70
jmp 0x10038df7
fstp st(0)
cmp dword [edi + 0x2e1c], ebx
jne 0x10038e00
int3
cmp byte [esi + 0x3e0], 0
mov al, 1
mov byte [esp + 0x13], al
je 0x10038e27
push ebp
push ebx
call fcn.100463c0
push ebp
call fcn.1003c280
mov al, byte [esp + 0x1f]
add esp, 0xc
jmp 0x10038e27
xor al, al
mov ecx, dword [esp + 0x14]
cmp dword [ecx], ebx
jne 0x10038e35
mov byte [esi + 0x1a51], al
mov eax, dword [esp + 0x14]
cmp dword [eax], ebx
jne 0x10038ea8
mov eax, dword [ebp + 0xc8]
mov ecx, dword [ebp + 0xc0]
mov edi, dword [eax + ecx*4 - 4]
mov eax, dword [0x1021c4b0]
cmp byte [eax + 0xf4], 0
je 0x10038e7a
fld dword [eax + 0x34]
fmul st(0), st(0)
fcomp dword [eax + 0x44c]
fnstsw ax
test ah, 0x41
jp 0x10038e7a
mov al, 1
jmp 0x10038e7c
mov byte [esi + 0x1a51], 0
jmp 0x10038e39
xor al, al
mov dword [esi + 0x1a58], 0xffffffff
mov dword [esi + 0x1a5c], 0xffffffff
mov dword [esi + 0x1a60], 0xffffffff
mov dword [esi + 0x1a64], 0xffffffff
test al, al
jne 0x10038eeb
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x10
ret
xor ebp, ebp
mov edx, 0x101ab989
or ebx, 0xffffffff
mov al, 0x23
mov edi, edi
cmp al, 0x23
jne 0x10038ed0
cmp byte [edx], al
jne 0x10038ed0
cmp byte [edx + 1], al
jne 0x10038ed0
or ebx, 0xffffffff
movzx ecx, bl
movzx eax, al
xor ecx, eax
shr ebx, 8
mov al, byte [edx]
inc edx
xor ebx, dword [ecx*4 + 0x101ab320]
test al, al
jne 0x10038ec0
not ebx
cmp byte [esi + 0x1db8], 0
jne 0x10038f22
call fcn.1003a270
mov dword [esi + 0x1dd0], ebx
mov ebx, dword [esp + 0x24]
mov dword [esi + 0x1dd4], edi
mov byte [esi + 0x1db8], 1
mov dword [esi + 0x1dbc], ebx
mov dword [esi + 0x1dc4], 0
jmp 0x10038f26
mov ebx, dword [esp + 0x24]
mov eax, dword [esi + 0x19b8]
mov dword [esi + 0x1dc0], eax
mov byte [esi + 0x1db9], 1
test bl, 1
jne 0x10038f76
push 0
push 0
call fcn.10039280
add esp, 8
cmp dword [esi + 0x1e20], 0
je 0x10038f76
test dword [esi + 0x1e14], 0x1000
je 0x10038f76
mov eax, dword [esi + 0x1a10]
mov byte [eax + 0x83], 1
mov dword [eax + 0x9c], 1
test bl, 0x12
jne 0x10038f82
and dword [ebp + 0x114], 0xfffffffe
pop edi
pop esi
pop ebp
mov al, 1
pop ebx
add esp, 0x10
ret