Function at 0x408185
Capabilities:
Read file on windows

Disassembly:
mov eax, 0x41aef5
call fcn.0041a140
mov eax, 0x30f0
call fcn.0041a1e0
mov eax, dword [0x429080]
xor eax, dword [ebp + 4]
push ebx
push esi
push edi
mov esi, 0x800
push esi
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0xae4]
push 0
push eax
call sub.MMVCR70.dll_memset
mov edi, dword [ebp + 8]
mov ebx, dword [sym.imp.MMVCR70.dll_wcscat]
add esp, 0xc
cmp edi, 9
jg 0x408343
cmp edi, 5
jge 0x4082ef
mov eax, edi
sub eax, 0
je 0x4082ae
dec eax
je 0x408217
dec eax
je 0x408309
dec eax
je 0x4084e7
dec eax
jne 0x408361
mov eax, dword [ebp + 0x10]
add eax, 0x84
push eax
lea eax, [ebp - 0xae4]
push eax
call dword [sym.imp.MMVCR70.dll_wcscpy]
jmp 0x40850c
lea ecx, [ebp - 0x14]
call fcn.00404f11
and dword [ebp - 4], 0
mov edi, 0xa0
push edi
lea eax, [ebp - 0xdc]
push 0
push eax
call sub.MMVCR70.dll_memset
add esp, 0xc
push edi
lea eax, [ebp - 0xdc]
push eax
push dword [ebp + 0xc]
lea ecx, [ebp - 0x14]
call fcn.004055da
lea eax, [ebp - 0xdc]
push eax
call dword [sym.imp.MMVCR70.dll_wcslen]
cmp eax, 2
pop ecx
jbe 0x408277
lea eax, [ebp - 0xdc]
push eax
lea eax, [ebp - 0xae4]
push esi
push eax
call fcn.00405b03
add esp, 0xc
push dword [ebp + 0x14]
lea eax, [ebp - 0xae4]
push eax
push dword [ebp + 0xc]
call fcn.00405c15
or dword [ebp - 4], 0xffffffff
add esp, 0xc
test al, al
lea ecx, [ebp - 0x14]
jne 0x4082a1
call fcn.00404f28
jmp 0x408584
call fcn.00404f28
mov edi, dword [ebp + 8]
jmp 0x40850e
lea eax, [ebp - 0xae4]
push 0x104
push eax
call fcn.004059f0
lea eax, [ebp - 0xae4]
push str.Skins
push eax
call ebx
push dword [ebp + 0x14]
lea eax, [ebp - 0xae4]
push eax
push dword [ebp + 0xc]
call fcn.00405c15
add esp, 0x1c
test al, al
jne 0x40850e
jmp 0x408584
mov esi, dword [ebp + 0x10]
push dword [esi + 8]
lea eax, [esi + 0xc]
push eax
call fcn.004057bf
test eax, eax
pop ecx
pop ecx
jne 0x40830c
jmp 0x408584
mov esi, dword [ebp + 0x10]
lea eax, [ebp - 0xae4]
push 0x104
push eax
call fcn.004059f0
lea eax, [ebp - 0xae4]
push 0x41c868
push eax
call ebx
add esi, 0x84
lea eax, [ebp - 0xae4]
push esi
push eax
call ebx
add esp, 0x18
jmp 0x40850e
mov eax, edi
sub eax, 0xa
je 0x4087d4
dec eax
je 0x4084fb
dec eax
je 0x4084e7
sub eax, 4
je 0x40837f
push edi
push str._ProcessMMZ__failed__bad_type_found__4____d
call fcn.00419ffe
push 0x10
push 0x79
push 0x67
call fcn.00405740
add esp, 0x14
jmp 0x408584
lea eax, [ebp - 0xae4]
push 0x104
push eax
call fcn.004059f0
push 0x1208
lea eax, [ebp - 0x30fc]
push 0
push eax
call sub.MMVCR70.dll_memset
lea eax, [ebp - 0x30fc]
push 0x41c764
push eax
call dword [sym.imp.MMVCR70.dll_wcscpy]
mov ebx, dword [sym.imp.MMVCR70.dll_wcscat]
lea eax, [ebp - 0xae4]
push eax
lea eax, [ebp - 0x30fc]
push eax
call ebx
lea eax, [ebp - 0x30fc]
push 0x41c5a4
push eax
call ebx
lea eax, [ebp - 0x30fc]
push 0x41ebec
push eax
call ebx
push 0x41c2cc
push dword [ebp + 0xc]
call dword [sym.imp.MMVCR70.dll__wfopen]
mov edi, eax
add esp, 0x3c
test edi, edi
mov dword [ebp - 0x14], edi
je 0x4084d4
push 0
push 8
push edi
call dword [sym.imp.MMVCR70.dll_fseek]
and dword [ebp + 8], 0
push edi
mov edi, dword [sym.imp.MMVCR70.dll_fread]
push 1
lea eax, [ebp + 8]
push 4
push eax
call edi
add esp, 0x1c
cmp dword [ebp + 8], esi
jbe 0x40843c
push dword [ebp - 0x14]
call dword [sym.imp.MMVCR70.dll_fclose]
pop ecx
jmp 0x408584
push esi
lea eax, [ebp - 0x12e4]
push 0
push eax
call sub.MMVCR70.dll_memset
push dword [ebp - 0x14]
xor esi, esi
push dword [ebp + 8]
inc esi
lea eax, [ebp - 0x12e4]
push esi
push eax
call edi
push dword [ebp - 0x14]
call dword [sym.imp.MMVCR70.dll_fclose]
push 0
lea eax, [ebp - 0x12e4]
push eax
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.CoreDll.dll_class_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int_____cdecl_mfConvertMBCSToT_char_const___unsigned_int_]
push dword [ebp + 8]
mov dword [ebp - 4], esi
push str._ProcessMMZ__eFullArgument:_read__d_bytes
call fcn.00419ffe
add esp, 0x34
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MMVCP70.dll_public:_unsigned_short_int_const____thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::c_str_void_const]
push eax
lea eax, [ebp - 0x30fc]
push eax
call ebx
lea eax, [ebp - 0x30fc]
push eax
push str._ProcessMMZ__eFullArgument:_about_to_run_program___s
call fcn.00419ffe
lea eax, [ebp - 0x30fc]
push 0
push eax
call fcn.0040586b
or dword [ebp - 4], 0xffffffff
add esp, 0x18
lea ecx, [ebp - 0x3c]
call dword [sym.imp.MMVCP70.dll_public:_void___thiscall_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void_]
jmp 0x40884c
push dword [ebp + 0xc]
push str._ProcessMMZ__failed_to_open_file___file_s
call fcn.00419ffe
pop ecx
jmp 0x408436
lea eax, [ebp - 0xae4]
push eax
push 0x104
call dword [0x429100]
jmp 0x40850e
lea eax, [ebp - 0xae4]
push 0x104
push eax
call fcn.00405a89
pop ecx
pop ecx
lea eax, [ebp - 0xae4]
push eax
call dword [sym.imp.MMVCR70.dll_wcslen]
xor esi, esi
inc esi
cmp eax, esi
pop ecx
jae 0x408533
push str._ProcessMMZ__failed__bad_install_path
call fcn.00419ffe
push 0x10
push 0x6a
jmp 0x40857a
push 0x208
lea eax, [ebp - 0x2e4]
push 0
push eax
call sub.MMVCR70.dll_memset
add esp, 0xc
test edi, edi
je 0x40858b
cmp edi, esi
je 0x40858b
push 0x104
lea eax, [ebp - 0x2e4]
push eax
push dword [ebp + 0xc]
call fcn.00408009
add esp, 0xc
test al, al
jne 0x4085d2
push str._ProcessMMZ__could_not_extract_zip_from_mmz
call fcn.00419ffe
push 0x10
push 0x68
push 0x67
call fcn.00405740
add esp, 0x10
xor al, al
jmp 0x40884e
push dword [ebp + 0xc]
call dword [sym.imp.MMVCR70.dll_wcslen]
cmp eax, 0x104
pop ecx
push dword [ebp + 0xc]
jbe 0x4085c3
call dword [sym.imp.MMVCR70.dll_wcslen]
push eax
push dword [ebp + 0xc]
push str._ProcessMMZ__theme__sFile___s__is_too_long___d_
call fcn.00419ffe
push 0x10
push 0x68
push 0x67
call fcn.00405740
add esp, 0x1c
jmp 0x408584
lea eax, [ebp - 0x2e4]
push eax
call dword [sym.imp.MMVCR70.dll_wcscpy]
pop ecx
pop ecx
lea eax, [ebp - 0xae4]
push eax
call fcn.00407f6e
pop ecx
lea ecx, [ebp - 0x18]
call fcn.00404f11
lea eax, [ebp - 0xae4]
push eax
lea eax, [ebp - 0x2e4]
push eax
lea ecx, [ebp - 0x18]
mov dword [ebp - 4], 2
call fcn.004055af
test eax, eax
jne 0x40863c
push str._ProcessMMZ__unzip_failed_1
call fcn.00419ffe
push 0x10
push 0x68
push 0x67
call fcn.00405740
add esp, 0x10
cmp edi, esi
je 0x408635
test edi, edi
je 0x408635
lea eax, [ebp - 0x2e4]
push eax
call dword [0x4290d4]
xor bl, bl
jmp 0x4087c4
cmp eax, 2
jne 0x408651
push str._ProcessMMZ__unzip_failed_2
call fcn.00419ffe
push 0x10
push 0x69
jmp 0x408616
cmp edi, esi
je 0x408668
test edi, edi
je 0x408668
lea eax, [ebp - 0x2e4]
push eax
call dword [0x4290d4]
jmp 0x4086a8
push str.InstalledTheme
push str.SOFTWAREMusicMatchMusicMatch_Jukebox4.0MMSkin
lea ecx, [ebp - 0x18]
call fcn.00404f2f
push eax
call fcn.00407a78
add esp, 0xc
test al, al
je 0x4086a8
push 0
push str.MMJB:MAINWND
call dword [0x429130]
test eax, eax
je 0x4086a8
push 0
push 0
push 0x5505
push eax
call dword [0x429148]
cmp edi, 3
je 0x40876a
cmp edi, 0xc
jne 0x4087c2
mov esi, 0x41e8c4
lea edi, [ebp - 0x20]
movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0xae4]
push eax
movsw word es:[edi], word [esi]
call dword [0x429120]
push 0x104
lea eax, [ebp - 0x16f4]
push eax
push 0
call dword [0x4290e8]
mov esi, dword [sym.imp.MMVCR70.dll_wcstok]
lea eax, [ebp - 0x20]
push eax
mov eax, dword [ebp + 0x10]
add eax, 0x84
push eax
call esi
pop ecx
pop ecx
jmp 0x408762
lea eax, [ebp - 0x16f4]
push eax
lea eax, [ebp - 0x1ef4]
push eax
call dword [sym.imp.MMVCR70.dll_wcscpy]
lea eax, [ebp - 0x1ef4]
push str.__s
push eax
call ebx
lea eax, [ebp - 0xae4]
push eax
lea eax, [ebp - 0x1ef4]
push eax
call ebx
lea eax, [ebp - 0x1ef4]
push 0x41c868
push eax
call ebx
lea eax, [ebp - 0x1ef4]
push edi
push eax
call ebx
lea eax, [ebp - 0x1ef4]
push 1
push eax
call fcn.0040586b
lea eax, [ebp - 0x20]
push eax
push 0
call esi
add esp, 0x38
mov edi, eax
test edi, edi
jne 0x4086ff
jmp 0x4087c2
lea eax, [ebp - 0xae4]
push eax
call dword [0x429120]
lea eax, [ebp - 0xae4]
push eax
call dword [sym.imp.MMVCR70.dll_wcslen]
cmp word [ebp + eax*2 - 0xae6], 0x5c
pop ecx
je 0x4087a0
lea eax, [ebp - 0xae4]
push 0x41c868
push eax
call ebx
pop ecx
pop ecx
mov eax, dword [ebp + 0x10]
add eax, 0x84
push eax
lea eax, [ebp - 0xae4]
push eax
call ebx
lea eax, [ebp - 0xae4]
push esi
push eax
call fcn.0040586b
add esp, 0x10
mov bl, 1
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.00404f28
mov al, bl
jmp 0x40884e
lea eax, [ebp - 0xae4]
push 0x104
push eax
call fcn.004059f0
lea eax, [ebp - 0x14ec]
push 0x41c764
push eax
call dword [sym.imp.MMVCR70.dll_wcscpy]
mov esi, dword [sym.imp.MMVCR70.dll_wcscat]
lea eax, [ebp - 0xae4]
push eax
lea eax, [ebp - 0x14ec]
push eax
call esi
lea eax, [ebp - 0x14ec]
push 0x41c5a4
push eax
call esi
lea eax, [ebp - 0x14ec]
push 0x41ebec
push eax
call esi
mov eax, dword [ebp + 0x10]
add eax, 0x84
push eax
lea eax, [ebp - 0x14ec]
push eax
call esi
lea eax, [ebp - 0x14ec]
push 0
push eax
call fcn.0040586b
add esp, 0x38
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
xor ecx, dword [ebp + 4]
pop edi
pop esi
pop ebx
call fcn.0041a123
leave
ret