Function at 0x40d560
Capabilities:
Check mutex on windows
Create process on windows
Enumerate files on windows
Get common file path

Disassembly:
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x421464
push eax
mov eax, 0x2050
mov dword fs:[0], esp
call fcn.00416430
push ebx
push ebp
push esi
push edi
xor ebx, ebx
mov ecx, 0x40
xor eax, eax
lea edi, [esp + 0x9d]
mov byte [esp + 0x9c], bl
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
lea ecx, [esp + 0x1c]
stosb byte es:[edi], al
call fcn.0040b130
mov ebp, dword [esp + 0x2070]
lea eax, [esp + 0x9c]
push 0x104
push eax
push ebp
mov dword [esp + 0x2074], ebx
mov dword [esp + 0x30], 1
mov dword [esp + 0x38], ebx
mov dword [esp + 0x20], ebx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0x30]
lea edx, [esp + 0x9c]
push ecx
push edx
call fcn.0040ee10
mov eax, dword [esp + 0x38]
add esp, 8
mov ecx, eax
and ecx, 0x3ff
push eax
mov word [0x42c0dc], cx
mov ecx, 0x42b5c8
call fcn.004098c0
mov ecx, 0x42a100
mov esi, dword [esp + 0x2078]
push esi
call fcn.00401aa0
push str.VS98SetupWiz
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
mov ebx, eax
mov dword [esp + 0x44], ebx
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x40d7e8
mov eax, dword [0x42a20c]
xor edi, edi
cmp eax, edi
je 0x40d661
mov ecx, 0x42c224
call fcn.00404e50
test al, 4
jne 0x40d7e8
push str.VS98_Setup_Wizard
push str.SoftwareMicrosoftWindowsCurrentVersionRunOnce
push edi
lea ecx, [esp + 0x28]
call fcn.0040b300
lea ecx, [esp + 0x1c]
call fcn.0040b3d0
push str.ACME_REBOOT
push str.SoftwareMicrosoftVisualStudio6.0Setup_
push edi
lea ecx, [esp + 0x28]
call fcn.0040b300
mov ecx, 0x42a420
call fcn.004056e0
cmp dword [0x42c074], edi
je 0x40d6ad
push edi
call fcn.004162f0
add esp, 4
push esi
push ebx
push ebp
call fcn.0040cbf0
add esp, 0xc
test eax, eax
jne 0x40d7e8
cmp dword [0x42a208], edi
je 0x40d75d
mov ecx, 0x11
xor eax, eax
lea edi, [esp + 0x58]
push ebx
rep stosd dword es:[edi], eax
mov dword [esp + 0x5c], 0x44
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push esi
mov ecx, 0x42a100
call fcn.004020d0
lea edx, [esp + 0x6a4]
push 0x104
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea eax, [esp + 0x6a4]
push esi
push eax
lea ecx, [esp + 0x1a8]
push str._s__s
push ecx
call fcn.00414780
add esp, 0x10
lea edx, [esp + 0x48]
lea eax, [esp + 0x58]
lea ecx, [esp + 0x1a0]
push edx
push eax
push 0
push 0
push 0x20
push 0
push 0
push 0
lea edx, [esp + 0x6c4]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
jmp 0x40d7e8
mov ecx, 0x42c1f0
call fcn.00405f70
cmp dword [0x42c1f0], edi
je 0x40d7b7
cmp dword [0x42c1f8], 3
jne 0x40d7b7
cmp dword [0x42c1fc], 0x33
jne 0x40d7b7
lea eax, [esp + 0x8ac]
push 0x800
push eax
push 0x469
push ebp
call dword [sym.imp.USER32.dll_LoadStringA]
mov ecx, dword [0x425c78]
lea edx, [esp + 0x8ac]
push ecx
push 0x42b6ac
push edx
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x40d7e8
call fcn.0040c9c0
test eax, eax
je 0x40d7e8
lea eax, [esp + 0x9c]
push 0x104
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea ecx, [esp + 0x9c]
push ecx
call fcn.00412300
add esp, 4
test eax, eax
jne 0x40d803
lea ecx, [esp + 0x1c]
mov dword [esp + 0x2068], 0xffffffff
call fcn.0040b140
xor eax, eax
jmp 0x40edb9
call fcn.0040d440
mov dword [esp + 0x3c], eax
mov eax, dword [0x42c1f0]
cmp eax, edi
jne 0x40d81e
call fcn.0040d210
mov dword [esp + 0x2c], eax
mov ecx, 0x42c224
call fcn.00404e50
mov ecx, eax
mov dword [esp + 0x18], eax
and ecx, 4
mov dword [esp + 0x20], ecx
jne 0x40d841
mov dword [0x42c080], 0x3e8000
mov ecx, dword [0x42b5c0]
cmp ecx, edi
je 0x40d85a
test ah, 8
jne 0x40d85a
add dword [0x42c080], 0x1f4000
cmp dword [0x42c1f0], edi
je 0x40d86b
cmp dword [0x42c1f8], 5
je 0x40d88b
mov al, byte [0x42aa3a]
test al, al
je 0x40d88b
cmp dword [0x42c1f4], edi
jne 0x40d88b
push 0x42a72e
call fcn.00413f00
add esp, 4
jmp 0x40d890
mov eax, 1
cmp eax, edi
mov dword [esp + 0x28], eax
jne 0x40d8a2
add dword [0x42c080], 0x27ac40
push 0x429d58
push ebp
push edi
mov ecx, 0x42b5c8
call fcn.0040a8b0
mov eax, dword [0x42c204]
cmp eax, edi
je 0x40d92b
lea edx, [esp + 0x2a4]
push 0x200
push edx
push 0x13
push ebp
call dword [sym.imp.USER32.dll_LoadStringA]
mov eax, dword [0x425c78]
lea ecx, [esp + 0x2a4]
push eax
push 0x42b6ac
push ecx
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x14]
mov dword [0x42b8b0], 1
mov dword [esp + 0x24], edi
call fcn.0040b130
push edi
lea ecx, [esp + 0x18]
mov byte [esp + 0x206c], 1
call fcn.0040b3f0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2068], 0
call fcn.0040b140
jmp 0x40ed2b
cmp dword [0x42c208], edi
jne 0x40d9a2
lea edx, [esp + 0x2a4]
push 0x200
push edx
push 0x22
push ebp
call dword [sym.imp.USER32.dll_LoadStringA]
mov eax, dword [0x425c78]
lea ecx, [esp + 0x2a4]
push eax
push 0x42b6ac
push ecx
push edi
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x14]
mov dword [0x42b8b0], 1
mov dword [esp + 0x24], edi
call fcn.0040b130
push edi
lea ecx, [esp + 0x18]
mov byte [esp + 0x206c], 2
call fcn.0040b3f0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2068], 0
call fcn.0040b140
jmp 0x40ed2b
mov eax, dword [0x42c1f4]
mov ebx, dword [sym.imp.USER32.dll_LoadStringA]
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, edi
jne 0x40da17
cmp dword [0x42c1f0], edi
jne 0x40da17
cmp dword [esp + 0x20], edi
jne 0x40da17
test byte [esp + 0x18], 0x10
jne 0x40da17
cmp dword [0x42c21c], edi
je 0x40da17
mov eax, dword [0x42b604]
lea edx, [esp + 0x2a4]
push 0x200
push edx
push 0x462
push eax
call ebx
mov eax, dword [0x425c78]
lea ecx, [esp + 0x2a4]
or eax, 0x104
push eax
push 0x42b6ac
push ecx
push edi
call esi
cmp eax, 7
jne 0x40da17
push edi
call fcn.004162f0
add esp, 4
mov eax, dword [0x42c200]
cmp eax, edi
mov dword [esp + 0x20], eax
je 0x40da2e
add dword [0x42c080], 0x186a0
mov ecx, 0x42c1f0
call fcn.00406310
mov eax, dword [0x42c218]
cmp eax, edi
je 0x40dbb9
mov eax, dword [esp + 0x18]
test ah, 4
jne 0x40dbb9
mov ecx, 0x42c224
call fcn.00404e50
mov edi, eax
test edi, 0x200
je 0x40da9c
mov eax, dword [0x42b604]
lea edx, [esp + 0x2a4]
push 0x400
push edx
push 0x463
push eax
call ebx
mov eax, dword [0x425c78]
lea ecx, [esp + 0x2a4]
push eax
push 0x42b6ac
push ecx
push 0
call esi
jmp 0x40ed2b
lea edx, [esp + 0x2a4]
push 0x400
push edx
push 0x45f
push ebp
call ebx
mov ecx, dword [0x42c080]
mov eax, 0x431bde83
mul ecx
shr edx, 0x12
lea eax, [esp + 0x2a4]
push edx
lea ecx, [esp + 0x10b0]
push eax
push ecx
call fcn.00414780
mov edx, dword [0x425c78]
add esp, 0xc
or edx, 4
lea eax, [esp + 0x10ac]
push edx
push 0x42b6ac
push eax
push 0
call esi
cmp eax, 7
jne 0x40db1a
or edi, 0x400
mov ecx, 0x42c224
push edi
mov dword [0x42c07c], 0
call fcn.00404ef0
jmp 0x40dbb9
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x40dbb9
mov eax, dword [esp + 0x28]
test eax, eax
je 0x40dbb9
mov eax, dword [esp + 0x3c]
test eax, eax
jne 0x40dbb9
lea ecx, [esp + 0x2a4]
push 0x400
push ecx
push 0x464
push ebp
call ebx
mov edx, dword [0x425c78]
lea eax, [esp + 0x2a4]
or edx, 4
push edx
push 0x42b6ac
push eax
push 0
call esi
cmp eax, 6
jne 0x40db88
mov ecx, 0x42c224
call fcn.00405000
mov ecx, 0x42b5c8
call fcn.0040aa50
jmp 0x40ed2b
lea ecx, [esp + 0x18]
call fcn.0040b130
mov eax, dword [0x42c080]
lea ecx, [esp + 0x18]
push eax
mov byte [esp + 0x206c], 3
call fcn.0040b500
lea ecx, [esp + 0x18]
mov byte [esp + 0x2068], 0
call fcn.0040b140
push 0x7d
push ebp
call dword [sym.imp.USER32.dll_LoadIconA]
mov eax, dword [0x42a204]
test eax, eax
je 0x40dbf8
lea ecx, [esp + 0x18]
call fcn.0040b130
push 1
lea ecx, [esp + 0x1c]
mov byte [esp + 0x206c], 4
call fcn.0040b3f0
lea ecx, [esp + 0x18]
mov byte [esp + 0x2068], 0
call fcn.0040b140
mov ecx, 0x42c224
call fcn.00404ca0
mov ecx, 0x42c224
mov dword [esp + 0x34], eax
call fcn.00404e50
mov ecx, 0x42c224
mov dword [esp + 0x18], eax
call fcn.00404db0
mov dword [esp + 0x40], eax
call fcn.0040d000
mov bp, ax
and ebp, 0xffff
jne 0x40dc41
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
mov bp, ax
and ebp, 0xffff
mov eax, dword [esp + 0x20]
test eax, eax
je 0x40dcd2
mov ecx, dword [esp + 0x30]
xor ecx, ebp
test ecx, 0x3ff
je 0x40dcd2
mov eax, dword [esp + 0x2070]
lea edx, [esp + 0x8ac]
push 0x800
push edx
push 0x44d
push eax
call ebx
push 0x30
lea ecx, [esp + 0x8b0]
push 0x42b7b0
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x14]
mov dword [0x42b8b0], 1
mov dword [esp + 0x24], 0
call fcn.0040b130
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x206c], 5
call fcn.0040b3f0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2068], 0
call fcn.0040b140
jmp 0x40ed2b
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x40dea5
lea edx, [esp + 0x9c]
push 0x104
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
mov edi, str._shdocvw.dll
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x9c]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x38], eax
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 ecx, edx
lea eax, [esp + 0x38]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xa0]
push ecx
call fcn.0040ee10
mov edx, dword [esp + 0x38]
add esp, 8
test eax, eax
jne 0x40ddf7
xor edx, ebp
test edx, 0x3ff
je 0x40dea5
mov ecx, dword [esp + 0x2070]
lea eax, [esp + 0x8ac]
push 0x800
push eax
push 0x452
push ecx
call ebx
push 0x42ae64
lea edx, [esp + 0x8b0]
push 0x42ae64
lea eax, [esp + 0x1868]
push edx
push eax
call fcn.00414780
add esp, 0x10
lea ecx, [esp + 0x1860]
push 0x34
push 0x42b7b0
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 7
jne 0x40dea5
lea ecx, [esp + 0x14]
mov dword [esp + 0x24], 0
mov dword [0x42b8b0], 1
call fcn.0040b130
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x206c], 6
call fcn.0040b3f0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2068], 0
call fcn.0040b140
jmp 0x40ed2b
xor edx, dword [esp + 0x38]
test edx, 0x3ff
je 0x40dea5
mov ecx, dword [esp + 0x2070]
lea eax, [esp + 0x8ac]
push 0x800
push eax
push 0x453
push ecx
call ebx
push 0x42ae64
lea edx, [esp + 0x8b0]
push 0x42ae64
lea eax, [esp + 0x1868]
push edx
push eax
call fcn.00414780
add esp, 0x10
lea ecx, [esp + 0x1860]
push 0x34
push 0x42b7b0
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 7
jne 0x40dea5
lea ecx, [esp + 0x14]
mov dword [esp + 0x24], 0
mov dword [0x42b8b0], 1
call fcn.0040b130
push 0
lea ecx, [esp + 0x18]
mov byte [esp + 0x206c], 7
call fcn.0040b3f0
lea ecx, [esp + 0x14]
mov byte [esp + 0x2068], 0
call fcn.0040b140
jmp 0x40ed2b
mov ebx, dword [esp + 0x18]
mov dword [0x42c070], 0
test bl, 1
jne 0x40e002
push 0x3c
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 8
je 0x40dedf
mov ecx, eax
call fcn.00410ef0
jmp 0x40dee1
xor eax, eax
push 0x413670
push 0x429d58
push 0x65
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c22c], eax
call fcn.004089f0
mov edx, dword [0x42c22c]
push 0x65
mov ecx, 0x42b5c8
mov eax, dword [edx + 0x2c]
push eax
call fcn.0040a990
mov ecx, dword [0x42c22c]
push 0x44
mov dword [ecx + 0x34], eax
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 9
je 0x40df48
mov ecx, eax
call fcn.00403010
jmp 0x40df4a
xor eax, eax
push 0x403060
push 0x429d58
push 0x68
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c234], eax
call fcn.004089f0
mov ecx, dword [0x42c234]
push 0x68
mov edx, dword [ecx + 0x2c]
mov ecx, 0x42b5c8
push edx
call fcn.0040a990
mov ecx, dword [0x42c234]
push 0xe8
mov dword [ecx + 0x34], eax
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0xa
je 0x40dfb4
mov ecx, eax
call fcn.0040fa60
jmp 0x40dfb6
xor eax, eax
push 0x410180
push 0x429d58
push 0x69
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c238], eax
call fcn.004089f0
mov eax, dword [0x42c238]
push 0x69
mov ecx, dword [eax + 0x2c]
push ecx
mov ecx, 0x42b5c8
call fcn.0040a990
mov ecx, dword [0x42c238]
mov ebp, dword [esp + 0x34]
mov dword [ecx + 0x34], eax
jmp 0x40e083
mov ebp, dword [esp + 0x34]
cmp ebp, 4
je 0x40e083
test bl, 0x10
je 0x40e083
push 0x3c
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0xb
je 0x40e033
mov ecx, eax
call fcn.00410ef0
jmp 0x40e035
xor eax, eax
push 0x413970
push 0x429d58
push 0x74
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c230], eax
call fcn.004089f0
mov edx, dword [0x42c230]
push 0x74
mov ecx, 0x42b5c8
mov eax, dword [edx + 0x2c]
push eax
call fcn.0040a990
mov ecx, dword [0x42c230]
mov dword [ecx + 0x34], eax
mov dword [0x42c070], 1
mov eax, dword [0x42c1f0]
test eax, eax
je 0x40e18c
cmp dword [0x42c1f8], 3
jne 0x40e18c
cmp dword [0x42c1fc], 0x33
jne 0x40e18c
push 0x29c8
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0xc
je 0x40e0d0
mov ecx, eax
call fcn.0040b560
jmp 0x40e0d2
xor eax, eax
push 0x40bc70
push 0x429d58
push 0x7f
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c264], eax
call fcn.004089f0
mov ecx, dword [0x42c264]
push 0x7f
mov edx, dword [ecx + 0x2c]
mov ecx, 0x42b5c8
push edx
call fcn.0040a990
mov ecx, dword [0x42c264]
test bl, 0x10
mov dword [ecx + 0x34], eax
jne 0x40eb26
push 0x3c
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0xd
je 0x40e142
mov ecx, eax
call fcn.00410ef0
jmp 0x40e144
xor eax, eax
push 0x40ae70
push 0x429d58
push 0x73
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c250], eax
call fcn.004089f0
mov eax, dword [0x42c250]
push 0x73
mov ecx, dword [eax + 0x2c]
push ecx
mov ecx, 0x42b5c8
call fcn.0040a990
mov ecx, dword [0x42c250]
mov dword [ecx + 0x34], eax
jmp 0x40eb26
mov edi, dword [esp + 0x20]
test edi, edi
je 0x40e1ff
push 0x3c
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0xe
je 0x40e1b7
mov ecx, eax
call fcn.00410ef0
jmp 0x40e1b9
xor eax, eax
push 0x408010
push 0x429d58
push 0x70
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c24c], eax
call fcn.004089f0
mov edx, dword [0x42c24c]
push 0x70
mov ecx, 0x42b5c8
mov eax, dword [edx + 0x2c]
push eax
call fcn.0040a990
mov ecx, dword [0x42c24c]
mov dword [ecx + 0x34], eax
jmp 0x40e20b
push 2
mov ecx, 0x42c224
call fcn.00404d40
mov esi, dword [esp + 0x40]
cmp esi, 4
je 0x40e21c
test edi, edi
je 0x40e29d
push 0x3c
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0xf
je 0x40e23f
mov ecx, eax
call fcn.00410ef0
jmp 0x40e241
xor eax, eax
push 0x4048d0
push 0x429d58
push 0x6d
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c240], eax
call fcn.004089f0
mov ecx, dword [0x42c240]
push 0x6d
mov edx, dword [ecx + 0x2c]
mov ecx, 0x42b5c8
push edx
call fcn.0040a990
mov ecx, dword [0x42c240]
cmp esi, 4
mov dword [ecx + 0x34], eax
jne 0x40e29d
mov eax, dword [0x42c240]
mov ecx, dword [eax + 0x34]
push ecx
mov ecx, 0x42b5c8
call fcn.0040a550
mov esi, dword [esp + 0x28]
test esi, esi
jne 0x40e31f
mov ecx, 0x42c224
call fcn.00404db0
cmp eax, 3
je 0x40e31f
push 0x3c
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0x10
je 0x40e2d7
mov ecx, eax
call fcn.00410ef0
jmp 0x40e2d9
xor eax, eax
push 0x404390
push 0x429d58
push 0x6c
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c23c], eax
call fcn.004089f0
mov edx, dword [0x42c23c]
push 0x6c
mov ecx, 0x42b5c8
mov eax, dword [edx + 0x2c]
push eax
call fcn.0040a990
mov ecx, dword [0x42c23c]
mov dword [ecx + 0x34], eax
jmp 0x40e33a
mov ecx, 0x42c224
call fcn.00404ca0
cmp eax, 4
je 0x40e33a
push 2
mov ecx, 0x42c224
call fcn.00404c30
cmp ebp, 4
je 0x40e347
test esi, esi
jne 0x40e3cc
push 0x3c
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0x11
je 0x40e36a
mov ecx, eax
call fcn.00410ef0
jmp 0x40e36c
xor eax, eax
push 0x4048d0
push 0x429d58
push 0x6d
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c240], eax
call fcn.004089f0
mov ecx, dword [0x42c240]
push 0x6d
mov edx, dword [ecx + 0x2c]
mov ecx, 0x42b5c8
push edx
call fcn.0040a990
mov ecx, dword [0x42c240]
cmp ebp, 4
mov dword [ecx + 0x34], eax
jne 0x40e3c8
mov eax, dword [0x42c240]
mov ecx, dword [eax + 0x34]
push ecx
mov ecx, 0x42b5c8
call fcn.0040a550
test esi, esi
je 0x40e443
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x40e443
push 0x3c
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0x12
je 0x40e3f7
mov ecx, eax
call fcn.00410ef0
jmp 0x40e3f9
xor eax, eax
push 0x410b60
push 0x429d58
push 0x92
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c26c], eax
call fcn.004089f0
mov edx, dword [0x42c26c]
push 0x92
mov ecx, 0x42b5c8
mov eax, dword [edx + 0x2c]
push eax
call fcn.0040a990
mov ecx, dword [0x42c26c]
mov dword [ecx + 0x34], eax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x40e4c3
mov al, byte [0x42b4bc]
test al, al
je 0x40e4c3
push 0x3c
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0x13
je 0x40e477
mov ecx, eax
call fcn.00410ef0
jmp 0x40e479
xor eax, eax
push 0x410f10
push 0x429d58
push 0x95
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c270], eax
call fcn.004089f0
mov ecx, dword [0x42c270]
push 0x95
mov edx, dword [ecx + 0x2c]
mov ecx, 0x42b5c8
push edx
call fcn.0040a990
mov ecx, dword [0x42c270]
mov dword [ecx + 0x34], eax
test bl, 2
jne 0x40e572
lea eax, [esp + 0x10ac]
mov ecx, 0x42b5c8
push eax
call fcn.0040ede0
mov ecx, eax
mov byte [esp + 0x2068], 0x14
call fcn.00411750
lea ecx, [esp + 0x10ac]
mov esi, eax
mov byte [esp + 0x2068], 0
call fcn.00411410
test esi, esi
je 0x40e572
push 0x3c
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0x15
je 0x40e52a
mov ecx, eax
call fcn.00410ef0
jmp 0x40e52c
xor eax, eax
push 0x40f1d0
push 0x429d58
push 0x6e
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c244], eax
call fcn.004089f0
mov ecx, dword [0x42c244]
push 0x6e
mov edx, dword [ecx + 0x2c]
mov ecx, 0x42b5c8
push edx
call fcn.0040a990
mov ecx, dword [0x42c244]
mov dword [ecx + 0x34], eax
jmp 0x40e584
or ebx, 2
mov ecx, 0x42c224
push ebx
mov dword [esp + 0x1c], ebx
call fcn.00404ef0
mov esi, ebx
and esi, 4
mov dword [esp + 0x20], esi
jne 0x40e7af
mov al, byte [0x42a210]
test al, al
jne 0x40e60a
push 0x40
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0x16
je 0x40e5bf
mov ecx, eax
call fcn.00402cb0
jmp 0x40e5c1
xor eax, eax
push 0x402cd0
push 0x429d58
push 0x94
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c258], eax
call fcn.004089f0
mov eax, dword [0x42c258]
push 0x94
mov ecx, dword [eax + 0x2c]
push ecx
mov ecx, 0x42b5c8
call fcn.0040a990
mov ecx, dword [0x42c258]
mov dword [ecx + 0x34], eax
lea ecx, [esp + 0x2c]
call fcn.0040b130
lea edx, [esp + 0x1a0]
mov ebp, 1
push 0x104
push edx
push ebp
push str.VsCommonDir
push str.softwaremicrosoftVisualstudio6.0_setup
push 0
lea ecx, [esp + 0x44]
mov byte [esp + 0x2080], 0x17
call fcn.0040b150
test eax, eax
je 0x40e72d
lea edi, [esp + 0x1a0]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + ecx + 0x1a0]
push eax
lea eax, [esp + 0x1a4]
push eax
call dword [sym.imp.USER32.dll_CharPrevA]
cmp byte [eax], 0x5c
je 0x40e6a8
mov edi, 0x4250bc
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1a0]
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 ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, 0x425db4
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1a0]
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 ecx, edx
lea eax, [esp + 0x2a4]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x1a4]
push ecx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x40e72d
mov edi, dword [sym.imp.KERNEL32.dll_FindNextFileA]
lea edx, [esp + 0x2a4]
push edx
push esi
call edi
test eax, eax
je 0x40e72d
mov bl, 0x2e
cmp byte [esp + 0x2d0], bl
jne 0x40e727
lea eax, [esp + 0x2a4]
push eax
push esi
call edi
test eax, eax
jne 0x40e70d
jmp 0x40e729
xor ebp, ebp
mov ebx, dword [esp + 0x18]
test ebp, ebp
je 0x40e79a
push 0x3c
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0x18
je 0x40e754
mov ecx, eax
call fcn.00410ef0
jmp 0x40e756
xor eax, eax
push 0x407430
push 0x429d58
push 0x79
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0x17
mov dword [0x42c25c], eax
call fcn.004089f0
mov ecx, dword [0x42c25c]
push 0x79
mov edx, dword [ecx + 0x2c]
mov ecx, 0x42b5c8
push edx
call fcn.0040a990
mov ecx, dword [0x42c25c]
mov dword [ecx + 0x34], eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x2068], 0
call fcn.0040b140
mov esi, dword [esp + 0x20]
mov ecx, 0x42c224
call fcn.00404e50
test al, 4
jne 0x40e837
mov al, byte [0x42a210]
test al, al
jne 0x40e837
push 0x2ac
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0x19
je 0x40e7ec
mov ecx, eax
call fcn.004123b0
jmp 0x40e7ee
xor eax, eax
push 0x412d80
push 0x429d58
push 0x80
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c268], eax
call fcn.004089f0
mov eax, dword [0x42c268]
push 0x80
mov ecx, dword [eax + 0x2c]
push ecx
mov ecx, 0x42b5c8
call fcn.0040a990
mov ecx, dword [0x42c268]
mov dword [ecx + 0x34], eax
test esi, esi
jne 0x40e8a4
push 0x3c
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0x1a
je 0x40e85e
mov ecx, eax
call fcn.00410ef0
jmp 0x40e860
xor eax, eax
push 0x406360
push 0x429d58
push 0x6f
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c248], eax
call fcn.004089f0
mov edx, dword [0x42c248]
push 0x6f
mov ecx, 0x42b5c8
mov eax, dword [edx + 0x2c]
push eax
call fcn.0040a990
mov ecx, dword [0x42c248]
mov dword [ecx + 0x34], eax
test bl, 8
je 0x40e8b2
mov eax, dword [0x42c070]
test eax, eax
je 0x40e924
mov al, byte [0x42ad53]
test al, al
je 0x40e924
push 0x3c
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0x1b
je 0x40e8de
mov ecx, eax
call fcn.00410ef0
jmp 0x40e8e0
xor eax, eax
push 0x407a40
push 0x429d58
push 0x71
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c254], eax
call fcn.004089f0
mov ecx, dword [0x42c254]
push 0x71
mov edx, dword [ecx + 0x2c]
mov ecx, 0x42b5c8
push edx
call fcn.0040a990
mov ecx, dword [0x42c254]
mov dword [ecx + 0x34], eax
push 0x1b04
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0x1c
je 0x40e94c
mov ecx, eax
call section..text
mov esi, eax
jmp 0x40e94e
xor esi, esi
mov dword [0x42c260], esi
mov eax, dword [esi + 0x3c]
test eax, eax
mov byte [esp + 0x2068], 0
je 0x40e99b
push 0x4013d0
push 0x429d58
push 0x77
push 0x42b5c8
mov ecx, esi
call fcn.004089f0
mov eax, dword [0x42c260]
push 0x77
mov ecx, dword [eax + 0x2c]
push ecx
mov ecx, 0x42b5c8
call fcn.0040a990
mov ecx, dword [0x42c260]
mov dword [ecx + 0x34], eax
jmp 0x40e9b9
test esi, esi
je 0x40e9af
mov ecx, esi
call fcn.004089a0
push esi
call fcn.004162a0
add esp, 4
mov dword [0x42c260], 0
mov ecx, dword [0x42c264]
test ecx, ecx
jne 0x40e9fb
push 0x29c8
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0x1d
je 0x40e9e9
mov ecx, eax
call fcn.0040b560
jmp 0x40e9eb
xor eax, eax
mov ecx, eax
mov byte [esp + 0x2068], 0
mov dword [0x42c264], ecx
mov eax, dword [ecx + 0x40]
test eax, eax
je 0x40ea39
push 0x40bc70
push 0x429d58
push 0x7f
push 0x42b5c8
call fcn.004089f0
mov edx, dword [0x42c264]
push 0x7f
mov ecx, 0x42b5c8
mov eax, dword [edx + 0x2c]
push eax
call fcn.0040a990
mov ecx, dword [0x42c264]
mov dword [ecx + 0x34], eax
jmp 0x40ea57
mov esi, ecx
test esi, esi
je 0x40ea4d
call fcn.004089a0
push esi
call fcn.004162a0
add esp, 4
mov dword [0x42c264], 0
test bl, 0x10
jne 0x40eac5
push 0x3c
call fcn.004162b0
add esp, 4
mov dword [esp + 0x10], eax
test eax, eax
mov byte [esp + 0x2068], 0x1e
je 0x40ea7f
mov ecx, eax
call fcn.00410ef0
jmp 0x40ea81
xor eax, eax
push 0x40ae70
push 0x429d58
push 0x73
push 0x42b5c8
mov ecx, eax
mov byte [esp + 0x2078], 0
mov dword [0x42c250], eax
call fcn.004089f0
mov ecx, dword [0x42c250]
push 0x73
mov edx, dword [ecx + 0x2c]
mov ecx, 0x42b5c8
push edx
call fcn.0040a990
mov ecx, dword [0x42c250]
mov dword [ecx + 0x34], eax
mov ecx, 0x42c224
call fcn.00404e50
mov ebx, eax
test bl, 0x40
je 0x40eaed
mov eax, dword [0x42c260]
test eax, eax
je 0x40eaed
mov eax, dword [eax + 0x34]
mov ecx, 0x42b5c8
push eax
call fcn.0040a550
test bl, 0x80
je 0x40eb09
mov eax, dword [0x42c264]
test eax, eax
je 0x40eb09
mov ecx, dword [eax + 0x34]
push ecx
mov ecx, 0x42b5c8
call fcn.0040a550
mov eax, dword [0x42c070]
test eax, eax
jne 0x40eb17
call fcn.0040d310
push str.RICHED32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov dword [esp + 0x14], eax
mov ecx, 0x42b5c8
call fcn.0040a970
mov esi, dword [0x42c22c]
test esi, esi
je 0x40eb4a
mov ecx, esi
call fcn.00410f00
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c230]
test esi, esi
je 0x40eb64
mov ecx, esi
call fcn.004089a0
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c234]
test esi, esi
je 0x40eb7e
mov ecx, esi
call fcn.00403030
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c238]
test esi, esi
je 0x40eb98
mov ecx, esi
call fcn.00410f00
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c23c]
test esi, esi
je 0x40ebb2
mov ecx, esi
call fcn.00410f00
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c240]
test esi, esi
je 0x40ebcc
mov ecx, esi
call fcn.004089a0
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c244]
test esi, esi
je 0x40ebe6
mov ecx, esi
call fcn.004089a0
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c248]
test esi, esi
je 0x40ec00
mov ecx, esi
call fcn.004089a0
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c24c]
test esi, esi
je 0x40ec1a
mov ecx, esi
call fcn.004089a0
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c250]
test esi, esi
je 0x40ec34
mov ecx, esi
call fcn.004089a0
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c254]
test esi, esi
je 0x40ec4e
mov ecx, esi
call fcn.004089a0
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c258]
test esi, esi
je 0x40ec68
mov ecx, esi
call fcn.004089a0
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c25c]
test esi, esi
je 0x40ec82
mov ecx, esi
call fcn.004089a0
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c260]
test esi, esi
je 0x40ec9c
mov ecx, esi
call fcn.004089a0
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c264]
test esi, esi
je 0x40ecb6
mov ecx, esi
call fcn.004089a0
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c268]
test esi, esi
je 0x40ecd0
mov ecx, esi
call fcn.004127c0
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c26c]
test esi, esi
je 0x40ecea
mov ecx, esi
call fcn.00410f00
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [0x42c270]
test esi, esi
je 0x40ed04
mov ecx, esi
call fcn.00410f00
push esi
call fcn.004162a0
add esp, 4
mov esi, dword [esp + 0x44]
test esi, esi
je 0x40ed1a
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x40ed2b
mov edx, eax
push edx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov ecx, 0x42c224
call fcn.00404e50
mov ebx, eax
test bh, 0x30
je 0x40ed4a
and bh, 0xcf
mov ecx, 0x42c224
push ebx
call fcn.00404ef0
mov ecx, dword [esp + 0x2070]
lea eax, [esp + 0x7a8]
push 0x104
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x7a8]
push edx
call fcn.00415180
add esp, 4
lea eax, [esp + 0x7a8]
push str.vs60wiz.exe
push eax
call fcn.00414e70
add esp, 8
test eax, eax
je 0x40eda1
mov eax, dword [0x42b8b0]
test eax, eax
jne 0x40ed9c
test bl, 0x10
je 0x40eda1
call fcn.0040c7c0
lea ecx, [esp + 0x1c]
mov dword [esp + 0x2068], 0xffffffff
call fcn.0040b140
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x2060]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x205c
ret 0x10