Function at 0x4026f0
Capabilities:
Get common file path

Disassembly:
sub esp, 0x348
push ebx
push ebp
mov ebp, dword [esp + 0x368]
push esi
push edi
mov cx, word [ebp]
mov eax, ecx
and eax, 0xffff
dec eax
je 0x402b0b
cmp cx, 2
jne 0x402724
mov eax, dword [0x40b638]
mov dword [esp + 0x14], eax
jmp 0x402739
mov eax, dword [0x40b640]
xor edx, edx
cmp cx, 0x11
setne dl
dec edx
and edx, eax
mov dword [esp + 0x14], edx
lea eax, [esp + 0x4c]
push eax
push 0
push str.w2m3i
push 0x40a5b0
call dword [sym.imp.KERNEL32.dll_GetTempFileNameA]
push 0x180
lea ecx, [esp + 0x50]
push 0x8301
push ecx
call fcn.0040390c
mov ebx, eax
add esp, 0xc
cmp ebx, 0xffffffff
jne 0x4027b2
lea edx, [esp + 0x4c]
lea eax, [esp + 0x150]
push edx
push str.Error_opening__s_for_writing_intermediate_conversion_data
push eax
call fcn.004032ee
mov edx, dword [esp + 0x368]
add esp, 0xc
lea ecx, [esp + 0x150]
push 0x10
push str.Error
push ecx
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x348
ret
mov esi, dword [esp + 0x36c]
push 0xb0000
mov eax, esi
push 0x1e
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
mov word [esp + 0x20], 1
mov edx, dword [eax + 4]
mov dword [esp + 0x24], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x20]
mov edx, dword [eax + 0xc]
push ecx
mov dword [esp + 0x30], edx
mov edx, dword [0x40b63c]
mov ax, word [eax + 0x10]
push esi
mov word [esp + 0x38], ax
push edx
mov word [esp + 0x3a], 0x10
mov word [esp + 0x3c], 0
call sub.MSACM32.dll_acmFormatSuggest
test eax, eax
je 0x402885
mov ecx, dword [0x40b63c]
push 0xb0000
lea eax, [esp + 0x1c]
push 0x1e
push eax
push esi
push ecx
call sub.MSACM32.dll_acmFormatSuggest
test eax, eax
je 0x402885
push ebx
call fcn.00403547
lea edx, [esp + 0x50]
push edx
call fcn.00403cac
mov eax, dword [esp + 0x368]
lea ecx, [esp + 0x158]
push eax
push str.Unable_to_open_intermediate_converter_for__s
push ecx
call fcn.004032ee
mov eax, dword [esp + 0x370]
add esp, 0x14
lea edx, [esp + 0x150]
push 0x10
push str.Error
push edx
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x348
ret
mov edx, dword [0x40b63c]
push 4
push 0
push 0
lea ecx, [esp + 0x24]
push 0
push ecx
push esi
lea eax, [esp + 0x28]
push edx
push eax
call sub.MSACM32.dll_acmStreamOpen
test eax, eax
je 0x4028ff
push ebx
call fcn.00403547
lea ecx, [esp + 0x50]
push ecx
call fcn.00403cac
mov edx, dword [esp + 0x368]
lea eax, [esp + 0x158]
push edx
push str.Failed_to_open_a_stream_todo_intermediate_format_conversion_for__s
push eax
call fcn.004032ee
mov edx, dword [esp + 0x370]
add esp, 0x14
lea ecx, [esp + 0x150]
push 0x10
push str.Error
push ecx
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x348
ret
mov eax, dword [esp + 0x374]
mov ecx, dword [esp + 0x364]
mov edx, dword [esp + 0x360]
mov esi, dword [esp + 0x35c]
push 0
push 0
push eax
push ebx
push ecx
lea eax, [esp + 0x24]
push edx
push eax
push esi
call fcn.00402d80
push ebx
mov edi, eax
call fcn.00403547
add esp, 0x24
test edi, edi
jne 0x402957
lea ecx, [esp + 0x4c]
push ecx
call fcn.00403cac
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x348
ret
lea edx, [esp + 0x4c]
push 0x8000
push edx
call fcn.0040390c
mov ebx, eax
add esp, 8
cmp ebx, 0xffffffff
jne 0x4029ad
lea eax, [esp + 0x4c]
lea ecx, [esp + 0x150]
push eax
push str.Error_opening__s_for_reading_intermediate_conversion_data
push ecx
call fcn.004032ee
add esp, 0xc
lea edx, [esp + 0x150]
push 0x10
push str.Error
push edx
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x348
ret
mov ecx, dword [esp + 0x14]
push 0xf0000
push 0x32
lea eax, [esp + 0x20]
push ebp
push eax
push ecx
call sub.MSACM32.dll_acmFormatSuggest
test eax, eax
je 0x402a33
mov eax, dword [esp + 0x14]
push 0xf0000
push 0x32
lea edx, [esp + 0x20]
push ebp
push edx
push eax
call sub.MSACM32.dll_acmFormatSuggest
test eax, eax
je 0x402a33
push ebx
call fcn.00403547
lea ecx, [esp + 0x50]
push ecx
call fcn.00403cac
mov edx, dword [esp + 0x368]
lea eax, [esp + 0x158]
push edx
push str.Unable_to_open_final_converter_for__s
push eax
call fcn.004032ee
add esp, 0x14
push 0x10
lea ecx, [esp + 0x154]
push str.Error
push ecx
push esi
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x348
ret
mov eax, dword [esp + 0x14]
push 4
push 0
push 0
push 0
lea edx, [esp + 0x28]
push ebp
push edx
lea ecx, [esp + 0x28]
push eax
push ecx
call sub.MSACM32.dll_acmStreamOpen
test eax, eax
je 0x402a73
mov edx, dword [esp + 0x360]
lea eax, [esp + 0x150]
push edx
push str.Failed_to_open_a_stream_todo_format_conversion_for__s
push eax
call fcn.004032ee
add esp, 0xc
jmp 0x402a10
mov ebp, dword [sym.imp.USER32.dll_GetDlgItem]
push 0
push 0
push 0x402
push 0x3f4
push esi
call ebp
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov edx, edi
sar edx, 0xa
and edx, 0xffff
shl edx, 0x10
push edx
push 0
push 0x401
push 0x3f4
push esi
call ebp
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
mov ecx, dword [esp + 0x370]
mov edx, dword [esp + 0x378]
xor eax, eax
mov ax, word [ecx + 0xe]
mov ecx, dword [esp + 0x360]
push eax
mov eax, dword [esp + 0x36c]
push edx
push edi
push eax
push ebx
lea edx, [esp + 0x24]
push ecx
push edx
push esi
call fcn.00402d80
push ebx
mov esi, eax
call fcn.00403547
lea eax, [esp + 0x70]
push eax
call fcn.00403cac
add esp, 0x28
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x348
ret
mov ebx, dword [esp + 0x36c]
mov ecx, 7
mov esi, ebx
lea edi, [esp + 0x2c]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [0x40b63c]
mov cx, word [ebp + 0xe]
lea edx, [esp + 0x2c]
push 1
push edx
push eax
movsw word es:[edi], word [esi]
mov word [esp + 0x38], 1
mov word [esp + 0x46], cx
call fcn.004025f0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x402b93
mov ecx, dword [esp + 0x360]
lea edx, [esp + 0x150]
push ecx
push str.Unable_to_find_a_suitable_format_in_l3codec_to_decompress__s
push edx
call fcn.004032ee
mov ecx, dword [esp + 0x368]
add esp, 0xc
lea eax, [esp + 0x150]
push 0x10
push str.Error
push eax
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x348
ret
mov edx, dword [0x40b63c]
push 4
push 0
push 0
push 0
push esi
push ebx
lea eax, [esp + 0x28]
push edx
push eax
call sub.MSACM32.dll_acmStreamOpen
test eax, eax
je 0x402bff
push esi
call fcn.00403fef
mov ecx, dword [esp + 0x364]
lea edx, [esp + 0x154]
push ecx
push str.Unable_to_open_a_stream_todo_format_conversion_for__s
push edx
call fcn.004032ee
mov ecx, dword [esp + 0x36c]
add esp, 0x10
lea eax, [esp + 0x150]
push 0x10
push str.Error
push eax
push ecx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x348
ret
mov eax, dword [esp + 0x378]
mov ecx, dword [esp + 0x374]
xor edx, edx
mov dx, word [esi + 0xe]
push edx
mov edx, dword [esp + 0x36c]
push eax
mov eax, dword [esp + 0x36c]
push ecx
mov ecx, dword [esp + 0x36c]
push edx
push eax
mov eax, dword [esp + 0x370]
lea edx, [esp + 0x24]
push ecx
push edx
push eax
call fcn.00402d80
push esi
mov edi, eax
call fcn.00403fef
add esp, 0x24
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x348
ret