Function at 0x40b4fd
Capabilities:
Read file on windows

Disassembly:
mov eax, 0x40ed94
call fcn.0040db00
sub esp, 0x15c
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0x50], esi
xor ebx, ebx
mov dword [ebp - 4], ebx
call fcn.0040ad53
mov eax, dword [ebp + 0xc]
mov dword [esi], 0x40f510
cmp eax, ebx
jne 0x40b531
mov eax, dword [sym.imp.MSVCP60.dll_char_const__private:_static_char_const____cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Nullstr_void_::_2::_C]
push 0x4146e0
push eax
call dword [sym.imp.MSVCRT.dll_fopen]
mov esi, eax
pop ecx
cmp esi, ebx
pop ecx
mov dword [ebp - 0x10], esi
je 0x40bdb4
mov dword [ebp - 0x70], esi
push 2
push 0xffffffffffffff80
push esi
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCRT.dll_fseek]
push esi
push 1
pop edi
lea eax, [ebp - 0x168]
push edi
push 0x80
push eax
call dword [sym.imp.MSVCRT.dll_fread]
push 3
lea eax, [ebp - 0x168]
push 0x4146dc
push eax
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0x28
test eax, eax
je 0x40b596
push esi
jmp 0x40bdab
mov al, byte [ebp + 0x17]
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x30], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, str.title
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov al, byte [ebp + 0x17]
push ebx
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 3
mov byte [ebp - 0x48], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea eax, [ebp - 0x165]
push 0x1e
push eax
lea ecx, [ebp - 0x48]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov eax, dword [ebp - 0x50]
mov byte [ebp - 4], 4
lea ecx, [eax + 8]
lea eax, [ebp - 0x30]
push eax
mov dword [ebp - 0x14], ecx
call fcn.0040be01
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
push dword [ecx]
lea ecx, [ebp - 0x48]
push ebx
push ecx
mov ecx, eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push edi
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 3
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push edi
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [ebp + 0x17]
push ebx
lea ecx, [ebp - 0x48]
mov byte [ebp - 0x48], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, str.artist
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x48]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov al, byte [ebp + 0x17]
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 5
mov byte [ebp - 0x30], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea eax, [ebp - 0x147]
push 0x1e
push eax
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x48]
push eax
mov byte [ebp - 4], 6
call fcn.0040be01
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
push dword [ecx]
lea ecx, [ebp - 0x30]
push ebx
push ecx
mov ecx, eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push edi
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 5
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push edi
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [ebp + 0x17]
push ebx
lea ecx, [ebp - 0x48]
mov byte [ebp - 0x48], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, str.album
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x48]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov al, byte [ebp + 0x17]
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 7
mov byte [ebp - 0x30], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea eax, [ebp - 0x129]
push 0x1e
push eax
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x48]
push eax
mov byte [ebp - 4], 8
call fcn.0040be01
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
push dword [ecx]
lea ecx, [ebp - 0x30]
push ebx
push ecx
mov ecx, eax
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push edi
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 7
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push edi
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [ebp + 0x17]
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x30], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, str.type
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x30]
push eax
mov byte [ebp - 4], 9
call fcn.0040be01
mov esi, str.audio
mov dword [ebp - 0x18], eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
mov ecx, dword [ebp - 0x18]
push eax
push esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push edi
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [ebp + 0x17]
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x30], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, str.subtype
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x30]
push eax
mov byte [ebp - 4], 0xa
call fcn.0040be01
mov esi, 0x4146a8
mov dword [ebp - 0x18], eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
mov ecx, dword [ebp - 0x18]
push eax
push esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push edi
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [ebp + 0x17]
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x30], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, str.time
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x30]
push eax
mov byte [ebp - 4], 0xb
call fcn.0040be01
mov esi, 0x41469c
mov dword [ebp - 0x18], eax
push esi
call sub.MSVCRT.dll_strlen
pop ecx
mov ecx, dword [ebp - 0x18]
push eax
push esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push edi
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [ebp + 0x17]
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x30], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push str.bitrate
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push str.bitrate
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0xc
push eax
mov eax, dword [ebp - 0x50]
lea ecx, [eax + 8]
call fcn.0040be01
push esi
mov dword [ebp - 0x18], eax
call sub.MSVCRT.dll_strlen
pop ecx
mov ecx, dword [ebp - 0x18]
push eax
push esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push edi
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov eax, dword [ebp - 0x50]
mov esi, dword [sym.imp.MSVCRT.dll_fseek]
push ebx
push ebx
push dword [ebp - 0x10]
mov byte [eax + 4], 1
mov dword [ebp - 0x20], ebx
call esi
push dword [ebp - 0x10]
lea eax, [ebp - 0x6c]
push edi
push 0xa
push eax
call dword [sym.imp.MSVCRT.dll_fread]
push 3
lea eax, [ebp - 0x6c]
push 0x414690
push eax
call dword [sym.imp.MSVCRT.dll_strncmp]
add esp, 0x28
test eax, eax
je 0x40b907
mov dword [ebp - 0x20], ebx
jmp 0x40b923
xor eax, eax
movzx ecx, byte [ebp + eax - 0x66]
mov edx, dword [ebp - 0x20]
shl edx, 7
add ecx, edx
inc eax
cmp eax, 3
mov dword [ebp - 0x20], ecx
jle 0x40b909
add dword [ebp - 0x20], 0xa
mov eax, dword [ebp - 0x10]
push dword [eax + 0x10]
call dword [sym.imp.MSVCRT.dll__filelength]
pop ecx
mov dword [ebp - 0x1c], ebx
push 0xffffffffffffff80
pop ecx
sub ecx, dword [ebp - 0x20]
add eax, ecx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
add eax, ecx
push ebx
push eax
push dword [ebp - 0x10]
call esi
push dword [ebp - 0x10]
lea eax, [ebp - 0x14]
push edi
push 4
push eax
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x1c
cmp eax, edi
jne 0x40bda8
cmp byte [ebp - 0x14], 0xff
jne 0x40b98b
mov al, byte [ebp - 0x13]
and al, 0xe0
cmp al, 0xe0
jne 0x40b98b
mov al, byte [ebp - 0x12]
and al, 0xf0
je 0x40b98b
cmp al, 0xf0
je 0x40b98b
mov al, byte [ebp - 0x12]
and al, 0xc
cmp al, 0xc
jne 0x40b997
inc dword [ebp - 0x1c]
cmp dword [ebp - 0x1c], 0x400
jl 0x40b93e
cmp dword [ebp - 0x1c], 0x400
je 0x40bda8
movzx edx, byte [ebp - 0x13]
mov eax, edx
push 3
shr eax, 3
pop ecx
and eax, ecx
mov dword [ebp - 0x4c], eax
sub eax, ebx
je 0x40b9da
dec eax
je 0x40bda8
dec eax
je 0x40b9d1
dec eax
jne 0x40bda8
mov dword [ebp - 0x34], ecx
xor ecx, ecx
jmp 0x40b9df
mov dword [ebp - 0x34], 2
jmp 0x40b9dd
mov dword [ebp - 0x34], ebx
mov ecx, edi
shr edx, 1
and edx, 3
mov eax, edx
dec eax
je 0x40b9f3
dec eax
je 0x40b9f3
dec eax
jne 0x40bda8
movzx eax, byte [ebp - 0x12]
lea ecx, [ecx + ecx*2]
sub ecx, edx
mov edx, eax
shl ecx, 4
shr edx, 4
add ecx, edx
mov ecx, dword [ecx*4 + 0x414588]
cmp ecx, 0xffffffff
mov dword [ebp - 0x58], ecx
je 0x40bda8
mov edx, dword [ebp - 0x4c]
push 3
shr eax, 2
pop ecx
and eax, ecx
lea eax, [eax + edx*4]
mov eax, dword [eax*4 + 0x414648]
cmp eax, ebx
mov dword [ebp - 0x54], eax
je 0x40bda8
movzx eax, byte [ebp - 0x11]
shr eax, 6
sub eax, ebx
je 0x40ba5e
dec eax
je 0x40ba5a
dec eax
je 0x40ba55
dec eax
jne 0x40bda8
mov eax, ecx
jmp 0x40ba60
push 2
pop eax
jmp 0x40ba60
mov eax, edi
jmp 0x40ba60
xor eax, eax
cmp dword [ebp - 0x34], ecx
jne 0x40ba75
xor edx, edx
cmp eax, ecx
setne dl
dec edx
and edx, 0xfffffff1
add edx, 0x20
jmp 0x40ba83
xor edx, edx
cmp eax, ecx
setne dl
dec edx
and edx, 0xfffffff8
add edx, 0x11
push edi
push edx
push dword [ebp - 0x10]
mov dword [ebp - 0x34], edx
call esi
add esp, 0xc
cmp dword [ebp - 0x1c], ebx
je 0x40bb60
push ebx
push dword [ebp - 0x20]
push dword [ebp - 0x10]
call esi
mov al, byte [ebp + 0x17]
add esp, 0xc
mov byte [ebp - 0x48], al
mov dword [ebp - 0x44], ebx
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
lea eax, [ebp - 0x35]
lea ecx, [ebp - 0x48]
push eax
mov byte [ebp - 4], 0xd
push dword [ebp - 0x1c]
mov byte [ebp - 0x35], bl
call fcn.0040be87
push dword [ebp - 0x10]
push edi
push dword [ebp - 0x1c]
push dword [ebp - 0x44]
call dword [sym.imp.MSVCRT.dll_fread]
mov eax, dword [ebp - 0x44]
add esp, 0x10
mov dword [ebp - 0x4c], eax
mov al, byte [ebp + 0x17]
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x30], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push dword [ebp - 0x1c]
lea ecx, [ebp - 0x30]
push dword [ebp - 0x4c]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push str.Xing
mov byte [ebp - 4], 0xe
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push ebx
push str.Xing
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP60.dll_public:_unsigned_int___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::find_char_const___unsigned_int__unsigned_int_const]
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
push ebx
cmp eax, dword [ecx]
je 0x40bb33
mov ecx, dword [ebp - 0x20]
add eax, ecx
jmp 0x40bb3d
mov eax, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x20]
lea eax, [eax + ecx + 4]
push eax
push dword [ebp - 0x10]
call esi
add esp, 0xc
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 0xd
push edi
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 2
call fcn.00409cb7
push dword [ebp - 0x10]
lea eax, [ebp - 0xe8]
mov dword [ebp - 0x1c], ebx
push edi
push 8
push eax
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x10
cmp byte [ebp - 0xe8], 0x58
mov byte [ebp - 0xe0], bl
jne 0x40bc88
cmp byte [ebp - 0xe7], 0x69
jne 0x40bc88
cmp byte [ebp - 0xe6], 0x6e
jne 0x40bc88
cmp byte [ebp - 0xe5], 0x67
jne 0x40bc88
lea eax, [ebp - 0xe4]
push eax
call fcn.0040bde3
lea ecx, [ebp - 0xe0]
mov edx, eax
mov dword [ebp - 0x20], ecx
mov ecx, eax
mov dword [ebp - 0x60], eax
and ecx, edi
and edx, 2
mov dword [ebp - 0x14], eax
and dword [ebp - 0x14], 4
mov dword [ebp - 0x4c], ecx
shr eax, 1
lea ecx, [edx + ecx*2 + 4]
and eax, 4
push dword [ebp - 0x10]
mov dword [ebp - 0x5c], edx
lea esi, [eax + ecx*2]
mov eax, dword [ebp - 0x14]
neg eax
sbb eax, eax
push edi
and eax, 0x64
add esi, eax
lea eax, [esi - 8]
push eax
lea eax, [ebp - 0xe0]
push eax
call dword [sym.imp.MSVCRT.dll_fread]
add esp, 0x14
cmp dword [ebp - 0x4c], ebx
mov byte [ebp + esi - 0xe8], bl
je 0x40bc35
lea eax, [ebp - 0xe0]
push eax
call fcn.0040bde3
pop ecx
mov dword [ebp - 0x34], eax
lea esi, [ebp - 0xdc]
jmp 0x40bc3b
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x34], ebx
cmp dword [ebp - 0x5c], ebx
je 0x40bc4d
push esi
call fcn.0040bde3
pop ecx
mov dword [ebp - 0x1c], eax
add esi, 4
cmp dword [ebp - 0x14], ebx
je 0x40bc55
add esi, 0x64
test byte [ebp - 0x60], 8
je 0x40bc62
push esi
call fcn.0040bde3
pop ecx
cmp dword [ebp - 0x34], ebx
jle 0x40bc88
mov eax, dword [ebp - 0x1c]
cmp eax, ebx
jne 0x40bc71
mov eax, dword [ebp - 0x18]
cdq
idiv dword [ebp - 0x34]
mov ecx, 0x90
imul eax, dword [ebp - 0x54]
cdq
idiv ecx
cmp eax, ebx
je 0x40bc88
mov dword [ebp - 0x58], eax
mov eax, dword [ebp - 0x58]
cmp eax, ebx
je 0x40bcad
push 8
cdq
fild dword [ebp - 0x18]
pop ecx
idiv ecx
push ecx
mov dword [ebp - 0x54], eax
fidiv dword [ebp - 0x54]
fstp dword [esp]
call fcn.0040b4bf
pop ecx
mov dword [ebp - 0x18], eax
jmp 0x40bcb0
mov dword [ebp - 0x18], ebx
mov al, byte [ebp + 0x17]
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x30], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, str.time
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push dword [ebp - 0x18]
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 0xf
push eax
call fcn.0040900b
pop ecx
mov esi, eax
pop ecx
lea eax, [ebp - 0x30]
mov byte [ebp - 4], 0x10
push eax
mov eax, dword [ebp - 0x50]
lea ecx, [eax + 8]
mov dword [ebp - 0x14], ecx
call fcn.0040be01
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
push dword [ecx]
mov ecx, eax
push ebx
push esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
push edi
lea ecx, [ebp - 0x48]
mov byte [ebp - 4], 0xf
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push edi
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov al, byte [ebp + 0x17]
push ebx
lea ecx, [ebp - 0x30]
mov byte [ebp - 0x30], al
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov esi, str.bitrate
push esi
call sub.MSVCRT.dll_strlen
pop ecx
push eax
push esi
lea ecx, [ebp - 0x30]
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
push dword [ebp - 0x58]
lea eax, [ebp - 0x48]
mov byte [ebp - 4], 0x11
push eax
call fcn.0040900b
pop ecx
mov esi, eax
pop ecx
mov ecx, dword [ebp - 0x14]
lea eax, [ebp - 0x30]
push eax
mov byte [ebp - 4], 0x12
call fcn.0040be01
mov ecx, dword [sym.imp.MSVCP60.dll_unsigned_int_const_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::npos]
push dword [ecx]
mov ecx, eax
push ebx
push esi
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const___unsigned_int__unsigned_int_]
mov byte [ebp - 4], 0x11
push edi
lea ecx, [ebp - 0x48]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push edi
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 2
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
push dword [ebp - 0x10]
call dword [sym.imp.MSVCRT.dll_fclose]
pop ecx
jmp 0x40bdb7
push 1
pop edi
or dword [ebp - 4], 0xffffffff
push edi
lea ecx, [ebp + 8]
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
mov ecx, dword [ebp - 0xc]
mov eax, dword [ebp - 0x50]
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0x10