Function at 0x412ba0
Capabilities:
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x45178d
mov eax, dword fs:[0]
push eax
sub esp, 0x74
mov eax, dword [0x46b080]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x3c], ecx
mov eax, dword [ebp + 8]
lea ecx, [ebp - 0x68]
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x30], eax
mov eax, dword [0x46cf64]
push ecx
push 0
push 0
mov eax, dword [eax + 0x114]
call eax
test eax, eax
jne 0x4131fe
mov esi, dword [ebp - 0x68]
mov dword [ebp - 0x78], esi
mov dword [ebp - 4], 2
mov ecx, dword [edi]
cmp dword [ecx + 0x60], eax
je 0x412c16
mov edi, dword [ecx + 0x14c]
jmp 0x412c1c
mov edi, dword [ecx + 0xa4]
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x38], edi
push eax
call fcn.00409730
mov byte [ebp - 4], 3
xor edx, edx
mov eax, dword [ebp - 0x48]
mov ecx, dword [ebp - 0x4c]
sub eax, ecx
sar eax, 2
div edi
mov edi, eax
mov dword [ebp - 0x54], edi
cmp edi, 0xb86
jl 0x412ca7
push 0x3c
push str.Compute
push str.D:_a_sherpa_onnx_sherpa_onnx_sherpa_onnx_csrc_spoken_language_identification_whisper_impl.h
push str._s:_s:_d
push 2
call fcn.0042fe80
add esp, 4
push eax
call fcn.004010b0
add esp, 0x14
push str.Only_waves_less_than_30_seconds_are_supported._We_process_only_the_first_30_seconds_and_discard_the_remaining_data
push 2
call fcn.0042fe80
add esp, 4
push eax
call fcn.004010b0
add esp, 8
push 0x45c670
push 2
call fcn.0042fe80
add esp, 4
push eax
call fcn.004010b0
mov ecx, dword [ebp - 0x4c]
mov edi, 0xb86
add esp, 8
mov dword [ebp - 0x54], edi
push dword [ebp - 0x38]
mov edx, edi
call fcn.0041ef10
mov eax, dword [ebp - 0x3c]
add esp, 4
mov ecx, 0x3e8
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x28], 0
mov eax, dword [eax + 0x34]
test eax, eax
cmovg ecx, eax
mov dword [ebp - 0x74], ecx
lea eax, [ecx + edi]
mov edi, dword [ebp - 0x38]
mov ecx, 0xbb8
cmp eax, ecx
cmovg eax, ecx
mov dword [ebp - 0x40], eax
cdq
mov dword [ebp - 0x24], eax
mov eax, edi
mov dword [ebp - 0x20], edx
cdq
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x18], edx
lea edx, [ebp - 0x34]
push edx
push 1
mov eax, dword [eax + 0x58]
lea edx, [ebp - 0x2c]
push 3
push edx
mov eax, dword [eax]
mov ecx, dword [eax + 0x250]
mov eax, dword [0x46cf64]
push ecx
mov eax, dword [eax + 0xc0]
call eax
test eax, eax
jne 0x413213
mov ecx, dword [ebp - 0x34]
mov dword [ebp - 0x34], ecx
mov byte [ebp - 4], 6
lea edx, [ebp - 0x5c]
mov eax, dword [0x46cf64]
push edx
push ecx
mov eax, dword [eax + 0xcc]
call eax
test eax, eax
jne 0x413225
imul edi, dword [ebp - 0x54]
mov ecx, dword [ebp - 0x4c]
mov edx, dword [ebp - 0x5c]
mov dword [ebp - 0x50], edx
shl edi, 2
push edi
push ecx
push edx
call fcn.0042c680
mov ecx, dword [ebp - 0x40]
add esp, 0xc
sub ecx, dword [ebp - 0x54]
imul ecx, dword [ebp - 0x38]
add edi, dword [ebp - 0x50]
mov dword [ebp - 0x6c], 0
test ecx, ecx
jle 0x412dab
lea eax, [ebp - 0x6c]
mov dword [ebp - 0x70], 0
mov eax, dword [eax]
lea edx, [ebp - 0x70]
cmp eax, dword [edx]
jne 0x412da7
lea eax, [ecx*4]
push eax
push 0
push edi
call fcn.0042cc10
add esp, 0xc
jmp 0x412dab
xor eax, eax
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x34]
push eax
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0x40]
mov eax, dword [eax + 0x58]
mov edx, dword [eax]
mov edx, dword [edx + 0x250]
call fcn.0041bf70
add esp, 4
mov edi, eax
mov byte [ebp - 4], 9
mov eax, dword [0x46cf64]
push dword [ebp - 0x34]
mov eax, dword [eax + 0x180]
call eax
mov eax, dword [edi]
mov dword [ebp - 0x50], eax
mov dword [edi], 0
mov dword [ebp - 0x34], eax
mov byte [ebp - 4], 0xa
mov eax, dword [0x46cf64]
push dword [ebp - 0x40]
mov eax, dword [eax + 0x180]
call eax
mov eax, dword [ebp - 0x3c]
xor edi, edi
mov byte [ebp - 4], 0xb
mov edx, dword [ebp - 0x50]
mov dword [ebp - 0x34], edi
mov ecx, dword [eax + 0x58]
push ecx
mov eax, esp
mov dword [eax], edx
lea eax, [ebp - 0x64]
push eax
call fcn.0041edd0
mov eax, dword [ebp - 0x3c]
lea ecx, [ebp - 0x60]
mov byte [ebp - 4], 0xc
push ecx
lea ecx, [ebp - 0x64]
mov eax, dword [eax + 0x58]
push ecx
mov ecx, dword [eax]
call fcn.0041c9a0
mov edx, eax
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x5c], edx
mov dword [ebp - 0x50], edx
mov eax, dword [eax + 0x58]
mov eax, dword [eax]
add eax, 0x2f4
mov dword [ebp - 0x40], eax
mov eax, edx
shr eax, 8
movzx ecx, al
movzx eax, dl
xor eax, 0x811c9dc5
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, edx
imul ecx, ecx, 0x1000193
shr eax, 0x18
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [ebp - 0x40]
mov edi, dword [ecx + 0x18]
and edi, eax
mov dword [ebp - 0x38], edi
mov edi, dword [ecx + 0xc]
mov eax, dword [ebp - 0x38]
mov eax, dword [edi + eax*8 + 4]
cmp eax, dword [ecx + 4]
mov edi, 0
je 0x412ecc
nop dword [eax + eax]
cmp edx, dword [eax + 8]
je 0x412ece
mov edi, dword [ebp - 0x38]
mov esi, dword [ecx + 0xc]
cmp eax, dword [esi + edi*8]
mov edi, 0
mov esi, dword [ebp - 0x68]
jne 0x4130be
xor eax, eax
test eax, eax
je 0x412f96
lea eax, [ebp - 0x50]
push eax
call fcn.00413c20
mov ecx, dword [ebp - 0x58]
push eax
call fcn.00405520
mov byte [ebp - 4], 0xd
mov eax, dword [0x46cf64]
push dword [ebp - 0x60]
mov eax, dword [eax + 0x180]
call eax
mov byte [ebp - 4], 0xe
mov eax, dword [0x46cf64]
push dword [ebp - 0x64]
mov eax, dword [eax + 0x180]
call eax
mov byte [ebp - 4], 0xf
mov eax, dword [0x46cf64]
push edi
mov eax, dword [eax + 0x180]
call eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x412f79
mov eax, dword [ebp - 0x44]
sub eax, ecx
sar eax, 2
lea edx, [eax*4]
mov eax, ecx
cmp edx, 0x1000
jb 0x412f5a
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413237
push edx
push ecx
call fcn.0042ae8d
add esp, 8
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 4], 0x10
mov eax, dword [0x46cf64]
push esi
mov eax, dword [eax + 0x178]
call eax
mov eax, dword [ebp - 0x58]
jmp 0x4131e0
push 0x65
push str.Compute
push str.D:_a_sherpa_onnx_sherpa_onnx_sherpa_onnx_csrc_spoken_language_identification_whisper_impl.h
push str._s:_s:_d
push 2
call fcn.0042fe80
add esp, 4
push eax
call fcn.004010b0
push 2
call fcn.0042fe80
push dword [ebp - 0x5c]
push str.Unknown_language_ID:__d._Return_an_empty_string.
push eax
call fcn.004010b0
add esp, 0x24
push 0x45c670
push 2
call fcn.0042fe80
add esp, 4
push eax
call fcn.004010b0
mov eax, dword [ebp - 0x58]
xorps xmm0, xmm0
add esp, 8
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xf
mov byte [eax], 0
mov byte [ebp - 4], 0x11
mov eax, dword [0x46cf64]
push dword [ebp - 0x60]
mov eax, dword [eax + 0x180]
call eax
mov byte [ebp - 4], 0x12
mov eax, dword [0x46cf64]
push dword [ebp - 0x64]
mov eax, dword [eax + 0x180]
call eax
mov byte [ebp - 4], 0x13
mov eax, dword [0x46cf64]
push edi
mov eax, dword [eax + 0x180]
call eax
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x4130a0
mov eax, dword [ebp - 0x44]
sub eax, ecx
sar eax, 2
lea edx, [eax*4]
mov eax, ecx
cmp edx, 0x1000
jb 0x413081
mov ecx, dword [eax - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x413237
push edx
push ecx
call fcn.0042ae8d
add esp, 8
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
mov dword [ebp - 4], 0x14
mov ecx, dword [0x46cf64]
push esi
mov ecx, dword [ecx + 0x178]
call ecx
mov eax, dword [ebp - 0x58]
jmp 0x4131e0
mov eax, dword [eax + 4]
jmp 0x412eb0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.0042ae4f
mov esp, ebp
pop ebp
ret 8
push eax
lea ecx, [ebp - 0x30]
call fcn.00412980
mov dword [ebp - 4], 0
call fcn.00412840
push eax
lea ecx, [ebp - 0x30]
call fcn.00412980
mov byte [ebp - 4], 4
call fcn.00412840
push eax
lea ecx, [ebp - 0x30]
call fcn.00412980
mov byte [ebp - 4], 7
call fcn.00412840
call fcn.00432a40
call fcn.00432a40
int3