Function at 0x40d780
Capabilities:
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x431c40
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push esi
push edi
mov eax, dword [0x43e0b0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 0xc]
xor edx, edx
mov dword [ebp - 0x2c], edx
cmp esi, edx
jne 0x40d7d6
mov esi, dword [ebp + 8]
push esi
mov ecx, 0x4388a0
call fcn.00404800
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, esi
lea edi, [eax + 2]
jmp 0x40d7e0
mov cx, word [eax]
add eax, 2
cmp cx, dx
jne 0x40d7e0
sub eax, edi
sar eax, 1
cmp eax, 0x10
jl 0x40d7b4
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], edx
mov dword [ebp - 0x24], edx
mov ebx, 7
movzx eax, word [esi]
lea ecx, [eax - 0x30]
cmp cx, 9
ja 0x40d813
lea edi, [eax - 0x30]
jmp 0x40d81f
lea edx, [eax - 0x41]
cmp dx, 5
ja 0x40d7b4
lea edi, [eax - 0x37]
cmp edi, 0xffffffff
je 0x40d7b4
fld dword [0x43a22c]
push ecx
mov ecx, ebx
fstp dword [esp]
call fcn.0040e0d0
add esp, 4
mov dword [ebp - 0x2c], edi
fild dword [ebp - 0x2c]
test edi, edi
jns 0x40d848
fadd dword [0x43a228]
mov eax, dword [ebp - 0x10]
fmulp st(1)
fild dword [ebp - 0x10]
test eax, eax
jns 0x40d85a
fadd qword [0x43a220]
fnstcw word [ebp - 0xe]
dec ebx
movzx eax, word [ebp - 0xe]
faddp st(1)
or eax, 0xc00
mov dword [ebp - 0x1c], eax
add esi, 2
fldcw word [ebp - 0x1c]
fistp qword [ebp - 0x30]
mov ecx, dword [ebp - 0x30]
fldcw word [ebp - 0xe]
mov dword [ebp - 0x10], ecx
cmp ebx, 0xffffffff
jg 0x40d802
mov ebx, dword [ebp + 0xc]
fld1
fld1
lea esi, [ebx + 0x10]
fld dword [0x43a22c]
mov ecx, 1
mov dword [ebp - 0x2c], esi
mov edi, esi
jmp 0x40d8a5
fxch st(2)
movzx eax, word [edi]
lea edx, [eax - 0x30]
cmp dx, 9
ja 0x40d8b6
add eax, 0xffffffd0
jmp 0x40d8c6
lea edx, [eax - 0x41]
cmp dx, 5
ja 0x40d971
add eax, 0xffffffc9
cmp eax, 0xffffffff
je 0x40d971
fst dword [ebp - 0x1c]
mov edx, ecx
test ecx, ecx
jns 0x40d8da
neg edx
fxch st(2)
fst dword [ebp + 0xc]
fld dword [ebp - 0x1c]
test dl, 1
je 0x40d8ef
fld dword [ebp + 0xc]
fmul st(1)
fstp dword [ebp + 0xc]
shr edx, 1
je 0x40d8fa
fmul st(0), st(0)
fstp dword [ebp - 0x1c]
jmp 0x40d8df
fstp st(0)
fld dword [ebp + 0xc]
test ecx, ecx
jns 0x40d905
fdivr st(2)
mov dword [ebp - 0x1c], eax
fstp dword [ebp + 0xc]
fild dword [ebp - 0x1c]
test eax, eax
jns 0x40d918
fadd dword [0x43a228]
mov eax, dword [ebp - 0x14]
fmul dword [ebp + 0xc]
fild dword [ebp - 0x14]
test eax, eax
jns 0x40d92b
fadd qword [0x43a220]
fnstcw word [ebp + 0xe]
dec ecx
movzx eax, word [ebp + 0xe]
faddp st(1)
or eax, 0xc00
mov dword [ebp - 0x1c], eax
add edi, 2
fldcw word [ebp - 0x1c]
fistp qword [ebp - 0x20]
mov edx, dword [ebp - 0x20]
mov dword [ebp - 0x14], edx
fldcw word [ebp + 0xe]
cmp ecx, 0xffffffff
jg 0x40d8a3
mov ecx, 1
lea edi, [ebx + 0x14]
movzx eax, word [edi]
lea edx, [eax - 0x30]
cmp dx, 9
ja 0x40d99a
add eax, 0xffffffd0
jmp 0x40d9aa
mov eax, dword [0x43e060]
fstp st(1)
mov edx, dword [eax + 0xc]
fstp st(1)
mov ecx, 0x43e060
fstp st(0)
call edx
mov esi, dword [ebp + 8]
add eax, 0x10
mov dword [esi], eax
mov dword [ebp - 4], 0
jmp 0x40db3e
lea edx, [eax - 0x41]
cmp dx, 5
ja 0x40da70
add eax, 0xffffffc9
cmp eax, 0xffffffff
je 0x40da70
fxch st(2)
mov edx, ecx
fst dword [ebp - 0x1c]
test ecx, ecx
jns 0x40d9c0
neg edx
fxch st(2)
fst dword [ebp + 0xc]
fld dword [ebp - 0x1c]
test dl, 1
je 0x40d9d5
fld dword [ebp + 0xc]
fmul st(1)
fstp dword [ebp + 0xc]
shr edx, 1
je 0x40d9e0
fmul st(0), st(0)
fstp dword [ebp - 0x1c]
jmp 0x40d9c5
fstp st(0)
fld dword [ebp + 0xc]
test ecx, ecx
jns 0x40d9eb
fdivr st(2)
mov dword [ebp - 0x1c], eax
fstp dword [ebp + 0xc]
fild dword [ebp - 0x1c]
test eax, eax
jns 0x40d9fe
fadd dword [0x43a228]
mov eax, dword [ebp - 0x24]
fmul dword [ebp + 0xc]
fild dword [ebp - 0x24]
test eax, eax
jns 0x40da11
fadd qword [0x43a220]
fnstcw word [ebp + 0xe]
dec ecx
movzx eax, word [ebp + 0xe]
faddp st(1)
or eax, 0xc00
mov dword [ebp - 0x24], eax
add edi, 2
fldcw word [ebp - 0x24]
fistp qword [ebp - 0x28]
mov edx, dword [ebp - 0x28]
mov dword [ebp - 0x24], edx
fldcw word [ebp + 0xe]
cmp ecx, 0xffffffff
jg 0x40d960
lea ecx, [ebx + 0x18]
fstp st(1)
lea eax, [ecx + edx*2]
fstp st(0)
mov dword [ebp - 0x24], eax
fstp st(0)
mov eax, esi
mov dword [ebp + 0xc], ecx
lea ebx, [eax + 2]
mov di, word [eax]
add eax, 2
test di, di
jne 0x40da55
sub eax, ebx
sar eax, 1
add eax, eax
xor ebx, ebx
xor edi, edi
test eax, eax
jle 0x40dace
jmp 0x40dab3
mov edx, dword [0x43e060]
fstp st(1)
mov eax, dword [edx + 0xc]
fstp st(0)
mov ecx, 0x43e060
fstp st(0)
call eax
mov esi, dword [ebp + 8]
add eax, 0x10
mov dword [esi], eax
mov dword [ebp - 4], 1
mov ecx, 0x4388a0
test ecx, 0xffff0000
jne 0x40db76
mov edx, ecx
movzx edi, dx
jmp 0x40db4f
mov esi, dword [ebp - 0x2c]
movzx ecx, byte [edi + esi]
movzx esi, bl
xor ecx, esi
shr ebx, 8
xor ebx, dword [ecx*4 + 0x43f300]
inc edi
cmp edi, eax
jl 0x40dab0
mov ecx, dword [ebp + 0xc]
not ebx
cmp ebx, dword [ebp - 0x10]
je 0x40daf6
mov edx, dword [0x43e060]
mov eax, dword [edx + 0xc]
mov ecx, 0x43e060
call eax
mov esi, dword [ebp + 8]
add eax, 0x10
mov dword [esi], eax
mov dword [ebp - 4], 2
jmp 0x40da95
cmp dword [ebp - 0x14], 1
jne 0x40db20
mov esi, dword [ebp + 8]
push edx
mov edx, dword [ebp - 0x24]
push esi
call fcn.0040d480
add esp, 8
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [0x43e060]
mov edx, dword [eax + 0xc]
mov ecx, 0x43e060
call edx
mov esi, dword [ebp + 8]
add eax, 0x10
mov dword [esi], eax
mov dword [ebp - 4], 3
mov eax, 0x4388a0
test eax, 0xffff0000
jne 0x40db76
mov ecx, eax
movzx edi, cx
call fcn.00405820
test eax, eax
je 0x40db83
push eax
mov eax, edi
mov edi, esi
call fcn.00405460
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x4388a0
push esi
xor ebx, ebx
call fcn.00405280
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret