Function at 0x4182d0
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 [0x9c52a0], 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 [0x7c0db8], eax
call ebx
mov ecx, dword [0x9c70d4]
mov ebp, dword [sym.imp.KERNEL32.dll_ReadFile]
lea edx, [esp + 0x10]
push 0
push edx
mov dword [0x7c0df8], eax
push eax
mov eax, dword [0x7c0db8]
push ecx
push eax
mov dword [0x7c0dcc], ecx
call ebp
mov ecx, dword [0x7c0db8]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [0x9c70d4]
mov eax, 0x80f9bf
mov dword [0x7c0db8], 0
and al, 0xe0
mov edx, dword [ecx]
add ecx, 4
push eax
push ecx
mov dword [0x7c0df8], edx
mov dword [0x7c0dd4], eax
mov dword [0x7c0dcc], eax
call fcn.0040acf0
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 [0x7c0db8], eax
push 0
push eax
call ebx
mov ecx, dword [0x9c70d4]
lea edx, [esp + 0x10]
push 0
push edx
mov dword [0x7c0df8], eax
push eax
mov eax, dword [0x7c0db8]
push ecx
push eax
mov dword [0x7c0ddc], ecx
call ebp
mov ecx, dword [0x7c0db8]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [0x9c70d4]
mov dword [0x7c0db8], 0
mov eax, dword [edx]
mov dword [0x7c0df8], eax
add eax, 0x20
push eax
call fcn.004a6830
mov dword [0x7c0dd8], eax
add eax, 0x1f
and al, 0xe0
mov dword [0x7c0ddc], eax
push eax
mov eax, dword [0x9c70d4]
add eax, 4
push eax
call fcn.0040acf0
push 1
call fcn.004abd90
mov ecx, dword [0x55a9bc]
mov edi, dword [str.:_____ABCDEFGHIJKLMNOPQR]
xor ebp, ebp
add esp, 0x10
cmp word [0x4e703e], bp
mov dword [0x95e9a0], ecx
jbe 0x418501
mov eax, dword [0x7c0dcc]
movsx ebx, word [edi]
mov edx, dword [eax]
mov ecx, dword [eax + 4]
mov eax, dword [0x7c0dd4]
mov esi, ebx
shl esi, 4
not edx
add esi, 0x9a4920
add eax, ecx
shr edx, 0x1f
mov dword [0x7c0df4], edx
mov dword [esi + 4], eax
mov eax, dword [0x7c0df4]
add edi, 2
cmp eax, 1
jne 0x4184e6
push 1
push 0
push ebx
push esi
call fcn.00419210
mov ecx, dword [0x7c0ddc]
mov edx, dword [0x95e9a0]
mov eax, dword [esi + 4]
push ecx
push edx
push eax
call fcn.004abda0
push ebx
call fcn.00419480
add esp, 0x20
mov eax, dword [0x7c0dcc]
xor ecx, ecx
mov cx, word [0x4e703e]
add eax, 8
inc ebp
mov dword [0x7c0dcc], eax
cmp ebp, ecx
jl 0x418486
push 0
call fcn.004abd90
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 [0x9c55ac], 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 + 0x9a4924]
push eax
call fcn.00419390
mov ax, word [esi]
add esp, 4
cmp ax, 0xffff
jne 0x418533
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret