Function at 0x403ce0
Capabilities:
Check if file exists
Create process on windows
Delete file
Get common file path
Get file attributes

Disassembly:
mov eax, 0x5894
call fcn.00409b70
push ebx
xor ebx, ebx
push esi
lea ecx, [esp + 0x34]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 8], ebx
call fcn.00402c40
lea ecx, [esp + 0x28]
call fcn.00402c40
push ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x40], 1
call dword [sym.imp.KERNEL32.dll_SetLastError]
push 0x1c
call fcn.00408a4d
add esp, 4
cmp eax, ebx
je 0x403d3e
mov ecx, eax
call fcn.004014b0
mov esi, eax
cmp esi, ebx
mov dword [esp + 0x10], esi
jne 0x403d5e
lea ecx, [esp + 0x28]
call fcn.00403970
lea ecx, [esp + 0x34]
call fcn.00403970
pop esi
or eax, 0xffffffff
pop ebx
add esp, 0x5894
ret 0x10
push ebp
push edi
mov dword [esp + 0x10], ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLCID]
mov ecx, dword [esp + 0x58a8]
push eax
lea eax, [esp + 0x14]
push ebx
push eax
push ecx
call dword [sym.imp.SQLRESLD.dll_SQLUILoadResourceDLL]
add esp, 0x10
test eax, eax
jne 0x403d8e
or esi, 0xffffffff
jmp 0x404b38
push ebx
mov ecx, esi
call fcn.00401520
cmp eax, 0xffffffff
jne 0x403db2
mov edx, dword [esp + 0x10]
mov esi, 0x57
push edx
call fcn.00404bb0
add esp, 4
jmp 0x404b38
mov ecx, 0x141
xor eax, eax
lea edi, [esp + 0x1650]
mov ebp, dword [esp + 0x58b0]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov ecx, 0x141
xor eax, eax
lea edi, [esp + 0x230]
push 0x413578
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov ecx, 0x141
xor eax, eax
lea edi, [esp + 0x256c]
push ebp
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov ecx, 0x141
xor eax, eax
lea edi, [esp + 0x740]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov ecx, 0x141
xor eax, eax
lea edi, [esp + 0x1b60]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov ecx, 0x141
xor eax, eax
lea edi, [esp + 0x2a78]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov ecx, 0x141
xor eax, eax
lea edi, [esp + 0x2068]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov ecx, 0x141
xor eax, eax
lea edi, [esp + 0xc48]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov ecx, 0x41
xor eax, eax
lea edi, [esp + 0x130]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
call fcn.00408bd0
add esp, 8
test eax, eax
jne 0x404b29
push 0x413574
push ebp
call fcn.00408bd0
add esp, 8
test eax, eax
jne 0x404b29
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
jae 0x403f3e
push 0x14
call fcn.00408a4d
add esp, 4
cmp eax, ebx
je 0x403eaa
mov ecx, eax
call fcn.00402390
mov esi, eax
cmp esi, ebx
jne 0x403eb4
mov esi, 0xe
jmp 0x404b38
mov ecx, esi
call fcn.00402400
mov ecx, esi
mov edi, eax
call fcn.004023f0
push esi
call fcn.004089c0
add esp, 4
cmp edi, ebx
jne 0x403f3e
push str.kRm
push ebp
call fcn.00408bd0
add esp, 8
test eax, eax
je 0x403eed
mov esi, 0x522
jmp 0x404b38
mov ecx, dword [esp + 0x10]
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [esp + 0x3480]
push 0x800
push eax
push 0xd
push ecx
call esi
lea edx, [esp + 0xc8]
push 0x60
mov eax, dword [esp + 0x14]
push edx
push 9
push eax
call esi
lea ecx, [esp + 0xc8]
push ebx
lea edx, [esp + 0x3484]
push ecx
push edx
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
mov esi, 0x522
jmp 0x404b38
lea eax, [esp + 0x2060]
push eax
push 0x505
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
lea ecx, [esp + 0xc40]
push 0x505
push ecx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
lea edi, [esp + 0x2060]
je 0x403f76
lea edi, [esp + 0xc40]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x1b58]
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x2a70]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
push 0x4131d8
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x1b5c]
or ecx, 0xffffffff
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 + 0x1b5c]
push ecx
call fcn.00408bd0
mov edx, eax
add esp, 8
cmp edx, ebx
je 0x40408a
lea edi, [esp + 0x1b58]
or ecx, 0xffffffff
xor eax, eax
xor ebp, ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x1b58]
mov ebx, ecx
sub eax, edx
add ebx, eax
lea ecx, [edx + 2]
inc edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], edx
mov edi, dword [esp + 0x2c]
mov ecx, ebx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov ecx, 8
xor eax, eax
lea edi, [esp + 0x64]
rep stosd dword es:[edi], eax
mov eax, ebp
inc ebp
push eax
lea eax, [esp + 0x68]
push str.setup_d.iss
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea edi, [esp + 0x70]
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, dword [esp + 0x1c]
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 + 0x1b58]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x404010
jmp 0x4040b3
mov edi, str.setupiss.iss
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1b58]
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, dword [esp + 0x58b0]
push 0x413548
push esi
call fcn.00408bd0
add esp, 8
test eax, eax
je 0x404154
push 0x413544
push esi
call fcn.00408bd0
add esp, 8
test eax, eax
je 0x404154
mov edi, str.stpsilnt._ex
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x128]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebx, 1
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x413530
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov dword [esp + 0x20], ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
call fcn.004017c0
test eax, eax
je 0x404218
push 0
mov ecx, eax
call fcn.004039f0
mov edx, eax
test edx, edx
je 0x404218
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x404218
jmp 0x4041f2
push 0x41352c
push esi
call fcn.00408bd0
add esp, 8
test eax, eax
je 0x404195
mov edi, str.isuninst.exe
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x128]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov ebx, 2
mov eax, ecx
mov esi, edi
mov edi, edx
mov dword [esp + 0x1c], ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
jmp 0x404213
mov edi, 0x413510
or ecx, 0xffffffff
xor eax, eax
xor ebx, ebx
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x128]
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x41350c
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov dword [esp + 0x20], ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [esp + 0x1c]
call fcn.004017c0
test eax, eax
je 0x404218
push ebx
mov ecx, eax
call fcn.004039f0
mov edx, eax
test edx, edx
je 0x404218
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x404218
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
lea ebp, [esp + 0x128]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebp
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ebp, dword [esp + 0x58a8]
lea eax, [esp + 0x60]
lea ecx, [esp + 0x34]
push eax
lea edx, [esp + 0x234]
push ecx
mov ecx, dword [esp + 0x18]
lea eax, [esp + 0x130]
push edx
push eax
push str.SetupSourcePath
push 1
push ecx
push ebp
mov dword [esp + 0x54], 0x505
call fcn.00406250
mov esi, eax
add esp, 0x20
test esi, esi
je 0x404277
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x230]
push edx
push esi
push eax
call fcn.00406790
add esp, 0xc
jmp 0x404b38
cmp ebx, 2
jne 0x404377
lea ecx, [esp + 0xc40]
push ecx
call fcn.00409ac3
add esp, 4
lea edx, [esp + 0x230]
push eax
push edx
call fcn.00409ac3
add esp, 4
push eax
call fcn.00408bd0
add esp, 8
test eax, eax
jne 0x40431f
lea edi, [esp + 0xc40]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov al, byte [esp + ecx + 0xc3f]
lea ecx, [esp + 0xc40]
cmp al, 0x5c
lea eax, [esp + 0x230]
push eax
push ecx
jne 0x4042df
push str._s_s
jmp 0x4042e4
push 0x4134ec
lea edx, [esp + 0x206c]
push edx
call fcn.00409a71
lea edi, [esp + 0x2070]
or ecx, 0xffffffff
xor eax, eax
add esp, 0x10
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x230]
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 edi, [esp + 0xc40]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1650]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x738]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x230]
or ecx, 0xffffffff
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 0x4043d2
lea edi, [esp + 0x230]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1650]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x738]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x1650]
or ecx, 0xffffffff
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]
jne 0x404400
lea eax, [esp + 0x128]
push eax
call fcn.00409ac3
add esp, 4
lea ecx, [esp + 0x738]
push eax
push ecx
call fcn.00409ac3
add esp, 4
push eax
call fcn.00408bd0
add esp, 8
test eax, eax
jne 0x404433
lea edi, [esp + 0x128]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x738]
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]
lea edi, [esp + 0x738]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x3c80]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x34], 0x505
mov eax, ecx
mov esi, edi
mov edi, edx
lea edx, [esp + 0x34]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x141
lea edi, [esp + 0x1148]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x4c]
stosb byte es:[edi], al
push ecx
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x114c]
push edx
push eax
push str.setup.ins
push str.SetupPath
push 0
push ecx
push ebp
call fcn.00406250
mov esi, eax
add esp, 0x20
test esi, esi
jne 0x404b11
lea edx, [esp + 0x1148]
push 0x505
push edx
call fcn.00408300
add esp, 8
test eax, eax
je 0x4044f7
mov edi, 0x413040
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x1148]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea eax, [esp + 0x230]
lea ecx, [esp + 0x1148]
push eax
push ecx
call fcn.00408b40
add esp, 8
test eax, eax
je 0x404572
lea edx, [esp + 0x230]
push edx
call fcn.00409ac3
add esp, 4
push eax
lea eax, [esp + 0x114c]
push eax
call fcn.00409ac3
add esp, 4
push eax
call fcn.00408bd0
add esp, 8
test eax, eax
jne 0x404583
mov edi, str.setup.ins
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x1148]
mov esi, edi
mov ebp, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
jmp 0x404583
mov ecx, 0x141
xor eax, eax
lea edi, [esp + 0x1148]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov ebp, dword [esp + 0x58b0]
lea eax, [esp + 0x4b98]
lea ecx, [esp + 0x1148]
push eax
lea edx, [esp + 0x256c]
push ecx
lea eax, [esp + 0x4698]
push edx
lea ecx, [esp + 0x30]
push eax
lea edx, [esp + 0x74]
push ecx
mov ecx, dword [esp + 0x2c]
lea eax, [esp + 0x2a84]
push edx
mov edx, dword [esp + 0x28]
push eax
push ebp
push ecx
push edx
call fcn.00404c10
add esp, 0x28
test eax, eax
jne 0x4045db
or esi, 0xffffffff
jmp 0x404b38
push str.2077F928_499C_11d2_9D9C_00C04F79D434
push 0
push 0x1f0003
call dword [sym.imp.KERNEL32.dll_OpenEventA]
test eax, eax
mov dword [esp + 0x2c], eax
jne 0x404689
push str.2077F928_499C_11d2_9D9C_00C04F79D434
push 1
push eax
push eax
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov dword [esp + 0x2c], eax
mov ecx, 0x11
xor eax, eax
lea edi, [esp + 0x84]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x84]
mov dword [esp + 0x84], 0x44
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
lea edi, [esp + 0x1650]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp byte [esp + ecx + 0x164f], 0x5c
jne 0x404668
lea edi, [esp + 0x1650]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + ecx + 0x164f], al
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
jae 0x404713
lea ecx, [esp + 0x738]
mov dword [esp + 0x14], ecx
jmp 0x404788
push str.kCl
push ebp
call fcn.00408bd0
add esp, 8
test eax, eax
jne 0x40460c
cmp ebx, 2
je 0x40460c
push str.kRm
push ebp
call fcn.00408bd0
add esp, 8
test eax, eax
je 0x4046c2
or esi, 0xffffffff
jmp 0x404b38
mov ecx, dword [esp + 0x10]
mov esi, dword [sym.imp.USER32.dll_LoadStringA]
lea eax, [esp + 0x3480]
push 0x800
push eax
push 0xc
push ecx
call esi
lea edx, [esp + 0xc8]
push 0x60
mov eax, dword [esp + 0x14]
push edx
push 9
push eax
call esi
lea ecx, [esp + 0xc8]
push 0
lea edx, [esp + 0x3484]
push ecx
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
or esi, 0xffffffff
jmp 0x404b38
lea edi, [esp + 0x2568]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x738]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0x14], 0
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 edx, [esp + 0x2568]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x141
lea edi, [esp + 0x2568]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
lea edi, [esp + 0x738]
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]
cmp ebx, 2
je 0x4048cb
push 0
lea ecx, [esp + 0x34]
call fcn.00402c50
test eax, eax
je 0x404890
mov eax, 0x505
mov ecx, 0x141
mov dword [esp + 0x48], eax
mov dword [esp + 0x40], eax
xor eax, eax
lea edi, [esp + 0x2f78]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
mov ecx, 0x141
xor eax, eax
lea edi, [esp + 0x4188]
push 0
rep stosd dword es:[edi], eax
push 0
push 0
push 0
lea ecx, [esp + 0x50]
stosb byte es:[edi], al
push 0
lea edx, [esp + 0x419c]
push ecx
lea eax, [esp + 0x60]
push edx
lea ecx, [esp + 0x2f94]
push eax
push ecx
lea ecx, [esp + 0x54]
call fcn.00402d40
test eax, eax
je 0x404890
mov ecx, 0x141
xor eax, eax
lea edi, [esp + 0x230]
lea edx, [esp + 0x230]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
lea edi, [esp + 0x2f78]
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
lea edx, [esp + 0x230]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str._binn_sqlservr.exe
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x230]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x404890
mov dword [esp + 0x38], 1
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x24]
push ecx
mov ecx, dword [esp + 0x14]
push edx
lea eax, [esp + 0x1658]
push ebp
push eax
push ecx
call fcn.004068c0
add esp, 0x14
cmp eax, 0xffffffff
mov dword [esp + 0x20], eax
jne 0x4048c0
or esi, eax
jmp 0x404b38
test eax, eax
je 0x4048cb
mov esi, eax
jmp 0x404b38
mov ecx, dword [esp + 0x18]
push 0x4134a0
call fcn.004017c0
test eax, eax
je 0x4048e1
xor ebp, ebp
jmp 0x404950
mov edx, dword [esp + 0x10]
push edx
call fcn.004071e0
add esp, 4
mov dword [esp + 0x20], eax
test eax, eax
je 0x404904
call fcn.004073d0
mov esi, dword [esp + 0x20]
jmp 0x404b38
mov eax, dword [esp + 0x10]
push 0x410
push eax
call fcn.004079b0
add esp, 8
mov dword [esp + 0x20], eax
test eax, eax
je 0x404937
mov ecx, dword [esp + 0x10]
push 0x1200
push ecx
mov esi, eax
call fcn.004079b0
add esp, 8
jmp 0x404b38
push str.DDB6578C_4C90_4f49_A5ED_80DFB1A5BDB3
push 0
push 1
push 0
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ebp, dword [esp + 0x44]
mov dword [esp + 0x28], eax
lea edx, [esp + 0x50]
lea eax, [esp + 0x84]
push edx
lea ecx, [esp + 0x1654]
push eax
mov eax, dword [esp + 0x1c]
push ecx
push 0
push 8
push 0
push 0
lea edx, [esp + 0x2584]
push 0
push edx
push eax
call dword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
jne 0x4049b1
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
lea ecx, [esp + 0x3c80]
mov esi, eax
push ecx
call edi
mov edx, dword [esp + 0x14]
push eax
push edx
call fcn.00406790
mov ebp, dword [esp + 0x34]
add esp, 0xc
jmp 0x404b00
mov eax, dword [esp + 0x50]
mov ebx, dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
push 0xffffffffffffffff
push eax
call ebx
cmp eax, 0xffffffff
je 0x4049db
mov edx, dword [esp + 0x50]
lea ecx, [esp + 0x20]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov esi, dword [esp + 0x20]
jmp 0x4049de
or esi, 0xffffffff
mov eax, dword [esp + 0x54]
mov edi, dword [sym.imp.KERNEL32.dll_CloseHandle]
push eax
call edi
mov ecx, dword [esp + 0x50]
push ecx
call edi
test ebp, ebp
je 0x404a3e
mov ebp, dword [esp + 0x28]
or edi, 0xffffffff
test ebp, ebp
je 0x404a0b
push 0x493e0
push ebp
call ebx
mov edi, eax
cmp edi, 0x102
jne 0x404a26
mov edx, dword [esp + 0x10]
push edx
call fcn.00407680
add esp, 4
test eax, eax
jne 0x404a2a
jmp 0x4049fd
test edi, edi
jne 0x4049fd
mov eax, dword [esp + 0x10]
push 0x1200
push eax
call fcn.004079b0
add esp, 8
jmp 0x404a42
mov ebp, dword [esp + 0x28]
push esi
lea ecx, [esp + 0x3484]
push str.nReturn___d
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, 0x200
xor eax, eax
lea edi, [esp + 0x50ac]
mov ebx, dword [esp + 0x28]
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
lea edx, [esp + 0x50ac]
push 0x801
lea eax, [esp + 0x24]
push edx
mov edx, dword [esp + 0x58c4]
push eax
mov eax, dword [esp + 0x30]
lea ecx, [esp + 0xc58]
push ebx
push ecx
push edx
push eax
mov dword [esp + 0x3c], 0xffffffff
call fcn.00406b00
add esp, 0x28
cmp ebx, 2
mov edi, eax
je 0x404af6
test esi, esi
jne 0x404ae4
mov eax, dword [esp + 0x24]
test eax, eax
je 0x404ae4
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
jae 0x404ae4
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
lea edx, [esp + 0x4690]
push ecx
mov ecx, dword [esp + 0x14]
push edx
push eax
push ecx
call fcn.00405e00
add esp, 0x10
mov esi, eax
test edi, edi
jne 0x404b00
test esi, esi
je 0x404b00
cmp esi, 0xbc2
je 0x404b00
jmp 0x404afc
test edi, edi
mov esi, edi
jne 0x404b00
mov esi, dword [esp + 0x14]
test ebp, ebp
je 0x404b38
mov edx, dword [esp + 0x28]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x404b38
mov ecx, dword [esp + 0x10]
lea eax, [esp + 0x1148]
push eax
push esi
push ecx
call fcn.00406790
add esp, 0xc
jmp 0x404b38
mov edx, dword [esp + 0x10]
push edx
call fcn.00404bb0
add esp, 4
xor esi, esi
mov eax, dword [esp + 0x10]
pop edi
test eax, eax
pop ebp
je 0x404b58
mov ecx, dword [esp + 0x58a0]
lea eax, [esp + 8]
push eax
push ecx
call dword [sym.imp.SQLRESLD.dll_SQLUIUnloadResourceDLL]
add esp, 8
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x404b6e
lea edx, [esp + 0x1b50]
push edx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ecx, dword [esp + 0x10]
push 1
mov eax, dword [ecx]
call dword [eax]
mov eax, dword [esp + 0x24]
test eax, eax
je 0x404b8f
mov ecx, dword [esp + 0x1c]
test ecx, ecx
je 0x404b8f
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
lea ecx, [esp + 0x28]
call fcn.00403970
lea ecx, [esp + 0x34]
call fcn.00403970
mov eax, esi
pop esi
pop ebx
add esp, 0x5894
ret 0x10