Function at 0x408a60
Capabilities:
Create directory
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x57e182
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x120
mov eax, dword [0x5f3edc]
push ebx
push esi
mov esi, ecx
push edi
mov ecx, 0x5fda18
mov dword [esp + 0x124], eax
call fcn.004bec20
mov ecx, eax
call fcn.004d74d0
xor edi, edi
cmp eax, edi
jne 0x408af0
push 0xc
call sub.MFC71.DLL_operator_new_1
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, edi
mov dword [esp + 0x134], edi
je 0x408ad0
push 0x8263
mov ecx, eax
call fcn.0049bd50
jmp 0x408ad2
xor eax, eax
mov dword [esp + 0xc], eax
push 0x5d1fa4
lea eax, [esp + 0x10]
push eax
mov dword [esp + 0x13c], 0xffffffff
call sub.MSVCR71.dll__CxxThrowException
mov ebx, eax
mov eax, dword [ebx + 0x20]
cmp eax, edi
je 0x408b03
mov ecx, eax
mov edx, dword [ecx]
call dword [edx + 0x118]
mov eax, dword [ebx + 0x24]
cmp eax, edi
je 0x408b14
mov ecx, eax
mov eax, dword [ecx]
call dword [eax + 0x118]
mov ebx, dword [ebx + 0x1c]
cmp ebx, edi
jne 0x408af2
push edi
lea ecx, [esi + 0x998]
call fcn.00464d40
push edi
push str.WriteSpeed
push str.Preferences
mov ecx, 0x5fda18
call sub.MFC71.DLL_CWinApp::GetProfileIntA
push 1
push str.NumberOfCopies
push str.Preferences
mov ecx, 0x5fda18
mov dword [esi + 0x105c], eax
call sub.MFC71.DLL_CWinApp::GetProfileIntA
push 0x596834
push str.ExportFolder
push str.Preferences
lea ecx, [esp + 0x18]
push ecx
mov ecx, 0x5fda18
mov dword [esi + 0x1058], eax
call sub.MFC71.DLL_CWinApp::GetProfileStringA
lea ebx, [esi + 0x1060]
push eax
mov ecx, ebx
mov dword [esp + 0x138], 1
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_4]
lea ecx, [esp + 0xc]
mov dword [esp + 0x134], 0xffffffff
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
push 0x596834
mov ecx, ebx
call dword [sym.imp.MFC71.DLL_ATL::CStringT::Compare]
test eax, eax
jne 0x408c9c
lea ecx, [esp + 0x10]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_7]
push 0x81fc
lea ecx, [esp + 0x14]
mov dword [esp + 0x138], 2
call dword [sym.imp.MFC71.DLL_ATL::CStringT::LoadStringA]
mov byte [esp + 0x18], 0
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x19]
rep stosd dword es:[edi], eax
push 1
push 5
lea edx, [esp + 0x20]
stosw word es:[edi], ax
push edx
push 0
stosb byte es:[edi], al
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathA]
test eax, eax
je 0x408c85
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_6]
push eax
mov ecx, ebx
mov byte [esp + 0x138], 3
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator_4]
lea ecx, [esp + 0x14]
mov byte [esp + 0x134], 2
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
push 0x597664
mov ecx, ebx
call dword [0x59434c]
lea ecx, [esp + 0x10]
push ecx
mov ecx, ebx
call dword [sym.imp.MFC71.DLL_ATL::CStringT::operator]
push 0
mov ecx, ebx
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
call dword [sym.imp.MSVCR71.dll__access]
add esp, 8
cmp eax, 0xffffffff
jne 0x408c85
mov ecx, ebx
call dword [sym.imp.MFC71.DLL_ATL::CSimpleStringT::operator_char_const_]
push eax
call dword [sym.imp.MSVCR71.dll__mkdir]
add esp, 4
lea ecx, [esp + 0x10]
mov dword [esp + 0x134], 0xffffffff
call dword [sym.imp.MFC71.DLL_ATL::CStringT::CStringT_1]
xor edi, edi
mov ecx, 0x5fda18
call fcn.004bec20
mov ecx, eax
call fcn.004d73c0
cmp eax, edi
jle 0x408cec
cmp eax, 2
jle 0x408cbb
cmp eax, 6
jne 0x408cec
mov ecx, 0x5fda18
call fcn.004bec60
mov al, byte [eax + 0x7a]
xor edx, edx
test al, al
sete dl
mov ecx, 0x5fda18
push edx
push str.QuickCopy
push str.Preferences
call sub.MFC71.DLL_CWinApp::GetProfileIntA
mov dword [esi + 0x1068], eax
jmp 0x408cf2
mov dword [esi + 0x1068], edi
mov ecx, 0x5fda18
call fcn.004bec20
mov ecx, eax
call fcn.004d73c0
cmp eax, edi
jle 0x408d77
cmp eax, 2
jle 0x408d11
cmp eax, 6
jne 0x408d77
push edi
push str.DeepAnalysis
push str.Preferences
mov ecx, 0x5fda18
call sub.MFC71.DLL_CWinApp::GetProfileIntA
push 2
push str.CompressMode
push str.Preferences
mov ecx, 0x5fda18
mov dword [esi + 0x106c], eax
call sub.MFC71.DLL_CWinApp::GetProfileIntA
push edi
push str.CompressAdaptive
push str.Preferences
mov ecx, 0x5fda18
mov dword [esi + 0x1070], eax
call sub.MFC71.DLL_CWinApp::GetProfileIntA
mov ecx, dword [esi + 0x106c]
mov dword [esi + 0x1074], eax
mov dword [esi + 0x1090], ecx
mov dword [esi + 0x108c], eax
jmp 0x408d99
mov dword [esi + 0x106c], edi
mov dword [esi + 0x1070], 2
mov dword [esi + 0x1074], edi
mov dword [esi + 0x1090], edi
mov dword [esi + 0x108c], edi
mov ecx, 0x5fda18
call fcn.004bec20
mov ecx, eax
call fcn.004d73c0
cmp eax, 3
je 0x408dc5
mov ecx, 0x5fda18
call fcn.004bec20
mov ecx, eax
call fcn.004d73c0
cmp eax, 7
jne 0x408e1c
push 0xffffffffffffffff
push str.OutputProfile
push str.Preferences
mov ecx, 0x5fda18
call sub.MFC71.DLL_CWinApp::GetProfileIntA
mov ebx, eax
cmp ebx, edi
jle 0x408e00
mov ecx, 0x5fd9ec
call fcn.004ba2d0
cmp ebx, eax
jge 0x408e00
push ebx
mov ecx, 0x5fd9ec
call fcn.004ba300
mov dword [esi + 0x107c], eax
cmp dword [esi + 0x107c], edi
jne 0x408e1c
mov ecx, 0x5fd9ec
call fcn.004ba3f0
cmp eax, edi
je 0x408e1c
mov dword [esi + 0x107c], eax
mov ecx, 0x5fda18
call fcn.004bec20
mov ecx, eax
call fcn.004d74f0
mov ecx, 0x5fda18
mov ebx, eax
call fcn.004bec20
mov ecx, eax
call fcn.004d75b0
mov ecx, 0x5fda18
mov edi, eax
call fcn.004bec20
mov ecx, eax
call fcn.004d7410
test al, al
jne 0x408e6f
mov ecx, 0x5fda18
call fcn.004bec20
mov ecx, eax
call fcn.004d7640
mov ebx, eax
mov edi, 1
mov eax, ebx
xor edx, edx
div edi
mov ebx, eax
cmp ebx, 0x50528
je 0x408f2d
cmp ebx, 0x566d0
je 0x408f2d
cmp ebx, 0xa0a50
jne 0x408eb4
mov ecx, 0x5fcb20
call fcn.004636f0
test al, al
je 0x408ef0
mov dword [esi + 0x1054], 0x20000
jmp 0x408f37
cmp ebx, 0x22d5ad
jne 0x408ec8
mov dword [esi + 0x1054], 0xc001c
jmp 0x408f37
cmp ebx, 0x3f5be2
jne 0x408edc
mov dword [esi + 0x1054], 0xc0000
jmp 0x408f37
cmp ebx, 0x22d5ad
jbe 0x408ef0
mov dword [esi + 0x1054], 0xc0000
jmp 0x408efa
mov dword [esi + 0x1054], 0xc001c
cmp ebx, 0x566d0
ja 0x408f0b
or dword [esi + 0x1054], 1
jmp 0x408f37
cmp ebx, 0xa0a50
ja 0x408f37
mov ecx, 0x5fcb20
call fcn.004636f0
test al, al
je 0x408f37
or dword [esi + 0x1054], 0x20000
jmp 0x408f37
mov dword [esi + 0x1054], 1
mov ecx, dword [esp + 0x12c]
mov dword [esi + 0x1080], edi
mov dword fs:[0], ecx
mov ecx, dword [esp + 0x124]
call fcn.00558076
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret