Function at 0x46fc72
Capabilities:
Get file size
Read file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push eax
push ebx
push ecx
push edx
push edi
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], 1
call fcn.004745ed
mov esi, dword [0x4050c4]
cmp dword [0x405084], 3
je 0x46fccc
cmp dword [0x405084], 0xb
je 0x46fccc
cmp dword [0x405084], 8
jne 0x46fcbf
cmp eax, 0xe2
jl 0x46fcbf
cmp eax, 0xf5
jle 0x46fccc
cmp dword [0x405084], 0xa
jne 0x46fe5f
lea edx, [ebp - 0x10]
push edx
call fcn.0046eceb
mov ebx, dword [ebp - 0x10]
push ebx
call dword [sym.imp.shlwapi.dll_PathFindExtensionW]
mov edi, eax
push 0x403e72
push eax
call dword [sym.imp.kernel32.dll_lstrcmpiW]
cmp eax, 0
jne 0x46fd0b
mov dword [ebp - 8], 2
call fcn.00472df1
cmp word [esi], 0x2c
jne 0x46fd09
add esi, 2
jmp 0x46fd78
jmp 0x46fd53
push 0x403e84
push edi
call dword [sym.imp.kernel32.dll_lstrcmpiW]
test eax, eax
je 0x46fcf2
push 0x403e7c
push edi
call dword [sym.imp.kernel32.dll_lstrcmpiW]
test eax, eax
je 0x46fcf2
push 0x403e68
push edi
call dword [sym.imp.kernel32.dll_lstrcmpiW]
cmp eax, 0
jne 0x46fd43
mov dword [ebp - 8], 1
call fcn.00472df1
cmp word [esi], 0x2c
jne 0x46fd53
add esi, 2
jmp 0x46fd78
lea edx, [ebp - 4]
push edx
call fcn.00475b7f
cmp dword [ebp - 4], 0
jle 0x46fd53
mov ebx, dword [ebp - 0x10]
nop
call fcn.0046fd9a
or dword [eax], eax
and byte [eax], al
and al, byte [eax]
daa
add byte [eax], al
add byte [ebx - 1], dl
push ebx
call dword [sym.imp.shlwapi.dll_StrTrimW]
lea edx, [ebp - 4]
push edx
call fcn.00475b7f
call fcn.00472df1
cmp word [esi], 0x2c
jne 0x46fe7f
add esi, 2
lea edx, [ebp - 0xc]
push edx
call fcn.00475b7f
cmp dword [ebp - 4], 0
jle 0x46fd53
mov eax, dword [ebp - 4]
mov ebx, dword [0x405070]
test eax, eax
jl 0x46fd53
call fcn.0046c4fd
test eax, eax
jl 0x4700ca
mov eax, dword [ebx + 8]
cmp eax, 0
jne 0x46fec5
mov eax, dword [ebp - 0xc]
or eax, 7
push eax
push 0
push dword [ebx]
call dword [sym.imp.winmm_PlaySoundW]
jmp 0x4700ca
cmp eax, 1
jne 0x46ff93
mov eax, dword [ebp - 0xc]
mov edi, dword [0x405088]
cmp eax, 1
je 0x46fee1
cmp eax, 2
jne 0x46ff39
push eax
push dword [ebp - 4]
push 0x40431a
push edi
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0xc
push 0
push 0
push 0
push edi
call dword [sym.imp.winmm_mciSendStringW]
mov eax, dword [ebx]
mov ebx, dword [0x40508c]
push eax
push ebx
call dword [sym.imp.kernel32.dll_lstrcpyW]
push eax
call dword [sym.imp.shlwapi.dll_PathQuoteSpacesW]
push dword [ebp - 4]
push ebx
push 0x4042ba
push edi
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0x10
push 0
push 0
push 0
push edi
call dword [sym.imp.winmm_mciSendStringW]
pop eax
cmp eax, 1
jne 0x46ff45
mov edx, 0x40430a
jmp 0x46ff73
cmp eax, 2
jne 0x46ff51
mov edx, 0x404352
jmp 0x46ff73
cmp eax, 3
jne 0x46ff5d
mov edx, 0x40432c
jmp 0x46ff73
cmp eax, 4
jne 0x46ff69
mov edx, 0x40433e
jmp 0x46ff73
cmp eax, 1
jge 0x46ff73
mov edx, 0x4042fa
push dword [ebp - 4]
push edx
push edi
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0xc
push 0
push 0
push 0
push edi
call dword [sym.imp.winmm_mciSendStringW]
jmp 0x4700ca
cmp eax, 2
jne 0x4700ca
mov eax, dword [0x40153c]
test eax, eax
je 0x4700ca
mov eax, dword [ebp - 0xc]
cmp eax, 1
jge 0x46ffbc
call dword [0x401568]
jmp 0x4700ca
cmp eax, 1
jne 0x46ffe5
call dword [0x401548]
push 0x80000510
push 0
push 0
push dword [ebx]
push 1
call dword [0x401558]
call dword [0x401560]
jmp 0x4700ca
cmp eax, 2
jne 0x47000e
call dword [0x401548]
push 0x80002514
push 0
push 0
push dword [ebx]
push 1
call dword [0x401558]
call dword [0x401560]
jmp 0x4700ca
cmp eax, 3
jne 0x47001e
call dword [0x40155c]
jmp 0x4700ca
cmp eax, 4
jne 0x47002e
call dword [0x401560]
jmp 0x4700ca
cmp eax, 5
jne 0x470076
push 0x10
call fcn.0046bf6e
mov edi, eax
call dword [0x401550]
mov edx, eax
and eax, 0xff
sar edx, 0x10
push edx
push eax
nop
call fcn.00470068
and eax, 0x33003000
add byte [ebp], dh
cmp al, byte [eax]
and eax, 0x33003000
add byte [ebp], dh
add byte [eax], al
cmp eax, 6
jne 0x470093
call dword [0x401550]
sub ax, 1
and eax, 0xff
push eax
call dword [0x401564]
jmp 0x4700ca
cmp eax, 7
jne 0x4700b0
call dword [0x401550]
add ax, 1
and eax, 0xff
push eax
call dword [0x401564]
jmp 0x4700ca
cmp eax, 8
jne 0x4700bf
push 0
call dword [0x40154c]
jmp 0x4700ca
cmp eax, 9
jne 0x4700ca
call dword [0x401554]