Function at 0x411bba
Capabilities:
Check if file exists
Get disk information
Query environment variable

Disassembly:
push ebp
lea ebp, [esp - 0x2870]
mov eax, 0x2870
call fcn.004e5a80
push 0xffffffffffffffff
push 0x513ca8
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x5ff740]
xor eax, ebp
mov dword [ebp + 0x286c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, edx
mov eax, dword [esi]
mov dword [ebp - 0x34], ecx
mov ecx, dword [eax - 0xc]
cmp ecx, 4
mov dword [ebp - 0x30], esi
jl 0x412ec7
test ecx, ecx
jge 0x411c1e
push 0x80070057
call fcn.0040298d
movzx edx, word [eax]
cmp dx, 0x2e
jne 0x411c3a
cmp ecx, 1
jl 0x411c14
movzx eax, word [eax + 2]
cmp ax, 0x5c
je 0x412ec7
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x412ec7
call fcn.004be6f3
push eax
lea ecx, [ebp - 0x40]
call fcn.004027f9
and dword [ebp - 4], 0
mov eax, dword [esi]
lea ecx, [ebp - 0x40]
push ecx
push eax
mov ecx, 0x609b00
call fcn.004cc99a
test eax, eax
jne 0x412ebc
mov byte [ebp - 4], 1
call fcn.004be6f3
push eax
lea ecx, [ebp - 0x14]
call fcn.004027f9
mov byte [ebp - 4], 2
call fcn.004be6f3
push eax
lea ecx, [ebp - 0x24]
call fcn.004027f9
mov byte [ebp - 4], 3
call fcn.004be6f3
push eax
lea ecx, [ebp - 0x18]
call fcn.004027f9
mov byte [ebp - 4], 4
call fcn.004be6f3
push eax
lea ecx, [ebp - 0x1c]
call fcn.004027f9
mov byte [ebp - 4], 5
call fcn.004be6f3
push eax
lea ecx, [ebp - 0x20]
call fcn.004027f9
push esi
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 6
call fcn.004025da
lea edi, [ebp - 0x14]
call fcn.004140e6
mov ebx, edi
call fcn.0040dbe8
call fcn.0040db9b
mov ebx, dword [ebp - 0x14]
push ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x411d4f
push dword [esi]
mov ecx, 0x609b00
call fcn.004ccb16
push 0x5b0d34
mov ecx, eax
call fcn.00402719
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.0040285b
lea ecx, [ebx - 0x10]
call fcn.0040285b
jmp 0x412ebc
cmp dword [ebx - 0xc], 4
jl 0x411cfe
xor edi, edi
mov dword [ebp - 0x2c], edi
cmp edi, 4
jge 0x411da1
mov eax, edi
sub eax, 0
je 0x411d84
dec eax
je 0x411d7d
dec eax
je 0x411d76
dec eax
jne 0x411d9e
push str.architecture
jmp 0x411d89
push 0x5b3604
jmp 0x411d89
push str.version
jmp 0x411d89
push str.type
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.0040788c
cmp eax, 0xffffffff
je 0x411d9b
inc dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
inc edi
jmp 0x411d5a
cmp dword [ebp - 0x2c], 1
jle 0x411dfc
push ebx
call dword [sym.imp.SHLWAPI.dll_PathIsFileSpecW]
test eax, eax
setne al
test al, al
jne 0x411cfe
cmp dword [ebx - 0xc], 0
jl 0x411c14
movzx eax, word [ebx]
push eax
call fcn.004e0163
pop ecx
test eax, eax
je 0x411cfe
cmp dword [ebp - 0x2c], 2
jg 0x411cfe
xor edi, edi
push edi
push 0x2e
lea ecx, [ebp - 0x14]
call fcn.00414092
cmp eax, 0xffffffff
jne 0x411e61
cmp edi, 4
jg 0x411cfe
push str.rundll32
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.0040788c
mov esi, eax
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
je 0x411e69
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.0040285b
lea ecx, [ebx - 0x10]
call fcn.0040285b
mov bl, 1
mov ecx, dword [ebp - 0x40]
add ecx, 0xfffffff0
call fcn.0040285b
mov al, bl
jmp 0x412ec9
inc edi
inc eax
push eax
jmp 0x411de4
test esi, esi
je 0x412e02
cmp esi, 1
jne 0x411e8d
cmp dword [ebx - 0xc], 0
jl 0x411c14
movzx eax, word [ebx]
cmp ax, 0x22
je 0x412e02
push 0x5b3630
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.0040788c
mov esi, eax
lea eax, [esi - 3]
cmp eax, 3
ja 0x411f51
mov ecx, dword [ebp - 0x30]
push esi
lea eax, [ebp - 0x44]
push eax
call fcn.00407984
lea edi, [ebp - 0x44]
mov byte [ebp - 4], 7
call fcn.004140e6
push 0x5b3638
mov ecx, edi
call fcn.0040dd09
xor edi, edi
cmp eax, edi
je 0x411f11
push str.file
lea ecx, [ebp - 0x44]
call fcn.0040dd09
cmp eax, edi
je 0x411f11
mov eax, dword [ebp - 0x30]
push dword [eax]
mov ecx, 0x609b00
call fcn.004ccb16
push 0x5b0d34
mov ecx, eax
call fcn.00402719
mov ecx, dword [ebp - 0x44]
add ecx, 0xfffffff0
call fcn.0040285b
jmp 0x411e19
push edi
lea ecx, [ebp - 0x14]
lea eax, [esi + 3]
push ecx
call fcn.0040726b
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], edi
jl 0x411c14
movzx eax, word [eax]
cmp ax, 0x2f
je 0x411f82
push 0x5c
push 0x2f
lea ebx, [ebp - 0x14]
call fcn.00413edb
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x44]
add ecx, 0xfffffff0
call fcn.0040285b
mov ebx, dword [ebp - 0x14]
push 0
push 0x3b
lea ecx, [ebp - 0x14]
call fcn.00414092
cmp eax, 0xffffffff
je 0x411f8c
mov eax, dword [ebp - 0x30]
push dword [eax]
mov ecx, 0x609b00
call fcn.004ccb16
push 0x5b0d34
mov ecx, eax
call fcn.00402719
jmp 0x411e19
lea eax, [ebp - 0x14]
push edi
push eax
xor eax, eax
inc eax
jmp 0x411f19
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x411e19
push eax
push 0x2a
lea ecx, [ebp - 0x14]
call fcn.00414092
mov dword [ebp - 0x38], eax
cmp eax, 0xffffffff
je 0x41204e
mov edi, dword [ebx - 0xc]
push 0x5b364c
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.0040788c
add edi, 0xfffffffe
cmp eax, edi
je 0x411fe2
mov edi, dword [ebx - 0xc]
push 0x5b3654
xor ecx, ecx
call fcn.0040788c
add edi, 0xfffffffe
cmp eax, edi
jne 0x411ff6
mov ebx, dword [ebx - 0xc]
dec ebx
push ebx
lea eax, [ebp - 0x14]
push eax
xor eax, eax
inc eax
call fcn.0040726b
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x38]
inc esi
push esi
push 0x5c
lea ecx, [ebp - 0x14]
call fcn.00414092
or edi, 0xffffffff
cmp eax, edi
jne 0x411f62
push esi
push 0x2a
lea ecx, [ebp - 0x14]
call fcn.00414092
cmp eax, edi
jne 0x411f62
push 0
push 0x3f
lea ecx, [ebp - 0x14]
call fcn.00414092
cmp eax, edi
jne 0x411f62
push 0x5b365c
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.0040788c
cmp eax, edi
jne 0x411f62
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x411e19
mov edx, dword [ebx - 0xc]
xor edi, edi
cmp edx, edi
jl 0x411c14
movzx eax, word [ebx]
cmp ax, 0x40
jne 0x4120b1
cmp edx, 1
jl 0x411c14
movzx eax, word [ebx + 2]
movzx ecx, ax
cmp cx, 0x25
je 0x4120a1
cmp edx, 1
jl 0x411c14
movzx eax, ax
push eax
call fcn.004e0163
pop ecx
test eax, eax
je 0x4120b1
push edi
lea eax, [ebp - 0x14]
push eax
xor eax, eax
inc eax
call fcn.0040726b
mov ebx, dword [ebp - 0x14]
cmp byte [ebp + 0x2890], 0
jne 0x4120d9
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x411e19
push ebx
call dword [sym.imp.SHLWAPI.dll_PathIsNetworkPathW]
test eax, eax
jne 0x411f62
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x411e19
cmp byte [ebp + 0x287c], al
je 0x412102
lea eax, [ebp - 0x14]
push eax
call fcn.00410fee
test al, al
jne 0x411f62
cmp byte [ebp + 0x288c], 0
je 0x412331
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402305
mov byte [ebp - 4], 8
mov edi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
je 0x412136
lea ecx, [edi - 0x10]
jmp 0x411f07
push edi
call dword [sym.imp.SHLWAPI.dll_PathGetArgsW]
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402719
mov edi, dword [ebp - 0x2c]
cmp dword [edi - 0xc], 0
je 0x4121dd
push edi
call fcn.0041331e
test eax, eax
jge 0x412122
push edi
call fcn.004113d8
pop ecx
lea edi, [ebp - 0x2c]
mov byte [ebp - 0x25], al
call fcn.004140e6
push str..exe
xor ecx, ecx
mov esi, edi
call fcn.0040788c
test eax, eax
jg 0x412191
push 0x5b1604
xor ecx, ecx
call fcn.0040788c
test eax, eax
jge 0x41211f
cmp byte [ebp - 0x25], 0
jne 0x41211f
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.0040285b
lea ecx, [ebx - 0x10]
call fcn.0040285b
xor bl, bl
jmp 0x411e4f
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x41212e
push 0x5b3664
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.0040788c
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x25], 1
test eax, eax
jne 0x412235
xor ecx, ecx
push 0x5b3664
inc ecx
call fcn.0040788c
mov dword [ebp - 0x3c], eax
cmp eax, 0xffffffff
je 0x412235
mov ecx, eax
inc ecx
push 0x5b3664
call fcn.0040788c
mov dword [ebp - 0x3c], eax
cmp eax, 0xffffffff
jne 0x412235
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x41212e
cmp byte [ebp - 0x25], al
je 0x412320
mov ecx, dword [ebp - 0x3c]
inc ecx
push 0x5b3664
lea esi, [ebp - 0x14]
mov dword [ebp - 0x38], ecx
call fcn.0040788c
cmp eax, dword [ebp - 0x3c]
jle 0x412320
sub eax, dword [ebp - 0x3c]
mov ecx, esi
dec eax
push eax
push dword [ebp - 0x38]
lea eax, [ebp - 0x34]
push eax
call fcn.00407906
mov byte [ebp - 4], 9
push dword [ebp - 0x34]
call fcn.0041331e
test eax, eax
setge byte [ebp - 0x25]
cmp byte [ebp - 0x25], 0
jne 0x4122d1
push dword [ebp - 0x34]
call fcn.004113d8
pop ecx
mov byte [ebp - 0x25], al
test al, al
je 0x4122d1
mov eax, dword [ebp - 0x30]
push dword [eax]
mov ecx, 0x609b00
call fcn.004ccb16
push 0x5b0d34
mov ecx, eax
call fcn.00402719
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
call fcn.0040285b
jmp 0x41212e
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
call fcn.0040285b
lea ecx, [edi - 0x10]
call fcn.0040285b
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.0040285b
lea ecx, [ebx - 0x10]
call fcn.0040285b
mov bl, byte [ebp - 0x25]
jmp 0x411e4f
lea ecx, [edi - 0x10]
mov byte [ebp - 4], 6
call fcn.0040285b
jmp 0x4123c4
push str..exe
lea ecx, [ebp - 0x5c]
call fcn.0040253b
push str..dll
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0xa
call fcn.0040253b
push str..ocx
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0xb
call fcn.0040253b
push 0x5b3668
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0xc
call fcn.0040253b
push 0x5b3670
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0xd
call fcn.0040253b
mov byte [ebp - 4], 0xe
cmp edi, 5
jae 0x4123ae
push ecx
lea eax, [ebp + edi*4 - 0x5c]
mov dword [ebp - 0x38], esp
mov ecx, esp
push eax
call fcn.00402305
lea ecx, [ebp - 0x14]
call fcn.00411b62
mov ebx, dword [ebp - 0x14]
pop ecx
test al, al
jne 0x4123ae
inc edi
jmp 0x412386
push 0x402832
push 5
push 4
lea eax, [ebp - 0x5c]
push eax
mov byte [ebp - 4], 6
call fcn.004df003
cmp dword [ebx - 0xc], 0
jl 0x411c14
movzx eax, word [ebx]
cmp ax, 0x22
jne 0x41240a
push 1
push 0x22
lea ecx, [ebp - 0x14]
call fcn.00414092
cmp eax, 0xffffffff
je 0x411f62
push 0
push 0x22
lea ecx, [ebp - 0x14]
call fcn.00414092
cmp eax, 0xffffffff
je 0x41240a
push 0x20
push eax
lea ecx, [ebp - 0x14]
call fcn.00414140
jmp 0x4123ec
lea ebx, [ebp - 0x14]
call fcn.0040dbe8
call fcn.0040db9b
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
je 0x41245a
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
jmp 0x411e48
mov edi, dword [ebp - 0x14]
xor ebx, ebx
cmp byte [ebp + 0x2878], bl
je 0x4124c1
push edi
call fcn.00432b86
pop ecx
test al, al
jne 0x4124c1
mov eax, dword [ebp - 0x30]
push dword [eax]
mov ecx, 0x609b00
call fcn.004ccb16
push 0x5b0d34
mov ecx, eax
call fcn.00402719
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.0040285b
lea ecx, [edi - 0x10]
jmp 0x411e48
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x41248d
push ebx
push 0x25
lea ecx, [ebp - 0x14]
call fcn.00414092
cmp eax, 0xffffffff
je 0x412542
inc eax
push eax
push 0x25
lea ecx, [ebp - 0x14]
call fcn.00414092
cmp eax, 0xffffffff
je 0x412542
xor eax, eax
push 0xffe
mov word [ebp + 0x104c], ax
lea eax, [ebp + 0x104e]
push ebx
push eax
call fcn.004e38a0
add esp, 0xc
mov esi, 0x800
push esi
lea eax, [ebp + 0x104c]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
cmp eax, ebx
je 0x412542
cmp eax, esi
jae 0x412542
lea eax, [ebp + 0x104c]
push eax
lea ecx, [ebp - 0x14]
call fcn.00402719
lea edi, [ebp - 0x14]
call fcn.004140e6
mov edi, dword [ebp - 0x14]
push str.rundll32
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.0040788c
cmp eax, ebx
jne 0x4125aa
push 7
push 0x20
mov ecx, esi
call fcn.00414092
cmp eax, 0xffffffff
je 0x4125aa
push ebx
mov ecx, esi
push ecx
call fcn.0040726b
mov ebx, esi
call fcn.0040dbe8
push 0
push 0x2c
mov ecx, esi
call fcn.00414092
mov ecx, eax
cmp ecx, 0xffffffff
je 0x412598
mov eax, dword [ebp - 0x14]
mov eax, dword [eax - 0xc]
push ecx
sub eax, ecx
mov ecx, esi
push ecx
call fcn.0040726b
mov edi, dword [ebp - 0x14]
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x412472
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x41248d
lea edi, [ebp - 0x14]
call fcn.004140e6
mov edi, dword [ebp - 0x14]
mov eax, dword [edi - 0xc]
mov ebx, 0x40f
cmp eax, ebx
jle 0x41266f
push 0
push 0x5c
lea ecx, [ebp - 0x14]
call fcn.00414092
test eax, eax
jl 0x412472
inc eax
push eax
push 0x5c
lea ecx, [ebp - 0x14]
call fcn.00414092
test eax, eax
jl 0x412472
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsNetworkPathW]
test eax, eax
jne 0x412472
push edi
call fcn.0041331e
test eax, eax
setge bl
test bl, bl
je 0x412636
mov eax, dword [ebp - 0x30]
push dword [eax]
mov ecx, 0x609b00
call fcn.004ccb16
push 0x5b0d34
mov ecx, eax
call fcn.00402719
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.0040285b
lea ecx, [edi - 0x10]
call fcn.0040285b
jmp 0x411e4f
cmp eax, 0x104
jg 0x412472
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x41248d
push 0x82c
push eax
lea eax, [ebp]
push eax
call fcn.004e38a0
add esp, 0xc
push edi
lea eax, [ebp]
mov byte [ebp - 4], 0xf
call fcn.0040de7e
push 0x820
lea eax, [ebp + 0x204c]
push 0
push eax
call fcn.004e38a0
add esp, 0xc
push 0x5b2dfc
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.0040788c
cmp eax, 0xffffffff
je 0x412953
lea eax, [ebp + 4]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x4126dd
sub eax, edx
sar eax, 1
je 0x412774
lea eax, [ebp - 0x2c]
push eax
call fcn.00413e65
push eax
lea eax, [ebp + 4]
push eax
lea eax, [ebp - 0x38]
push eax
mov byte [ebp - 4], 0x10
call fcn.0040dc86
add esp, 0xc
push dword [eax]
call dword [sym.imp.KERNEL32.dll_GetDriveTypeW]
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
mov esi, eax
call fcn.0040285b
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.0040285b
cmp dword [0x60215c], 0
je 0x412774
cmp esi, 3
je 0x412774
mov eax, dword [ebp - 0x30]
push dword [eax]
mov ecx, 0x609b00
call fcn.004ccb16
push 0x5b0d34
mov ecx, eax
call fcn.00402719
push 0x82c
lea eax, [ebp]
push 0
push eax
call fcn.004e38a0
add esp, 0xc
jmp 0x41248d
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push edi
call ebx
test eax, eax
je 0x4127a3
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
push 0x5b0d34
push eax
mov ecx, 0x609b00
call fcn.004144df
lea ecx, [ebp]
call fcn.0040de67
jmp 0x41248d
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x412796
mov edx, edi
lea ecx, [ebp + 0x204c]
movzx eax, word [edx]
inc edx
mov word [ecx], ax
inc edx
inc ecx
inc ecx
test ax, ax
jne 0x4127b7
push 0
lea eax, [ebp + 0x204c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindOnPathW]
test eax, eax
jne 0x412781
call fcn.00482292
test al, al
je 0x412806
cmp byte [ebp + 0x2884], 0
je 0x412806
push str.program_files
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.0040788c
cmp eax, 0xffffffff
je 0x412806
mov byte [ebp + 0x2884], 0
call fcn.00482292
test al, al
je 0x412826
cmp byte [ebp + 0x2884], 0
jne 0x412826
push dword [ebp + 0x2888]
push edi
call fcn.0041127a
jmp 0x41282c
push edi
call fcn.0041331e
mov esi, eax
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x412796
cmp esi, 0xffffffff
jne 0x41288e
push edi
call fcn.004113d8
pop ecx
test al, al
jne 0x412781
lea ecx, [ebp]
call fcn.0040de67
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.0040285b
lea ecx, [edi - 0x10]
jmp 0x4121d1
test esi, esi
jne 0x412781
push esi
push 0x2e
lea ecx, [ebp - 0x14]
call fcn.00414092
cmp eax, 0xffffffff
jne 0x412923
push edi
call ebx
test eax, eax
jne 0x412781
push str..exe
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.00402187
add esp, 0xc
mov byte [ebp - 4], 0x11
push dword [ebp - 0x38]
call ebx
test eax, eax
je 0x4128f8
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
push 0x5b0d34
push eax
mov ecx, 0x609b00
call fcn.004144df
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
call fcn.0040285b
jmp 0x412796
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x38]
call fcn.00402627
push str._system32
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.0040788c
cmp eax, 0xffffffff
jne 0x4128d3
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
call fcn.0040285b
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x412796
push edi
call ebx
test eax, eax
jne 0x412944
push edi
call fcn.00411719
mov bl, al
jmp 0x412946
mov bl, 1
lea ecx, [ebp]
call fcn.0040de67
jmp 0x412636
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x412796
lea edi, [ebp - 0x14]
call fcn.004140e6
mov edi, dword [ebp - 0x14]
mov edx, edi
lea ecx, [ebp + 0x204c]
xor esi, esi
movzx eax, word [edx]
inc edx
mov word [ecx], ax
inc edx
inc ecx
inc ecx
cmp ax, si
jne 0x412978
push esi
lea eax, [ebp + 0x204c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindOnPathW]
test eax, eax
je 0x4129b3
lea eax, [ebp + 0x204c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x412944
lea eax, [ebp + 0x204c]
push eax
jmp 0x41293b
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x412796
push 0x81e
mov word [ebp + 0x82c], ax
lea eax, [ebp + 0x82e]
push esi
push eax
call fcn.004e38a0
add esp, 0xc
lea eax, [ebp - 0x48]
push eax
lea eax, [ebp + 0x82c]
push eax
push ebx
lea eax, [ebp + 0x41a]
push eax
lea eax, [ebp + 0x212]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_SearchPathW]
test eax, eax
jne 0x412781
push str..dll
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.0040788c
or ebx, 0xffffffff
cmp eax, ebx
jne 0x412a52
push str..ocx
xor ecx, ecx
call fcn.0040788c
cmp eax, ebx
jne 0x412a52
push str..exe
xor ecx, ecx
call fcn.0040788c
cmp eax, ebx
jne 0x412a52
push 0x5b3668
xor ecx, ecx
call fcn.0040788c
cmp eax, ebx
je 0x412dcb
push 0x5af68c
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.0040788c
cmp eax, ebx
jne 0x412dcb
mov eax, dword [ebp - 0x34]
add eax, 0x202c
push eax
lea ecx, [ebp - 0x2c]
call fcn.00402323
xor esi, esi
push esi
push 0x5c
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x12
call fcn.00414092
mov ebx, eax
cmp ebx, 0xffffffff
je 0x412af7
lea esi, [ebx + 1]
push esi
push 0x5c
lea ecx, [ebp - 0x14]
call fcn.00414092
cmp eax, 0xffffffff
je 0x412ac2
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
push 0x5b0d34
push eax
mov ecx, 0x609b00
call fcn.004144df
mov ecx, dword [ebp - 0x2c]
jmp 0x4128eb
cmp esi, dword [edi - 0xc]
jl 0x412ac9
mov esi, ebx
push esi
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x14]
call fcn.004078e3
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x13
call fcn.00402627
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
call fcn.0040285b
mov edi, dword [ebp - 0x14]
xor esi, esi
push esi
push 0x2f
lea ecx, [ebp - 0x14]
call fcn.00414092
cmp eax, 0xffffffff
je 0x412b8d
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x412aba
lea ecx, [ebp - 0x38]
call fcn.0040281e
mov ebx, 0x104
push ebx
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x14
call fcn.00402963
push ebx
push eax
push edi
call dword [sym.imp.SHLWAPI.dll_PathSearchAndQualifyW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x38]
test eax, eax
je 0x412b7d
call fcn.004145ba
mov esi, dword [ebp - 0x38]
push esi
call fcn.0041331e
test eax, eax
jge 0x412b63
push esi
call fcn.004113d8
test al, al
pop ecx
setne bl
jmp 0x412b65
mov bl, 1
lea ecx, [esi - 0x10]
call fcn.0040285b
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.0040285b
jmp 0x412946
call fcn.004145ba
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
call fcn.0040285b
push 0x82c
lea eax, [ebp + 0x1820]
push esi
push eax
call fcn.004e38a0
add esp, 0xc
cmp edi, esi
je 0x412bb3
push edi
lea eax, [ebp + 0x1820]
push eax
call fcn.0040de53
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x15
call fcn.00402323
lea eax, [ebp + 0x41a]
mov byte [ebp - 4], 0x16
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, si
jne 0x412bd0
sub eax, edx
sar eax, 1
je 0x412c6c
lea eax, [ebp + 0x1c3a]
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402736
push esi
push 0x20
lea ecx, [ebp - 0x3c]
call fcn.00414092
cmp eax, 0xffffffff
je 0x412c18
push esi
push 0x20
lea ecx, [ebp - 0x3c]
call fcn.00414092
xor ecx, ecx
mov word [ebp + eax*2 + 0x1c3a], cx
lea eax, [ebp + 0x1c3a]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, si
jne 0x412c21
sub eax, edx
sar eax, 1
mov ebx, eax
lea eax, [ebp + 0x1c3a]
push eax
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.0040788c
add eax, ebx
push eax
lea eax, [ebp - 0x38]
push eax
mov ecx, esi
call fcn.00407984
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x17
call fcn.00402627
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
call fcn.0040285b
lea ebx, [ebp - 0x3c]
call fcn.0040dbe8
call fcn.0040db9b
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
je 0x412ca0
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
call fcn.0040285b
lea ecx, [ebp + 0x1820]
call fcn.0040de67
jmp 0x412aba
lea ecx, [ebp - 0x3c]
call fcn.0041172b
test al, al
je 0x412cc3
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
push 0x5b0d34
push eax
mov ecx, 0x609b00
call fcn.004144df
jmp 0x412c85
push ecx
lea eax, [ebp - 0x3c]
mov ecx, esp
mov dword [ebp - 0x38], esp
push eax
call fcn.00402323
lea ecx, [ebp - 0x2c]
call fcn.00406dee
push dword [ebp - 0x2c]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
call esi
test eax, eax
jne 0x412da6
call fcn.00482292
test al, al
je 0x412d34
push 0x609afc
lea ecx, [ebp - 0x2c]
call fcn.00402627
push ecx
lea eax, [ebp - 0x3c]
mov ecx, esp
mov dword [ebp - 0x38], esp
push eax
call fcn.00402323
lea ecx, [ebp - 0x2c]
call fcn.00406dee
push dword [ebp - 0x2c]
call esi
test eax, eax
jne 0x412cac
push dword [ebp - 0x2c]
call fcn.004113d8
pop ecx
test al, al
jne 0x412cac
mov ecx, dword [ebp - 0x3c]
lea edx, [ebp + 0x204c]
movzx eax, word [ecx]
inc ecx
mov word [edx], ax
inc ecx
inc edx
inc edx
test ax, ax
jne 0x412d3d
push 0
lea eax, [ebp + 0x204c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindOnPathW]
test eax, eax
je 0x412d99
lea eax, [ebp + 0x204c]
push eax
call esi
test eax, eax
jne 0x412d7c
lea eax, [ebp + 0x204c]
push eax
call fcn.00411719
mov bl, al
jmp 0x412d7e
mov bl, 1
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
call fcn.0040285b
lea ecx, [ebp + 0x1820]
call fcn.0040de67
jmp 0x412b6d
mov ebx, dword [ebp - 0x2c]
push ebx
call esi
test eax, eax
jne 0x412d7c
push ebx
jmp 0x412d73
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
call fcn.0040285b
lea ecx, [ebp + 0x1820]
call fcn.0040de67
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.0040285b
mov eax, dword [ebp - 0x34]
call fcn.0040e41d
test eax, eax
jne 0x412796
cmp byte [ebp + 0x2890], al
je 0x412781
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsNetworkPathW]
test eax, eax
je 0x412781
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
jmp 0x412936
push dword [ebp + 0x2890]
mov esi, dword [ebp - 0x30]
push dword [ebp + 0x288c]
push dword [ebp + 0x2888]
push dword [ebp + 0x2884]
push dword [ebp + 0x2880]
push dword [ebp + 0x287c]
push dword [ebp + 0x2878]
push ecx
mov dword [ebp - 0x48], esp
mov ecx, esp
push esi
call fcn.00402305
push dword [ebp - 0x34]
call fcn.004113ea
mov byte [ebp - 0x25], al
test al, al
je 0x412e62
push dword [esi]
mov ecx, 0x609b00
call fcn.004ccb16
push 0x5b0d34
mov ecx, eax
call fcn.00402719
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.0040285b
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.0040285b
lea ecx, [ebx - 0x10]
call fcn.0040285b
mov bl, byte [ebp - 0x25]
jmp 0x411e4f
mov ecx, dword [ebp - 0x40]
add ecx, 0xfffffff0
call fcn.0040285b
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x286c]
xor ecx, ebp
call fcn.004de422
add ebp, 0x2870
leave
ret 0x1c