Function at 0x405eb0
Capabilities:
Delete file
Get common file path

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x410281
push eax
mov eax, 0x1538
mov dword fs:[0], esp
call fcn.0040f530
push ebx
mov ebx, ecx
push esi
lea ecx, [esp + 0x320]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], 1
call fcn.004035b0
lea ecx, [esp + 0x30]
mov dword [esp + 0x1548], 0
call sub.MFC42.DLL_CFile::CFile
mov eax, dword [ebx + 0x4524]
push 0
push 0x40
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x1554], 1
call sub.MFC42.DLL_CFile::Open
test eax, eax
je 0x405f90
push 2
push 0xffffffffffffff81
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CFile::Seek
lea eax, [esp + 0x1440]
push 0xff
push eax
lea ecx, [esp + 0x38]
call sub.MFC42.DLL_CFile::Read
lea ecx, [esp + 0x30]
mov esi, eax
call sub.MFC42.DLL_CFile::Close
lea ecx, [esp + 0xc]
call sub.MFC42.DLL_CString::CString_2
dec esi
mov byte [esp + 0x1548], 2
test esi, esi
jl 0x405f7f
mov al, byte [esp + esi + 0x1440]
cmp al, 0x26
je 0x405f7b
push eax
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::operator_2
dec esi
jns 0x405f63
test esi, esi
jg 0x405fd1
lea ecx, [esp + 0xc]
mov byte [esp + 0x1548], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x30]
mov byte [esp + 0x1548], 0
call fcn.0040f024
lea ecx, [esp + 0x320]
mov dword [esp + 0x1548], 0xffffffff
call fcn.00403650
pop esi
xor eax, eax
pop ebx
mov ecx, dword [esp + 0x1538]
mov dword fs:[0], ecx
add esp, 0x1544
ret
push ebp
push edi
lea ecx, [esp + 0x14]
call sub.MFC42.DLL_CString::MakeReverse
push 0x3a
lea ecx, [esp + 0x18]
call sub.MFC42.DLL_CString::Find_2
push 0x2c
lea ecx, [esp + 0x18]
mov esi, eax
call sub.MFC42.DLL_CString::Find_2
mov edi, eax
lea edx, [esp + 0x18]
mov ecx, edi
sub ecx, esi
dec ecx
inc esi
push ecx
push esi
push edx
lea ecx, [esp + 0x20]
call sub.MFC42.DLL_CString::Mid
mov eax, dword [eax]
mov ebp, dword [sym.imp.MSVCRT.dll_atol]
push eax
call ebp
add esp, 4
lea ecx, [esp + 0x18]
mov dword [esp + 0x10], eax
call sub.MFC42.DLL_CString::CString
push edi
push 0x3a
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::Find_1
push 0x2e
lea ecx, [esp + 0x18]
mov esi, eax
call sub.MFC42.DLL_CString::Find_2
sub eax, esi
lea ecx, [esp + 0x14]
dec eax
inc esi
push eax
lea eax, [esp + 0x1c]
push esi
push eax
call sub.MFC42.DLL_CString::Mid
mov eax, dword [eax]
push eax
call ebp
add esp, 4
lea ecx, [esp + 0x18]
mov ebp, eax
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x14]
mov byte [esp + 0x1550], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1348]
push ecx
push 0xff
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
mov edi, str.star.tmp
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1348]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebx + 0x4524]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x10]
lea edx, [esp + 0x1348]
push ecx
push ebp
push eax
push edx
call fcn.004015c0
add esp, 0x10
lea eax, [esp + 0x1348]
lea ecx, [esp + 0x328]
push str.star.exe
push eax
call fcn.00403820
test eax, eax
je 0x407154
xor ebx, ebx
mov edx, dword [esp + 0x1c]
lea ecx, [ebx + ebx*2]
shl ecx, 0xa
lea ebp, [ecx + edx]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0xc4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x1c4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
cmp ebx, 1
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
je 0x4061a3
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x2c4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x4061b8
call fcn.00403710
mov ecx, dword [esp + 0x1c]
push eax
add ecx, 0x3cc4
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x3c4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x4c4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x5c4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x6c4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x7c4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x8c4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x9c4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0xac4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0xbc4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, 0xc
lea ecx, [esp + 0x328]
call fcn.00403710
dec esi
jne 0x406376
inc ebx
cmp ebx, 5
jl 0x4060fc
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
mov ebp, dword [esp + 0x1c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [ebp + 0x3ce0]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x3df0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x3ef0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x24]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebx, dword [sym.imp.MSVCRT.dll_atol]
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x24]
push ecx
call ebx
add esp, 4
lea ecx, [esp + 0x328]
mov dword [ebp + 0x3de0], eax
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
lea edx, [esp + 0x24]
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x24]
push ecx
call ebx
add esp, 4
lea ecx, [esp + 0x328]
mov dword [ebp + 0x3de4], eax
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x24]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x24]
push ecx
call ebx
add esp, 4
lea ecx, [esp + 0x328]
mov dword [ebp + 0x3de8], eax
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x24]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x24]
push ecx
call ebx
add esp, 4
lea ecx, [esp + 0x328]
mov dword [ebp + 0x3dec], eax
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x3ff4]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
lea edx, [ebp + 0x3ff0]
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
lea ecx, [esp + 0x328]
mov dword [ebp + 0x40f4], eax
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x40fc]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x40f8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
lea ecx, [esp + 0x328]
mov dword [ebp + 0x41fc], eax
call fcn.00403710
push eax
call ebx
add esp, 4
mov dword [ebp + 0x4460], eax
mov esi, 0xa
lea ecx, [esp + 0x328]
call fcn.00403710
dec esi
jne 0x406641
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x24]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x24]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, str.TRUE
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x4066b0
test cl, cl
je 0x4066ac
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x4066b0
add eax, 2
add esi, 2
test cl, cl
jne 0x406688
xor eax, eax
jmp 0x4066b5
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4066c6
mov ebx, 1
mov dword [ebp + 0x427c], ebx
jmp 0x4066d5
mov dword [ebp + 0x427c], 0
mov ebx, 1
lea ecx, [esp + 0x328]
call fcn.00403710
mov esi, dword [sym.imp.MSVCRT.dll_atol]
push eax
call esi
add esp, 4
lea ecx, [esp + 0x328]
mov dword [ebp + 0x4280], eax
call fcn.00403710
push eax
call esi
add esp, 4
lea ecx, [esp + 0x328]
mov dword [ebp + 0x4284], eax
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x4288]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
call dword [sym.imp.MSVCRT.dll_atol]
add esp, 4
lea ecx, [esp + 0x328]
mov dword [ebp + 0x42cc], eax
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x24]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x24]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, str.TRUE
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4067b4
test cl, cl
je 0x4067b0
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4067b4
add eax, 2
add esi, 2
test cl, cl
jne 0x406790
xor eax, eax
jmp 0x4067b9
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x4067c5
mov dword [ebp + 0x42d0], ebx
jmp 0x4067cf
mov dword [ebp + 0x42d0], 0
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x42d4]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x42d8]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
call fcn.00403710
mov esi, dword [sym.imp.MSVCRT.dll_atol]
push eax
call esi
add esp, 4
lea ecx, [esp + 0x328]
mov dword [ebp + 0x42dc], eax
call fcn.00403710
push eax
call esi
add esp, 4
lea ecx, [esp + 0x328]
mov dword [ebp + 0x42e0], eax
call fcn.00403710
push eax
call esi
add esp, 4
lea ecx, [esp + 0x328]
mov dword [ebp + 0x430c], eax
call fcn.00403710
push eax
call esi
add esp, 4
lea ecx, [esp + 0x328]
mov dword [ebp + 0x4310], eax
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x4314]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [ebp + 0x4355]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
call dword [sym.imp.MSVCRT.dll_atol]
add esp, 4
lea ecx, [esp + 0x328]
mov dword [ebp + 0x4454], eax
call fcn.00403710
push eax
lea ecx, [ebp + 0x4458]
call sub.MFC42.DLL_CString::operator
mov esi, 8
lea ecx, [esp + 0x328]
call fcn.00403710
dec esi
jne 0x406900
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x420c]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x4210]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x4214]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x4218]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x4200]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x4204]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x4208]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x421c]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x4220]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x4224]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x4228]
call sub.MFC42.DLL_CString::operator
mov esi, 0xd
lea ecx, [esp + 0x328]
call fcn.00403710
dec esi
jne 0x406a1c
lea esi, [ebp + 0x44d8]
mov edi, 0x13
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
mov ecx, esi
call sub.MFC42.DLL_CString::operator
add esi, 4
dec edi
jne 0x406a36
mov esi, 5
lea ecx, [esp + 0x328]
call fcn.00403710
dec esi
jne 0x406a55
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x445c]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x4464]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
call fcn.00403710
mov esi, dword [sym.imp.MSVCRT.dll_atol]
push eax
call esi
add esp, 4
lea ecx, [esp + 0x328]
mov dword [ebp + 0x4468], eax
call fcn.00403710
push eax
call esi
add esp, 4
lea ecx, [esp + 0x328]
mov dword [ebp + 0x446c], eax
mov esi, str.TRUE
call fcn.00403710
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x406aff
test cl, cl
je 0x406afb
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x406aff
add eax, 2
add esi, 2
test cl, cl
jne 0x406adb
xor eax, eax
jmp 0x406b04
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x406b14
mov dword [ebp + 0x4490], 0
jmp 0x406b1a
mov dword [ebp + 0x4490], ebx
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x4488]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
lea ecx, [ebp + 0x448c]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x328]
mov esi, str.TRUE
call fcn.00403710
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x406b7f
test cl, cl
je 0x406b7b
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x406b7f
add eax, 2
add esi, 2
test cl, cl
jne 0x406b5b
xor eax, eax
jmp 0x406b84
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x406b94
mov dword [ebp + 0x4494], 0
jmp 0x406b9a
mov dword [ebp + 0x4494], ebx
mov esi, 0x10
lea ecx, [esp + 0x328]
call fcn.00403710
dec esi
jne 0x406b9f
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x48]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x48]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, 0x4166a8
mov dl, byte [eax]
mov bl, byte [esi]
mov cl, dl
cmp dl, bl
jne 0x406c10
test cl, cl
je 0x406c0a
mov dl, byte [eax + 1]
mov bl, byte [esi + 1]
mov cl, dl
cmp dl, bl
jne 0x406c10
add eax, 2
add esi, 2
test cl, cl
jne 0x406be6
xor ebx, ebx
xor eax, eax
jmp 0x406c17
sbb eax, eax
sbb eax, 0xffffffff
xor ebx, ebx
cmp eax, ebx
je 0x407144
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
mov esi, str.WINDOWS_FOLDER
mov ecx, edi
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x406c58
test dl, dl
je 0x406c54
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x406c58
add ecx, 2
add esi, 2
test dl, dl
jne 0x406c34
xor ecx, ecx
jmp 0x406c5d
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x406c71
mov dword [esp + 0x14c], 0x20
jmp 0x406d7c
mov esi, str.SYSTEM_FOLDER
mov ecx, edi
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x406c9c
test dl, dl
je 0x406c98
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x406c9c
add ecx, 2
add esi, 2
test dl, dl
jne 0x406c78
xor ecx, ecx
jmp 0x406ca1
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x406cb5
mov dword [esp + 0x14c], 0x10
jmp 0x406d7c
mov esi, str.TEMP_FOLDER
mov ecx, edi
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x406ce0
test dl, dl
je 0x406cdc
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x406ce0
add ecx, 2
add esi, 2
test dl, dl
jne 0x406cbc
xor ecx, ecx
jmp 0x406ce5
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x406cf9
mov dword [esp + 0x14c], 0x40
jmp 0x406d7c
mov esi, str.USER_FOLDER
mov ecx, edi
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x406d24
test dl, dl
je 0x406d20
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x406d24
add ecx, 2
add esi, 2
test dl, dl
jne 0x406d00
xor ecx, ecx
jmp 0x406d29
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x406d3a
mov dword [esp + 0x14c], 0x80
jmp 0x406d7c
mov esi, str.SYSDRIVER_FOLDER
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x406d65
test cl, cl
je 0x406d61
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x406d65
add eax, 2
add esi, 2
test cl, cl
jne 0x406d41
xor eax, eax
jmp 0x406d6a
sbb eax, eax
sbb eax, 0xffffffff
neg eax
sbb eax, eax
and al, 8
add eax, 0x100
mov dword [esp + 0x14c], eax
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x150]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
push eax
call dword [sym.imp.MSVCRT.dll_atoi]
add esp, 4
lea ecx, [esp + 0x328]
mov dword [esp + 0x148], eax
call fcn.00403710
mov edi, eax
mov esi, str.NOTEXIST_COPY
mov ecx, edi
mov al, byte [ecx]
mov dl, al
cmp al, byte [esi]
jne 0x406e04
test dl, dl
je 0x406e00
mov al, byte [ecx + 1]
mov dl, al
cmp al, byte [esi + 1]
jne 0x406e04
add ecx, 2
add esi, 2
test dl, dl
jne 0x406de0
xor ecx, ecx
jmp 0x406e09
sbb ecx, ecx
sbb ecx, 0xffffffff
cmp ecx, ebx
jne 0x406e1a
mov dword [esp + 0x1d0], 0x400
jmp 0x406e5f
mov esi, str.ASK_COPY
mov eax, edi
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x406e45
test cl, cl
je 0x406e41
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x406e45
add eax, 2
add esi, 2
test cl, cl
jne 0x406e21
xor eax, eax
jmp 0x406e4a
sbb eax, eax
sbb eax, 0xffffffff
neg eax
sbb eax, eax
and eax, 0xfffffa00
add eax, 0x800
mov dword [esp + 0x1d0], eax
lea ecx, [esp + 0x328]
call fcn.00403710
mov esi, dword [sym.imp.MSVCRT.dll_atol]
push eax
call esi
add esp, 4
lea ecx, [esp + 0x328]
mov dword [esp + 0x1d8], eax
call fcn.00403710
push eax
call esi
add esp, 4
lea ecx, [esp + 0x328]
mov dword [esp + 0x1dc], eax
call fcn.00403710
mov esi, str.TRUE
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x406ecc
test cl, cl
je 0x406ec8
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x406ecc
add eax, 2
add esi, 2
test cl, cl
jne 0x406ea8
xor eax, eax
jmp 0x406ed1
sbb eax, eax
sbb eax, 0xffffffff
xor ecx, ecx
cmp eax, ebx
sete cl
mov dword [esp + 0x1d4], ecx
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x220]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x260]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1e0]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x328]
call fcn.00403710
mov esi, str.TRUE
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x406faa
test cl, cl
je 0x406fa6
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x406faa
add eax, 2
add esi, 2
test cl, cl
jne 0x406f86
xor eax, eax
jmp 0x406faf
sbb eax, eax
sbb eax, 0xffffffff
xor ecx, ecx
cmp eax, ebx
sete cl
mov dword [esp + 0x2e0], ecx
lea ecx, [esp + 0x328]
call fcn.00403710
mov esi, str.TRUE
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x406ff2
test cl, cl
je 0x406fee
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x406ff2
add eax, 2
add esi, 2
test cl, cl
jne 0x406fce
xor eax, eax
jmp 0x406ff7
sbb eax, eax
sbb eax, 0xffffffff
xor ecx, ecx
cmp eax, ebx
sete cl
mov dword [esp + 0x2e4], ecx
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x2e8]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, 0xa
lea ecx, [esp + 0x328]
call fcn.00403710
dec esi
jne 0x40703c
mov eax, dword [ebp + 0x3cd0]
push 0x2e8
cmp eax, ebx
je 0x407095
call sub.MFC42.DLL_operatornew
mov ecx, 0xb8
lea esi, [esp + 0x4c]
mov edi, eax
add esp, 4
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [ebp + 0x3cd4]
mov dword [eax + 0x2e4], ebx
mov dword [eax + 0x2e0], ecx
mov edx, dword [ebp + 0x3cd4]
mov dword [edx + 0x2e4], eax
mov dword [ebp + 0x3cd4], eax
jmp 0x4070ce
call sub.MFC42.DLL_operatornew
mov ecx, 0xb8
lea esi, [esp + 0x4c]
mov edi, eax
mov dword [eax + 0x2e0], ebx
rep movsd dword es:[edi], dword [esi]
mov dword [eax + 0x2e4], ebx
add esp, 4
mov dword [ebp + 0x3cd0], eax
mov dword [ebp + 0x3cd4], eax
mov dword [ebp + 0x3cd8], eax
mov dword [ebp + 0x3cdc], ebx
mov ecx, dword [ebp + 0x3ccc]
inc ecx
mov dword [ebp + 0x3ccc], ecx
lea ecx, [esp + 0x328]
call fcn.00403710
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x48]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
lea eax, [esp + 0x48]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, 0x4166a8
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x407137
test cl, cl
je 0x407133
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x407137
add eax, 2
add esi, 2
test cl, cl
jne 0x407113
xor eax, eax
jmp 0x40713c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, ebx
jne 0x406c1f
lea eax, [esp + 0x1348]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
jmp 0x407162
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x20], 0
xor ebx, ebx
mov eax, dword [ebp + 0x3de0]
cmp eax, ebx
mov dword [esp + 0x10], eax
jle 0x4071a9
mov ecx, dword [ebp + 0x3de4]
mov eax, dword [ebp + 0x4524]
lea edx, [esp + 0x10]
push ecx
push edx
push eax
call fcn.00401730
add esp, 0xc
mov esi, eax
mov eax, dword [esp + 0x10]
lea ecx, [ebp + 0x422c]
push eax
push esi
call fcn.004050c0
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
jmp 0x4071be
push 0x4161dc
push 0x83
lea ecx, [ebp + 0x422c]
call fcn.004051c0
mov ecx, dword [ebp + 0x427c]
mov eax, dword [ebp + 0x4280]
cmp ecx, ebx
mov dword [esp + 0x10], eax
je 0x40720d
cmp eax, ebx
jle 0x40720d
mov ecx, dword [ebp + 0x4284]
mov eax, dword [ebp + 0x4524]
lea edx, [esp + 0x10]
push ecx
push edx
push eax
call fcn.00401730
add esp, 0xc
mov esi, eax
mov eax, dword [esp + 0x10]
lea ecx, [ebp + 0x4254]
push eax
push esi
call fcn.004050c0
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
mov eax, dword [ebp + 0x430c]
cmp eax, ebx
mov dword [esp + 0x10], eax
jle 0x407252
mov ecx, dword [ebp + 0x4310]
mov eax, dword [ebp + 0x4524]
lea edx, [esp + 0x10]
push ecx
push edx
push eax
call fcn.00401730
add esp, 0xc
mov esi, eax
mov eax, dword [esp + 0x10]
lea ecx, [ebp + 0x42e4]
push eax
push esi
call fcn.004050c0
push esi
call sub.MFC42.DLL_operatordelete
add esp, 4
cmp dword [ebp + 0x45d8], ebx
jne 0x4072d3
mov eax, dword [ebp + 0x3de8]
cmp eax, ebx
jle 0x40729e
mov ecx, dword [ebp + 0x3dec]
mov dword [esp + 0x18], eax
mov eax, dword [ebp + 0x4524]
lea edx, [esp + 0x18]
push ecx
push edx
push eax
call fcn.00401730
mov esi, eax
mov eax, dword [esp + 0x24]
push eax
push esi
call fcn.00401c40
push esi
mov dword [ebp + 0x45d8], eax
call sub.MFC42.DLL_operatordelete
add esp, 0x18
jmp 0x4072c1
call sub.MFC42.DLL_AfxGetModuleState
push 0x80
push 0xe
push 0x80
call sub.MFC42.DLL_AfxFindResourceHandle
push eax
call dword [sym.imp.USER32.dll_LoadIconA]
mov dword [ebp + 0x45d8], eax
lea ecx, [ebp + 0x3ce0]
push ecx
lea ecx, [ebp + 0x45dc]
call sub.MFC42.DLL_CString::operator
lea ecx, [esp + 0x38]
mov byte [esp + 0x1550], 0
call fcn.0040f024
lea ecx, [esp + 0x328]
mov dword [esp + 0x1550], 0xffffffff
call fcn.00403650
mov ecx, dword [esp + 0x1548]
mov eax, dword [esp + 0x20]
pop edi
pop ebp
pop esi
pop ebx
mov dword fs:[0], ecx
add esp, 0x1544
ret