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

Disassembly:
push 0xffffffffffffffff
push 0x402dd7
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x21c
push ebx
push ebp
mov ebp, ecx
push esi
push edi
lea ecx, [esp + 0x10]
call fcn.00402a82
xor ebx, ebx
lea ecx, [esp + 0x18]
mov dword [esp + 0x234], ebx
call fcn.00402a82
lea ecx, [esp + 0x20]
mov byte [esp + 0x234], 1
call fcn.00402a82
lea ecx, [esp + 0x1c]
mov byte [esp + 0x234], 2
call fcn.00402a82
lea ecx, [esp + 0x14]
mov byte [esp + 0x234], 3
call fcn.00402a82
lea eax, [esp + 0x12c]
push 0x100
push eax
push str.ETUNGVSBUS
mov byte [esp + 0x240], 4
xor edi, edi
call fcn.004011c0
add esp, 0xc
cmp eax, 1
jne 0x40234d
mov edi, eax
mov eax, dword [str.1.0.1.0]
lea esi, [esp + 0x12c]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x4022f1
cmp cl, bl
je 0x4022ea
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x4022f1
add eax, 2
add esi, 2
cmp cl, bl
jne 0x4022ca
xor eax, eax
or esi, 0xffffffff
jmp 0x4022fa
sbb eax, eax
mov esi, 0xffffffff
sbb eax, esi
cmp eax, ebx
jne 0x402350
lea ecx, [esp + 0x14]
mov byte [esp + 0x234], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x234], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x234], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x234], bl
call sub.MFC42.DLL_CString::CString
mov dword [esp + 0x234], esi
jmp 0x4024fe
or esi, 0xffffffff
lea eax, [esp + 0x28]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea ecx, [esp + 0x28]
push ecx
mov ecx, ebp
call fcn.00401f40
lea edx, [esp + 0x28]
lea ecx, [esp + 0x14]
push edx
call sub.MFC42.DLL_CString::operator
lea eax, [esp + 0x14]
lea ecx, [esp + 0x10]
push eax
call sub.MFC42.DLL_CString::operator_1
push str.vsbus.inf
lea ecx, [esp + 0x14]
call fcn.00402a76
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x1c]
call sub.MFC42.DLL_CString::operator_1
push str.vsport.inf
lea ecx, [esp + 0x1c]
call fcn.00402a76
lea edx, [esp + 0x14]
lea ecx, [esp + 0x20]
push edx
call sub.MFC42.DLL_CString::operator_1
push 0x405480
lea ecx, [esp + 0x24]
call fcn.00402a76
lea eax, [esp + 0x14]
lea ecx, [esp + 0x1c]
push eax
call sub.MFC42.DLL_CString::operator_1
push 0x405474
lea ecx, [esp + 0x20]
call fcn.00402a76
cmp edi, ebx
je 0x40240b
mov edx, dword [esp + 0x10]
lea ecx, [esp + 0x24]
push ecx
push edx
push str.ETUNGVSBUS
call fcn.00401310
add esp, 0xc
test eax, eax
jne 0x402426
jmp 0x402437
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x24]
push eax
push ecx
push str.ETUNGVSBUS
call fcn.00401000
add esp, 0xc
cmp al, 1
jne 0x402437
mov edx, dword [esp + 0x18]
push edx
call fcn.00401430
add esp, 4
test eax, eax
jne 0x40248e
lea ecx, [esp + 0x14]
mov byte [esp + 0x234], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x234], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x234], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x234], bl
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x10]
mov dword [esp + 0x234], esi
call sub.MFC42.DLL_CString::CString
mov eax, esi
jmp 0x402509
mov eax, dword [esp + 0x10]
mov esi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
push eax
call esi
mov ecx, dword [esp + 0x18]
push ecx
call esi
mov edx, dword [esp + 0x20]
push edx
call esi
mov eax, dword [esp + 0x1c]
push eax
call esi
lea ecx, [esp + 0x14]
mov byte [esp + 0x234], 3
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x1c]
mov byte [esp + 0x234], 2
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x20]
mov byte [esp + 0x234], 1
call sub.MFC42.DLL_CString::CString
lea ecx, [esp + 0x18]
mov byte [esp + 0x234], bl
call sub.MFC42.DLL_CString::CString
mov dword [esp + 0x234], 0xffffffff
lea ecx, [esp + 0x10]
call sub.MFC42.DLL_CString::CString
xor eax, eax
mov ecx, dword [esp + 0x22c]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x228
ret