Function at 0x46fa80
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 - 4], 0
mov dword [ebp - 0xc], 1
call fcn.00474395
mov esi, dword [0x404fac]
cmp dword [0x404f6c], 3
je 0x46fada
cmp dword [0x404f6c], 0xb
je 0x46fada
cmp dword [0x404f6c], 8
jne 0x46facd
cmp eax, 0xe1
jl 0x46facd
cmp eax, 0xf4
jle 0x46fada
cmp dword [0x404f6c], 0xa
jne 0x46fc6b
lea edx, [ebp - 0x10]
push edx
call fcn.0046eb6f
mov ebx, dword [ebp - 0x10]
push ebx
call dword [sym.imp.shlwapi.dll_PathFindExtensionW]
mov edi, eax
push 0x403e26
push eax
call dword [sym.imp.kernel32.dll_lstrcmpiW]
test eax, eax
jne 0x46fb18
mov dword [ebp - 4], 2
call fcn.00472bfb
cmp word [esi], 0x2c
jne 0x46fb16
add esi, 2
jmp 0x46fb84
jmp 0x46fb5f
push 0x403e38
push edi
call dword [sym.imp.kernel32.dll_lstrcmpiW]
test eax, eax
je 0x46faff
push 0x403e30
push edi
call dword [sym.imp.kernel32.dll_lstrcmpiW]
test eax, eax
je 0x46faff
push 0x403e1c
push edi
call dword [sym.imp.kernel32.dll_lstrcmpiW]
test eax, eax
jne 0x46fb4f
mov dword [ebp - 4], 1
call fcn.00472bfb
cmp word [esi], 0x2c
jne 0x46fb5f
add esi, 2
jmp 0x46fb84
lea edx, [ebp - 8]
push edx
call fcn.004759ae
cmp dword [ebp - 8], 0
jle 0x46fb5f
mov ebx, dword [ebp - 0x10]
nop
call fcn.0046fba6
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 - 8]
push edx
call fcn.004759ae
call fcn.00472bfb
cmp word [esi], 0x2c
jne 0x46fc8b
add esi, 2
lea edx, [ebp - 0xc]
push edx
call fcn.004759ae
cmp dword [ebp - 8], 0
jle 0x46fb5f
mov eax, dword [ebp - 8]
mov ebx, dword [0x404f58]
test eax, eax
jl 0x46fb5f
call fcn.0046c4e4
test eax, eax
jl 0x46fee8
mov eax, dword [ebx + 8]
cmp eax, 0
jne 0x46fcd1
mov eax, dword [ebp - 0xc]
or eax, 7
push eax
push 0
push dword [ebx]
call dword [sym.imp.winmm_PlaySoundW]
jmp 0x46fee8
cmp eax, 1
jne 0x46fdb2
mov dword [0x404fdc], 0
mov eax, dword [ebp - 0xc]
mov edi, dword [0x404f70]
cmp eax, 1
je 0x46fcf7
cmp eax, 2
jne 0x46fd55
push eax
push dword [ebp - 8]
push 0x4042ce
push edi
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0xc
push 0
push 0
push 0x404fdc
push edi
call dword [sym.imp.winmm_mciSendStringW]
mov eax, dword [ebx]
mov ebx, dword [0x404f74]
push eax
push ebx
call dword [sym.imp.kernel32.dll_lstrcpyW]
push eax
call dword [sym.imp.shlwapi.dll_PathQuoteSpacesW]
push dword [ebp - 8]
push ebx
push 0x40426e
push edi
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0x10
push 0
push 0
push 0x404fdc
push edi
call dword [sym.imp.winmm_mciSendStringW]
pop eax
cmp eax, 1
jne 0x46fd61
mov edx, 0x4042be
jmp 0x46fd8f
cmp eax, 2
jne 0x46fd6d
mov edx, 0x404306
jmp 0x46fd8f
cmp eax, 3
jne 0x46fd79
mov edx, 0x4042e0
jmp 0x46fd8f
cmp eax, 4
jne 0x46fd85
mov edx, 0x4042f2
jmp 0x46fd8f
cmp eax, 1
jge 0x46fd8f
mov edx, 0x4042ae
push dword [ebp - 8]
push edx
push edi
call dword [sym.imp.user32.dll_wsprintfW]
add esp, 0xc
push 0
push 0
push 0x404fdc
push edi
call dword [sym.imp.winmm_mciSendStringW]
jmp 0x46fee8
cmp eax, 2
jne 0x46fee8
mov eax, dword [0x40153c]
test eax, eax
je 0x46fee8
mov eax, dword [ebp - 0xc]
cmp eax, 1
jge 0x46fddb
call dword [0x401568]
jmp 0x46fee8
cmp eax, 1
jne 0x46fe04
call dword [0x401548]
push 0x80000510
push 0
push 0
push dword [ebx]
push 1
call dword [0x401558]
call dword [0x401560]
jmp 0x46fee8
cmp eax, 2
jne 0x46fe2d
call dword [0x401548]
push 0x80002514
push 0
push 0
push dword [ebx]
push 1
call dword [0x401558]
call dword [0x401560]
jmp 0x46fee8
cmp eax, 3
jne 0x46fe3d
call dword [0x40155c]
jmp 0x46fee8
cmp eax, 4
jne 0x46fe4d
call dword [0x401560]
jmp 0x46fee8
cmp eax, 5
jne 0x46fe94
push 0x10
call fcn.0046bf84
mov edi, eax
call dword [0x401550]
mov edx, eax
and eax, 0xff
sar edx, 0x10
push edx
push eax
call fcn.0046fe86
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 0x46feb1
call dword [0x401550]
sub ax, 1
and eax, 0xff
push eax
call dword [0x401564]
jmp 0x46fee8
cmp eax, 7
jne 0x46fece
call dword [0x401550]
add ax, 1
and eax, 0xff
push eax
call dword [0x401564]
jmp 0x46fee8
cmp eax, 8
jne 0x46fedd
push 0
call dword [0x40154c]
jmp 0x46fee8
cmp eax, 9
jne 0x46fee8
call dword [0x401554]