Function at 0x4151b0
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x8120
call fcn.00465040
mov eax, dword [0x4c07e0]
xor eax, ebp
mov dword [ebp - 4], eax
movaps xmm0, xmmword [0x4921d0]
movups xmmword [ebp - 0x8104], xmm0
mov eax, dword [ebp + 0xc]
movaps xmm0, xmmword [0x4921e0]
movups xmmword [ebp - 0x80f4], xmm0
push ebx
movaps xmm0, xmmword [0x4921f0]
movups xmmword [ebp - 0x80e4], xmm0
push esi
movaps xmm0, xmmword [0x492260]
xor esi, esi
movups xmmword [ebp - 0xb8], xmm0
push edi
movaps xmm0, xmmword [0x4921c0]
movups xmmword [ebp - 0xa8], xmm0
mov edi, dword [ebp + 8]
movaps xmm0, xmmword [0x492240]
movups xmmword [ebp - 0x98], xmm0
push 0x8000
movaps xmm0, xmmword [0x492200]
movups xmmword [ebp - 0x88], xmm0
mov dword [ebp - 0x8118], eax
lea eax, [ebp - 0x80b8]
movaps xmm0, xmmword [0x492250]
movups xmmword [ebp - 0x78], xmm0
push esi
movaps xmm0, xmmword [0x492230]
movups xmmword [ebp - 0x68], xmm0
push eax
movaps xmm0, xmmword [0x492280]
movups xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x8108], edi
movaps xmm0, xmmword [0x492210]
movups xmmword [ebp - 0x48], xmm0
mov dword [ebp - 8], 0x1400100
movaps xmm0, xmmword [0x492270]
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 0x8114], 0
movaps xmm0, xmmword [0x492220]
movups xmmword [ebp - 0x28], xmm0
mov dword [ebp - 0x8110], 0
movaps xmm0, xmmword [0x492270]
movups xmmword [ebp - 0x18], xmm0
call fcn.00466b60
add esp, 0xc
lea eax, [ebp - 0x810c]
lea ebx, [ebp - 0x80b8]
push esi
push eax
push 0x8000
mov eax, ebx
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ReadFile]
neg eax
sbb eax, eax
and dword [ebp - 0x810c], eax
mov eax, dword [ebp - 0x80b8]
cmp al, 0x49
jne 0x4153b3
cmp ah, 0x44
jne 0x4153b3
cmp byte [ebp - 0x80b6], 0x33
jne 0x4153b3
cmp byte [ebp - 0x80b5], 0xff
je 0x4153b3
cmp byte [ebp - 0x80b4], 0xff
je 0x4153b3
mov al, byte [ebp - 0x80b2]
cmp al, 0x80
jae 0x4153b3
mov dl, byte [ebp - 0x80b1]
cmp dl, 0x80
jae 0x4153b3
mov dh, byte [ebp - 0x80b0]
cmp dh, 0x80
jae 0x4153b3
cmp byte [ebp - 0x80af], 0x80
mov edi, dword [ebp + 0x10]
jae 0x4153b6
movzx ecx, al
shl ecx, 7
movzx eax, dl
add ecx, eax
movzx eax, dh
shl ecx, 7
add ecx, eax
movzx eax, byte [ebp - 0x80af]
shl ecx, 7
add eax, 0xa
add eax, ecx
push 0
cmp eax, edi
push 0
cmovl esi, eax
push esi
push dword [ebp - 0x8108]
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push 0
lea eax, [ebp - 0x810c]
push eax
push 0x8000
mov eax, ebx
push eax
push dword [ebp - 0x8108]
call dword [sym.imp.KERNEL32.dll_ReadFile]
neg eax
sbb eax, eax
and dword [ebp - 0x810c], eax
jmp 0x4153b6
mov edi, dword [ebp + 0x10]
lea eax, [ebp - 0x80b8]
mov dword [ebp - 0x80d4], 0
push eax
xorps xmm0, xmm0
lea eax, [ebp - 0x80d4]
push eax
movups xmmword [ebp - 0x80d0], xmm0
movq qword [ebp - 0x80c0], xmm0
call fcn.00415980
add esp, 8
test eax, eax
je 0x415432
test byte [ebp - 0x80cc], 1
je 0x415432
mov eax, dword [ebp - 0x80d0]
mov ecx, dword [ebp - 0x80c8]
mov dword [ebp - 0x8114], ecx
test eax, eax
je 0x41542a
cmp dword [ebp - 0x80d4], 0
mov edx, 0x480
push eax
mov eax, 0x240
cmovne eax, edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_MulDiv]
jmp 0x41542c
xor eax, eax
mov dword [ebp - 0x8110], eax
mov eax, dword [ebp - 0x810c]
sub edi, esi
mov dword [ebp + 0x10], edi
test eax, eax
js 0x415692
dec eax
push ebx
mov dword [ebp - 0x810c], eax
call fcn.00415930
mov ecx, eax
inc ebx
shr ecx, 6
mov edx, eax
and ecx, 3
mov dword [ebp - 0x8108], ebx
mov dword [ebp - 0x811c], ecx
mov ebx, eax
mov edi, eax
shr edx, 0xc
mov ecx, eax
shr ebx, 0xa
mov esi, eax
shr edi, 0x13
shr ecx, 0x14
and eax, 0xffe00000
shr esi, 0x11
and ecx, 1
add esp, 4
mov dword [ebp - 0x8120], ecx
and edx, 0xf
and ebx, 3
and edi, 1
and esi, 3
cmp eax, 0xffe00000
jne 0x4154be
cmp edx, 0xf
je 0x4154be
test edx, edx
je 0x4154be
test esi, esi
je 0x4154be
cmp ebx, 3
je 0x4154be
test ecx, ecx
jne 0x4154d7
test edi, edi
je 0x4154d7
mov eax, dword [ebp - 0x810c]
test eax, eax
js 0x415692
mov ebx, dword [ebp - 0x8108]
jmp 0x415445
lea ecx, [edi + edi*2]
mov dword [ebp - 0x80c8], str.Stereo
sub ecx, esi
mov dword [ebp - 0x80c4], str.Joint_Stereo
mov eax, ecx
mov dword [ebp - 0x80c0], str.2_Channel
shl eax, 4
sub eax, ecx
mov dword [ebp - 0x80bc], str.Mono
add eax, edx
movsx eax, word [ebp + eax*2 - 0x5e]
mov dword [ebp - 0x8108], eax
imul eax, eax, 0x3e8
cmp dword [ebp - 0x8114], 0
jne 0x415540
test eax, eax
mov ecx, 1
cmovne ecx, eax
mov eax, dword [ebp + 0x10]
shl eax, 3
cdq
idiv ecx
mov dword [ebp - 0x8110], eax
mov eax, dword [ebp - 0x8118]
mov ecx, eax
mov byte [eax], 0
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415550
mov eax, 4
sub ecx, edx
sub eax, esi
mov esi, dword [ebp - 0x8118]
push eax
push str.MP_d
lea eax, [ecx + esi]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
cmp dword [ebp - 0x8114], 0
jne 0x41559d
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x415587
push dword [ebp - 0x8108]
sub ecx, edx
push str.__dkbps
jmp 0x4155e0
mov eax, dword [ebp - 0x8110]
test eax, eax
je 0x4155b5
imul eax, eax, 0x3e8
mov dword [ebp - 0x8108], eax
jmp 0x4155bf
mov dword [ebp - 0x8108], 1
mov ecx, esi
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4155c4
mov eax, dword [ebp + 0x10]
sub ecx, edx
shl eax, 3
cdq
idiv dword [ebp - 0x8108]
push eax
push str.__dkbps_VBR
lea eax, [ecx + esi]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
lea ecx, [esi + 1]
mov al, byte [esi]
inc esi
test al, al
jne 0x4155f0
mov eax, dword [ebp - 0x811c]
sub esi, ecx
push dword [ebp + eax*4 - 0x80c8]
mov eax, dword [ebp - 0x8120]
lea ecx, [edi + eax*2]
lea eax, [ebx + ecx*2]
mov ebx, dword [ebp - 0x8118]
add eax, ecx
mov ecx, dword [ebp + eax*4 - 0x8104]
mov eax, 0x10624dd3
imul ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
lea eax, [esi + ebx]
push str.__dkHz__s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov esi, ebx
add esp, 0x10
lea ecx, [esi + 1]
nop word [eax + eax]
mov al, byte [esi]
inc esi
test al, al
jne 0x415650
mov edi, dword [ebp - 0x8110]
mov eax, 0x88888889
imul edi
sub esi, ecx
add edx, edi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov eax, ecx
shl eax, 4
sub eax, ecx
shl eax, 2
sub edi, eax
lea eax, [esi + ebx]
push edi
push ecx
push str.__d:_02d
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00464e2f
mov esp, ebp
pop ebp
ret 0xc