Function at 0x418430
Capabilities:
Get file size
Print debug messages
Read file on windows

Disassembly:
mov eax, dword [str.common.bin]
mov ecx, dword [str.pol_s]
sub esp, 0x44
lea edx, [esp + 4]
mov dword [0x9c6e40], 0xffffffff
push ebx
push ebp
push esi
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
push edi
push eax
push ecx
push edx
call esi
add esp, 0xc
mov edi, dword [sym.imp.KERNEL32.dll_CreateFileA]
lea eax, [esp + 0x14]
push 0
push 0x80
push 3
push 0
push 1
push DirectSoundCreate
push eax
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileSize]
push 0
push eax
mov dword [0x7c2a58], eax
call ebx
mov ecx, dword [0x9c8c74]
mov ebp, dword [sym.imp.KERNEL32.dll_ReadFile]
lea edx, [esp + 0x10]
push 0
push edx
mov dword [0x7c2a98], eax
push eax
mov eax, dword [0x7c2a58]
push ecx
push eax
mov dword [0x7c2a6c], ecx
call ebp
mov ecx, dword [0x7c2a58]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x9c8c74]
mov eax, 0x81155f
mov dword [0x7c2a58], 0
and al, 0xe0
mov edx, dword [ecx]
add ecx, 4
push eax
push ecx
mov dword [0x7c2a98], edx
mov dword [0x7c2a74], eax
mov dword [0x7c2a6c], eax
call fcn.0040afc0
add esp, 8
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
push 0x5763cc
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov ecx, dword [str.common.bin]
mov edx, dword [str.tex_s]
push ecx
lea eax, [esp + 0x18]
push edx
push eax
call esi
add esp, 0xc
lea ecx, [esp + 0x14]
push 0
push 0x80
push 3
push 0
push 1
push DirectSoundCreate
push ecx
call edi
mov dword [0x7c2a58], eax
push 0
push eax
call ebx
mov ecx, dword [0x9c8c74]
lea edx, [esp + 0x10]
push 0
push edx
mov dword [0x7c2a98], eax
push eax
mov eax, dword [0x7c2a58]
push ecx
push eax
mov dword [0x7c2a7c], ecx
call ebp
mov ecx, dword [0x7c2a58]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [0x9c8c74]
mov dword [0x7c2a58], 0
mov eax, dword [edx]
mov dword [0x7c2a98], eax
add eax, 0x20
push eax
call fcn.004a32a0
mov dword [0x7c2a78], eax
add eax, 0x1f
and al, 0xe0
mov dword [0x7c2a7c], eax
push eax
mov eax, dword [0x9c8c74]
add eax, 4
push eax
call fcn.0040afc0
push 1
call fcn.004a8820
mov ecx, dword [0x55a984]
mov edi, dword [str.:_____ABCDEFGHIJKLMNOPQR]
xor ebp, ebp
add esp, 0x10
cmp word [0x4e7016], bp
mov dword [0x960540], ecx
jbe 0x418661
mov eax, dword [0x7c2a6c]
movsx ebx, word [edi]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [0x7c2a74]
mov esi, ebx
shl esi, 4
not edx
add esi, 0x9a64c0
add eax, ecx
shr edx, 0x1f
mov dword [0x7c2a94], edx
mov dword [esi + 4], eax
mov eax, dword [0x7c2a94]
add edi, 2
cmp eax, 1
jne 0x418646
push 1
push 0
push ebx
push esi
call fcn.00419370
mov ecx, dword [0x7c2a7c]
mov edx, dword [0x960540]
mov eax, dword [esi + 4]
push ecx
push edx
push eax
call fcn.004a8830
push ebx
call fcn.004195e0
add esp, 0x20
mov eax, dword [0x7c2a6c]
xor ecx, ecx
mov cx, word [0x4e7016]
add eax, 8
inc ebp
mov dword [0x7c2a6c], eax
cmp ebp, ecx
jl 0x4185e6
push 0
call fcn.004a8820
mov esi, dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
add esp, 4
lea edx, [esp + 0x14]
push edx
call esi
push 0x5763cc
call esi
mov eax, dword [str.__t:_t8_t2_t9_t3_t7_t4_t5_t1_t]
mov dword [0x9c714c], 0
mov esi, str.__t:_t8_t2_t9_t3_t7_t4_t5_t1_t
movsx eax, ax
shl eax, 4
add esi, 2
mov eax, dword [eax + 0x9a64c4]
push eax
call fcn.004194f0
mov ax, word [esi]
add esp, 4
cmp ax, 0xffff
jne 0x418693
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret