Function at 0x412b50
Capabilities:
Create thread
Get file size
Read file on windows

Disassembly:
sub esp, 0x40
push ebx
push esi
push edi
xor edi, edi
push edi
mov esi, ecx
push 0x80
push 3
mov eax, dword [esi + 0x134]
push edi
push 1
push SysReAllocString
push eax
mov dword [esi + 0xdc], edi
mov dword [esi + 0xd8], edi
mov dword [esi + 0xd4], edi
mov dword [esi + 0xcc], edi
mov dword [esi + 0x74], edi
call dword [sym.imp.KERNEL32.dll_CreateFileA]
cmp eax, 0xffffffff
mov dword [esi + 0x130], eax
push edi
jne 0x412bbe
push edi
push str.Open_file_failed
mov ecx, esi
call fcn.0043116e
lea eax, [esp + 0xc]
push 0x44a458
push eax
mov dword [esp + 0x14], edi
call fcn.0041f729
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
push edi
mov dword [esi + 0xc8], eax
mov ecx, dword [0x45570c]
push esi
push 0x412590
push 0x2710
push ecx
call sub.HikPlayM4.dll_Hik_PlayM4_SetSourceBufCallBack
mov edx, dword [0x45570c]
push 1
push edx
call sub.HikPlayM4.dll_Hik_PlayM4_SetStreamOpenMode
call sub.HikPlayM4.dll_Hik_PlayM4_GetFileHeadLength
mov dword [esi + 0xc4], eax
lea eax, [esp + 0x14]
push eax
push edi
push esi
push 0x412640
push edi
push edi
mov dword [esi + 0x12c], edi
mov dword [esi + 0x128], edi
mov dword [esi + 0x124], edi
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov ebx, dword [sym.imp.KERNEL32.dll_CreateEventA]
push edi
push edi
push 1
push edi
mov dword [esi + 0x12c], eax
call ebx
push edi
push edi
push edi
push edi
mov dword [esi + 0x128], eax
call ebx
mov ecx, dword [esi + 0x12c]
mov dword [esi + 0x124], eax
cmp ecx, edi
je 0x412d71
cmp dword [esi + 0x128], edi
je 0x412d71
cmp eax, edi
je 0x412d71
mov ecx, dword [esi + 0xc4]
push ecx
call fcn.0042f4d9
add esp, 4
mov ebx, eax
cmp ebx, edi
push edi
jne 0x412c9f
push edi
push str.Alloc_memory_failed
mov ecx, esi
call fcn.0043116e
lea edx, [esp + 0xc]
push 0x44a458
push edx
mov dword [esp + 0x14], edi
call fcn.0041f729
mov ecx, dword [esi + 0xc4]
mov edx, dword [esi + 0x130]
lea eax, [esp + 0x14]
push eax
push ecx
push ebx
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esi + 0xc4]
mov ecx, dword [esp + 0x10]
cmp ecx, eax
je 0x412cf1
push edi
push edi
push str.File_is_too_small
mov ecx, esi
call fcn.0043116e
push ebx
call fcn.0042f502
add esp, 4
lea eax, [esp + 0xc]
mov dword [esp + 0xc], edi
push 0x44a458
push eax
call fcn.0041f729
mov ecx, dword [0x45570c]
push 0x30d40
push eax
push ebx
push ecx
call sub.HikPlayM4.dll_Hik_PlayM4_OpenStream
test eax, eax
jne 0x412d51
mov edx, dword [0x45570c]
push edx
call sub.HikPlayM4.dll_Hik_PlayM4_GetLastError
push eax
lea eax, [esp + 0x1c]
push str.Open_stream_failed__d_
push eax
call fcn.0041f763
add esp, 0xc
lea ecx, [esp + 0x18]
push edi
push edi
push ecx
mov ecx, esi
call fcn.0043116e
push ebx
call fcn.0042f502
add esp, 4
lea edx, [esp + 0xc]
mov dword [esp + 0xc], edi
push 0x44a458
push edx
call fcn.0041f729
mov eax, dword [0x45570c]
push 0xff00ff
push 1
push eax
call sub.HikPlayM4.dll_Hik_PlayM4_SetOverlayMode
mov ecx, esi
call fcn.004147c0
pop edi
pop esi
pop ebx
add esp, 0x40
ret
push edi
push edi
push str.Create_thread_failed
mov ecx, esi
call fcn.0043116e
lea ecx, [esp + 0xc]
push 0x44a458
push ecx
mov dword [esp + 0x14], edi
call fcn.0041f729
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop