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

Disassembly:
push ebp
lea ebp, [esp - 0x2870]
mov eax, 0x2870
call fcn.004b0350
push 0xffffffffffffffff
push 0x4d6b03
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x55c6c0]
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 0x4108bf
test ecx, ecx
jge 0x40f616
push 0x80070057
call fcn.004029b5
movzx edx, word [eax]
cmp dx, 0x2e
jne 0x40f632
cmp ecx, 1
jl 0x40f60c
movzx eax, word [eax + 2]
cmp ax, 0x5c
je 0x4108bf
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x4108bf
call fcn.0048aa29
push eax
lea ecx, [ebp - 0x40]
call fcn.00402840
and dword [ebp - 4], 0
mov eax, dword [esi]
lea ecx, [ebp - 0x40]
push ecx
push eax
mov ecx, 0x565514
call fcn.00498dbe
test eax, eax
jne 0x4108b4
mov byte [ebp - 4], 1
call fcn.0048aa29
push eax
lea ecx, [ebp - 0x14]
call fcn.00402840
mov byte [ebp - 4], 2
call fcn.0048aa29
push eax
lea ecx, [ebp - 0x24]
call fcn.00402840
mov byte [ebp - 4], 3
call fcn.0048aa29
push eax
lea ecx, [ebp - 0x18]
call fcn.00402840
mov byte [ebp - 4], 4
call fcn.0048aa29
push eax
lea ecx, [ebp - 0x1c]
call fcn.00402840
mov byte [ebp - 4], 5
call fcn.0048aa29
push eax
lea ecx, [ebp - 0x20]
call fcn.00402840
push esi
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 6
call fcn.0040262c
lea edi, [ebp - 0x14]
call fcn.00411ade
mov ebx, edi
call fcn.0040c554
call fcn.0040c507
mov ebx, dword [ebp - 0x14]
push ebx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40f747
push dword [esi]
mov ecx, 0x565514
call fcn.00498eba
push 0x521724
mov ecx, eax
call fcn.0040276b
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.00402883
lea ecx, [ebx - 0x10]
call fcn.00402883
jmp 0x4108b4
cmp dword [ebx - 0xc], 4
jl 0x40f6f6
xor edi, edi
mov dword [ebp - 0x2c], edi
cmp edi, 4
jge 0x40f799
mov eax, edi
sub eax, 0
je 0x40f77c
dec eax
je 0x40f775
dec eax
je 0x40f76e
dec eax
jne 0x40f796
push str.architecture
jmp 0x40f781
push str.token
jmp 0x40f781
push str.version
jmp 0x40f781
push str.type
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.004077b1
cmp eax, 0xffffffff
je 0x40f793
inc dword [ebp - 0x2c]
mov esi, dword [ebp - 0x30]
inc edi
jmp 0x40f752
cmp dword [ebp - 0x2c], 1
jle 0x40f7f4
push ebx
call dword [sym.imp.SHLWAPI.dll_PathIsFileSpecW]
test eax, eax
setne al
test al, al
jne 0x40f6f6
cmp dword [ebx - 0xc], 0
jl 0x40f60c
movzx eax, word [ebx]
push eax
call fcn.004abf00
pop ecx
test eax, eax
je 0x40f6f6
cmp dword [ebp - 0x2c], 2
jg 0x40f6f6
xor edi, edi
push edi
push 0x2e
lea ecx, [ebp - 0x14]
call fcn.00411a8a
cmp eax, 0xffffffff
jne 0x40f859
cmp edi, 4
jg 0x40f6f6
push str.rundll32
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.004077b1
mov esi, eax
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
je 0x40f861
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.00402883
lea ecx, [ebx - 0x10]
call fcn.00402883
mov bl, 1
mov ecx, dword [ebp - 0x40]
add ecx, 0xfffffff0
call fcn.00402883
mov al, bl
jmp 0x4108c1
inc edi
inc eax
push eax
jmp 0x40f7dc
test esi, esi
je 0x4107fa
cmp esi, 1
jne 0x40f885
cmp dword [ebx - 0xc], 0
jl 0x40f60c
movzx eax, word [ebx]
cmp ax, 0x22
je 0x4107fa
push 0x523f00
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.004077b1
mov esi, eax
lea eax, [esi - 3]
cmp eax, 3
ja 0x40f949
mov ecx, dword [ebp - 0x30]
push esi
lea eax, [ebp - 0x44]
push eax
call fcn.004078a9
lea edi, [ebp - 0x44]
mov byte [ebp - 4], 7
call fcn.00411ade
push 0x523f08
mov ecx, edi
call fcn.0040c675
xor edi, edi
cmp eax, edi
je 0x40f909
push str.file
lea ecx, [ebp - 0x44]
call fcn.0040c675
cmp eax, edi
je 0x40f909
mov eax, dword [ebp - 0x30]
push dword [eax]
mov ecx, 0x565514
call fcn.00498eba
push 0x521724
mov ecx, eax
call fcn.0040276b
mov ecx, dword [ebp - 0x44]
add ecx, 0xfffffff0
call fcn.00402883
jmp 0x40f811
push edi
lea ecx, [ebp - 0x14]
lea eax, [esi + 3]
push ecx
call fcn.00407190
mov eax, dword [ebp - 0x14]
cmp dword [eax - 0xc], edi
jl 0x40f60c
movzx eax, word [eax]
cmp ax, 0x2f
je 0x40f97a
push 0x5c
push 0x2f
lea ebx, [ebp - 0x14]
call fcn.004118d3
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x44]
add ecx, 0xfffffff0
call fcn.00402883
mov ebx, dword [ebp - 0x14]
push 0
push 0x3b
lea ecx, [ebp - 0x14]
call fcn.00411a8a
cmp eax, 0xffffffff
je 0x40f984
mov eax, dword [ebp - 0x30]
push dword [eax]
mov ecx, 0x565514
call fcn.00498eba
push 0x521724
mov ecx, eax
call fcn.0040276b
jmp 0x40f811
lea eax, [ebp - 0x14]
push edi
push eax
xor eax, eax
inc eax
jmp 0x40f911
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x40f811
push eax
push 0x2a
lea ecx, [ebp - 0x14]
call fcn.00411a8a
mov dword [ebp - 0x38], eax
cmp eax, 0xffffffff
je 0x40fa46
mov edi, dword [ebx - 0xc]
push 0x523f1c
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.004077b1
add edi, 0xfffffffe
cmp eax, edi
je 0x40f9da
mov edi, dword [ebx - 0xc]
push 0x523f24
xor ecx, ecx
call fcn.004077b1
add edi, 0xfffffffe
cmp eax, edi
jne 0x40f9ee
mov ebx, dword [ebx - 0xc]
dec ebx
push ebx
lea eax, [ebp - 0x14]
push eax
xor eax, eax
inc eax
call fcn.00407190
mov ebx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x38]
inc esi
push esi
push 0x5c
lea ecx, [ebp - 0x14]
call fcn.00411a8a
or edi, 0xffffffff
cmp eax, edi
jne 0x40f95a
push esi
push 0x2a
lea ecx, [ebp - 0x14]
call fcn.00411a8a
cmp eax, edi
jne 0x40f95a
push 0
push 0x3f
lea ecx, [ebp - 0x14]
call fcn.00411a8a
cmp eax, edi
jne 0x40f95a
push 0x523f2c
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.004077b1
cmp eax, edi
jne 0x40f95a
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x40f811
mov edx, dword [ebx - 0xc]
xor edi, edi
cmp edx, edi
jl 0x40f60c
movzx eax, word [ebx]
cmp ax, 0x40
jne 0x40faa9
cmp edx, 1
jl 0x40f60c
movzx eax, word [ebx + 2]
movzx ecx, ax
cmp cx, 0x25
je 0x40fa99
cmp edx, 1
jl 0x40f60c
movzx eax, ax
push eax
call fcn.004abf00
pop ecx
test eax, eax
je 0x40faa9
push edi
lea eax, [ebp - 0x14]
push eax
xor eax, eax
inc eax
call fcn.00407190
mov ebx, dword [ebp - 0x14]
cmp byte [ebp + 0x2890], 0
jne 0x40fad1
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x40f811
push ebx
call dword [sym.imp.SHLWAPI.dll_PathIsNetworkPathW]
test eax, eax
jne 0x40f95a
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x40f811
cmp byte [ebp + 0x287c], al
je 0x40fafa
lea eax, [ebp - 0x14]
push eax
call fcn.0040e9e6
test al, al
jne 0x40f95a
cmp byte [ebp + 0x288c], 0
je 0x40fd29
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x2c]
call fcn.004025a1
mov byte [ebp - 4], 8
mov edi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
je 0x40fb2e
lea ecx, [edi - 0x10]
jmp 0x40f8ff
push edi
call dword [sym.imp.SHLWAPI.dll_PathGetArgsW]
push eax
lea ecx, [ebp - 0x2c]
call fcn.0040276b
mov edi, dword [ebp - 0x2c]
cmp dword [edi - 0xc], 0
je 0x40fbd5
push edi
call fcn.00410d16
test eax, eax
jge 0x40fb1a
push edi
call fcn.0040edd0
pop ecx
lea edi, [ebp - 0x2c]
mov byte [ebp - 0x25], al
call fcn.00411ade
push str..exe
xor ecx, ecx
mov esi, edi
call fcn.004077b1
test eax, eax
jg 0x40fb89
push 0x521eec
xor ecx, ecx
call fcn.004077b1
test eax, eax
jge 0x40fb17
cmp byte [ebp - 0x25], 0
jne 0x40fb17
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.00402883
lea ecx, [ebx - 0x10]
call fcn.00402883
xor bl, bl
jmp 0x40f847
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x40fb26
push 0x523f34
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.004077b1
mov dword [ebp - 0x3c], eax
mov byte [ebp - 0x25], 1
test eax, eax
jne 0x40fc2d
xor ecx, ecx
push 0x523f34
inc ecx
call fcn.004077b1
mov dword [ebp - 0x3c], eax
cmp eax, 0xffffffff
je 0x40fc2d
mov ecx, eax
inc ecx
push 0x523f34
call fcn.004077b1
mov dword [ebp - 0x3c], eax
cmp eax, 0xffffffff
jne 0x40fc2d
mov byte [ebp - 0x25], 0
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x40fb26
cmp byte [ebp - 0x25], al
je 0x40fd18
mov ecx, dword [ebp - 0x3c]
inc ecx
push 0x523f34
lea esi, [ebp - 0x14]
mov dword [ebp - 0x38], ecx
call fcn.004077b1
cmp eax, dword [ebp - 0x3c]
jle 0x40fd18
sub eax, dword [ebp - 0x3c]
mov ecx, esi
dec eax
push eax
push dword [ebp - 0x38]
lea eax, [ebp - 0x34]
push eax
call fcn.0040782b
mov byte [ebp - 4], 9
push dword [ebp - 0x34]
call fcn.00410d16
test eax, eax
setge byte [ebp - 0x25]
cmp byte [ebp - 0x25], 0
jne 0x40fcc9
push dword [ebp - 0x34]
call fcn.0040edd0
pop ecx
mov byte [ebp - 0x25], al
test al, al
je 0x40fcc9
mov eax, dword [ebp - 0x30]
push dword [eax]
mov ecx, 0x565514
call fcn.00498eba
push 0x521724
mov ecx, eax
call fcn.0040276b
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
call fcn.00402883
jmp 0x40fb26
mov ecx, dword [ebp - 0x34]
add ecx, 0xfffffff0
call fcn.00402883
lea ecx, [edi - 0x10]
call fcn.00402883
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.00402883
lea ecx, [ebx - 0x10]
call fcn.00402883
mov bl, byte [ebp - 0x25]
jmp 0x40f847
lea ecx, [edi - 0x10]
mov byte [ebp - 4], 6
call fcn.00402883
jmp 0x40fdbc
push str..exe
lea ecx, [ebp - 0x5c]
call fcn.0040255d
push str..dll
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0xa
call fcn.0040255d
push str..ocx
lea ecx, [ebp - 0x54]
mov byte [ebp - 4], 0xb
call fcn.0040255d
push 0x523f38
lea ecx, [ebp - 0x50]
mov byte [ebp - 4], 0xc
call fcn.0040255d
push 0x523f40
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 0xd
call fcn.0040255d
mov byte [ebp - 4], 0xe
cmp edi, 5
jae 0x40fda6
push ecx
lea eax, [ebp + edi*4 - 0x5c]
mov dword [ebp - 0x38], esp
mov ecx, esp
push eax
call fcn.004025a1
lea ecx, [ebp - 0x14]
call fcn.0040f55a
mov ebx, dword [ebp - 0x14]
pop ecx
test al, al
jne 0x40fda6
inc edi
jmp 0x40fd7e
push 0x402879
push 5
push 4
lea eax, [ebp - 0x5c]
push eax
mov byte [ebp - 4], 6
call fcn.004aade3
cmp dword [ebx - 0xc], 0
jl 0x40f60c
movzx eax, word [ebx]
cmp ax, 0x22
jne 0x40fe02
push 1
push 0x22
lea ecx, [ebp - 0x14]
call fcn.00411a8a
cmp eax, 0xffffffff
je 0x40f95a
push 0
push 0x22
lea ecx, [ebp - 0x14]
call fcn.00411a8a
cmp eax, 0xffffffff
je 0x40fe02
push 0x20
push eax
lea ecx, [ebp - 0x14]
call fcn.00411b38
jmp 0x40fde4
lea ebx, [ebp - 0x14]
call fcn.0040c554
call fcn.0040c507
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
je 0x40fe52
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
jmp 0x40f840
mov edi, dword [ebp - 0x14]
xor ebx, ebx
cmp byte [ebp + 0x2878], bl
je 0x40feb9
push edi
call fcn.0043055e
pop ecx
test al, al
jne 0x40feb9
mov eax, dword [ebp - 0x30]
push dword [eax]
mov ecx, 0x565514
call fcn.00498eba
push 0x521724
mov ecx, eax
call fcn.0040276b
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.00402883
lea ecx, [edi - 0x10]
jmp 0x40f840
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x40fe85
push ebx
push 0x25
lea ecx, [ebp - 0x14]
call fcn.00411a8a
cmp eax, 0xffffffff
je 0x40ff3a
inc eax
push eax
push 0x25
lea ecx, [ebp - 0x14]
call fcn.00411a8a
cmp eax, 0xffffffff
je 0x40ff3a
xor eax, eax
push 0xffe
mov word [ebp + 0x104c], ax
lea eax, [ebp + 0x104e]
push ebx
push eax
call fcn.004adda0
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 0x40ff3a
cmp eax, esi
jae 0x40ff3a
lea eax, [ebp + 0x104c]
push eax
lea ecx, [ebp - 0x14]
call fcn.0040276b
lea edi, [ebp - 0x14]
call fcn.00411ade
mov edi, dword [ebp - 0x14]
push str.rundll32
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.004077b1
cmp eax, ebx
jne 0x40ffa2
push 7
push 0x20
mov ecx, esi
call fcn.00411a8a
cmp eax, 0xffffffff
je 0x40ffa2
push ebx
mov ecx, esi
push ecx
call fcn.00407190
mov ebx, esi
call fcn.0040c554
push 0
push 0x2c
mov ecx, esi
call fcn.00411a8a
mov ecx, eax
cmp ecx, 0xffffffff
je 0x40ff90
mov eax, dword [ebp - 0x14]
mov eax, dword [eax - 0xc]
push ecx
sub eax, ecx
mov ecx, esi
push ecx
call fcn.00407190
mov edi, dword [ebp - 0x14]
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x40fe6a
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x40fe85
lea edi, [ebp - 0x14]
call fcn.00411ade
mov edi, dword [ebp - 0x14]
mov eax, dword [edi - 0xc]
mov ebx, 0x40f
cmp eax, ebx
jle 0x410067
push 0
push 0x5c
lea ecx, [ebp - 0x14]
call fcn.00411a8a
test eax, eax
jl 0x40fe6a
inc eax
push eax
push 0x5c
lea ecx, [ebp - 0x14]
call fcn.00411a8a
test eax, eax
jl 0x40fe6a
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsNetworkPathW]
test eax, eax
jne 0x40fe6a
push edi
call fcn.00410d16
test eax, eax
setge bl
test bl, bl
je 0x41002e
mov eax, dword [ebp - 0x30]
push dword [eax]
mov ecx, 0x565514
call fcn.00498eba
push 0x521724
mov ecx, eax
call fcn.0040276b
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.00402883
lea ecx, [edi - 0x10]
call fcn.00402883
jmp 0x40f847
cmp eax, 0x104
jg 0x40fe6a
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x40fe85
push 0x82c
push eax
lea eax, [ebp]
push eax
call fcn.004adda0
add esp, 0xc
push edi
lea eax, [ebp]
mov byte [ebp - 4], 0xf
call fcn.0040c7ea
push 0x820
lea eax, [ebp + 0x204c]
push 0
push eax
call fcn.004adda0
add esp, 0xc
push 0x5236e8
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.004077b1
cmp eax, 0xffffffff
je 0x41034b
lea eax, [ebp + 4]
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
test cx, cx
jne 0x4100d5
sub eax, edx
sar eax, 1
je 0x41016c
lea eax, [ebp - 0x2c]
push eax
call fcn.0041185d
push eax
lea eax, [ebp + 4]
push eax
lea eax, [ebp - 0x38]
push eax
mov byte [ebp - 4], 0x10
call fcn.0040c5f2
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.00402883
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.00402883
cmp dword [0x55f220], 0
je 0x41016c
cmp esi, 3
je 0x41016c
mov eax, dword [ebp - 0x30]
push dword [eax]
mov ecx, 0x565514
call fcn.00498eba
push 0x521724
mov ecx, eax
call fcn.0040276b
push 0x82c
lea eax, [ebp]
push 0
push eax
call fcn.004adda0
add esp, 0xc
jmp 0x40fe85
mov ebx, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push edi
call ebx
test eax, eax
je 0x41019b
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
push 0x521724
push eax
mov ecx, 0x565514
call fcn.00411eef
lea ecx, [ebp]
call fcn.0040c7d3
jmp 0x40fe85
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x41018e
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 0x4101af
push 0
lea eax, [ebp + 0x204c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindOnPathW]
test eax, eax
jne 0x410179
call fcn.00461ea4
test al, al
je 0x4101fe
cmp byte [ebp + 0x2884], 0
je 0x4101fe
push str.program_files
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.004077b1
cmp eax, 0xffffffff
je 0x4101fe
mov byte [ebp + 0x2884], 0
call fcn.00461ea4
test al, al
je 0x41021e
cmp byte [ebp + 0x2884], 0
jne 0x41021e
push dword [ebp + 0x2888]
push edi
call fcn.0040ec72
jmp 0x410224
push edi
call fcn.00410d16
mov esi, eax
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x41018e
cmp esi, 0xffffffff
jne 0x410286
push edi
call fcn.0040edd0
pop ecx
test al, al
jne 0x410179
lea ecx, [ebp]
call fcn.0040c7d3
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.00402883
lea ecx, [edi - 0x10]
jmp 0x40fbc9
test esi, esi
jne 0x410179
push esi
push 0x2e
lea ecx, [ebp - 0x14]
call fcn.00411a8a
cmp eax, 0xffffffff
jne 0x41031b
push edi
call ebx
test eax, eax
jne 0x410179
push str..exe
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x38]
push eax
call fcn.004021ba
add esp, 0xc
mov byte [ebp - 4], 0x11
push dword [ebp - 0x38]
call ebx
test eax, eax
je 0x4102f0
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
push 0x521724
push eax
mov ecx, 0x565514
call fcn.00411eef
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
call fcn.00402883
jmp 0x41018e
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x38]
call fcn.00402679
push str._system32
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.004077b1
cmp eax, 0xffffffff
jne 0x4102cb
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
call fcn.00402883
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x41018e
push edi
call ebx
test eax, eax
jne 0x41033c
push edi
call fcn.0040f111
mov bl, al
jmp 0x41033e
mov bl, 1
lea ecx, [ebp]
call fcn.0040c7d3
jmp 0x41002e
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x41018e
lea edi, [ebp - 0x14]
call fcn.00411ade
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 0x410370
push esi
lea eax, [ebp + 0x204c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindOnPathW]
test eax, eax
je 0x4103ab
lea eax, [ebp + 0x204c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x41033c
lea eax, [ebp + 0x204c]
push eax
jmp 0x410333
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x41018e
push 0x81e
mov word [ebp + 0x82c], ax
lea eax, [ebp + 0x82e]
push esi
push eax
call fcn.004adda0
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 0x410179
push str..dll
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.004077b1
or ebx, 0xffffffff
cmp eax, ebx
jne 0x41044a
push str..ocx
xor ecx, ecx
call fcn.004077b1
cmp eax, ebx
jne 0x41044a
push str..exe
xor ecx, ecx
call fcn.004077b1
cmp eax, ebx
jne 0x41044a
push 0x523f38
xor ecx, ecx
call fcn.004077b1
cmp eax, ebx
je 0x4107c3
push 0x5201fc
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.004077b1
cmp eax, ebx
jne 0x4107c3
mov eax, dword [ebp - 0x34]
add eax, 0x202c
push eax
lea ecx, [ebp - 0x2c]
call fcn.004025bf
xor esi, esi
push esi
push 0x5c
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x12
call fcn.00411a8a
mov ebx, eax
cmp ebx, 0xffffffff
je 0x4104ef
lea esi, [ebx + 1]
push esi
push 0x5c
lea ecx, [ebp - 0x14]
call fcn.00411a8a
cmp eax, 0xffffffff
je 0x4104ba
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
push 0x521724
push eax
mov ecx, 0x565514
call fcn.00411eef
mov ecx, dword [ebp - 0x2c]
jmp 0x4102e3
cmp esi, dword [edi - 0xc]
jl 0x4104c1
mov esi, ebx
push esi
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x14]
call fcn.00407808
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 0x13
call fcn.00402679
mov byte [ebp - 4], 0x12
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
call fcn.00402883
mov edi, dword [ebp - 0x14]
xor esi, esi
push esi
push 0x2f
lea ecx, [ebp - 0x14]
call fcn.00411a8a
cmp eax, 0xffffffff
je 0x410585
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x4104b2
lea ecx, [ebp - 0x38]
call fcn.00402865
mov ebx, 0x104
push ebx
lea ecx, [ebp - 0x38]
mov byte [ebp - 4], 0x14
call fcn.0040298b
push ebx
push eax
push edi
call dword [sym.imp.SHLWAPI.dll_PathSearchAndQualifyW]
push 0xffffffffffffffff
lea ecx, [ebp - 0x38]
test eax, eax
je 0x410575
call fcn.00411fca
mov esi, dword [ebp - 0x38]
push esi
call fcn.00410d16
test eax, eax
jge 0x41055b
push esi
call fcn.0040edd0
test al, al
pop ecx
setne bl
jmp 0x41055d
mov bl, 1
lea ecx, [esi - 0x10]
call fcn.00402883
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.00402883
jmp 0x41033e
call fcn.00411fca
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
call fcn.00402883
push 0x82c
lea eax, [ebp + 0x1820]
push esi
push eax
call fcn.004adda0
add esp, 0xc
cmp edi, esi
je 0x4105ab
push edi
lea eax, [ebp + 0x1820]
push eax
call fcn.0040c7bf
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x15
call fcn.004025bf
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 0x4105c8
sub eax, edx
sar eax, 1
je 0x410664
lea eax, [ebp + 0x1c3a]
push eax
lea ecx, [ebp - 0x3c]
call fcn.00402788
push esi
push 0x20
lea ecx, [ebp - 0x3c]
call fcn.00411a8a
cmp eax, 0xffffffff
je 0x410610
push esi
push 0x20
lea ecx, [ebp - 0x3c]
call fcn.00411a8a
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 0x410619
sub eax, edx
sar eax, 1
mov ebx, eax
lea eax, [ebp + 0x1c3a]
push eax
xor ecx, ecx
lea esi, [ebp - 0x14]
call fcn.004077b1
add eax, ebx
push eax
lea eax, [ebp - 0x38]
push eax
mov ecx, esi
call fcn.004078a9
push eax
lea ecx, [ebp - 0x3c]
mov byte [ebp - 4], 0x17
call fcn.00402679
mov byte [ebp - 4], 0x16
mov ecx, dword [ebp - 0x38]
add ecx, 0xfffffff0
call fcn.00402883
lea ebx, [ebp - 0x3c]
call fcn.0040c554
call fcn.0040c507
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
je 0x410698
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
call fcn.00402883
lea ecx, [ebp + 0x1820]
call fcn.0040c7d3
jmp 0x4104b2
lea ecx, [ebp - 0x3c]
call fcn.0040f123
test al, al
je 0x4106bb
mov eax, dword [ebp - 0x30]
mov eax, dword [eax]
push 0x521724
push eax
mov ecx, 0x565514
call fcn.00411eef
jmp 0x41067d
push ecx
lea eax, [ebp - 0x3c]
mov ecx, esp
mov dword [ebp - 0x38], esp
push eax
call fcn.004025bf
lea ecx, [ebp - 0x2c]
call fcn.00406d13
push dword [ebp - 0x2c]
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
call esi
test eax, eax
jne 0x41079e
call fcn.00461ea4
test al, al
je 0x41072c
push 0x565510
lea ecx, [ebp - 0x2c]
call fcn.00402679
push ecx
lea eax, [ebp - 0x3c]
mov ecx, esp
mov dword [ebp - 0x38], esp
push eax
call fcn.004025bf
lea ecx, [ebp - 0x2c]
call fcn.00406d13
push dword [ebp - 0x2c]
call esi
test eax, eax
jne 0x4106a4
push dword [ebp - 0x2c]
call fcn.0040edd0
pop ecx
test al, al
jne 0x4106a4
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 0x410735
push 0
lea eax, [ebp + 0x204c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindOnPathW]
test eax, eax
je 0x410791
lea eax, [ebp + 0x204c]
push eax
call esi
test eax, eax
jne 0x410774
lea eax, [ebp + 0x204c]
push eax
call fcn.0040f111
mov bl, al
jmp 0x410776
mov bl, 1
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
call fcn.00402883
lea ecx, [ebp + 0x1820]
call fcn.0040c7d3
jmp 0x410565
mov ebx, dword [ebp - 0x2c]
push ebx
call esi
test eax, eax
jne 0x410774
push ebx
jmp 0x41076b
mov ecx, dword [ebp - 0x3c]
add ecx, 0xfffffff0
call fcn.00402883
lea ecx, [ebp + 0x1820]
call fcn.0040c7d3
mov byte [ebp - 4], 0xf
mov ecx, dword [ebp - 0x2c]
add ecx, 0xfffffff0
call fcn.00402883
mov eax, dword [ebp - 0x34]
call fcn.0040cd89
test eax, eax
jne 0x41018e
cmp byte [ebp + 0x2890], al
je 0x410179
push edi
call dword [sym.imp.SHLWAPI.dll_PathIsNetworkPathW]
test eax, eax
je 0x410179
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
jmp 0x41032e
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.004025a1
push dword [ebp - 0x34]
call fcn.0040ede2
mov byte [ebp - 0x25], al
test al, al
je 0x41085a
push dword [esi]
mov ecx, 0x565514
call fcn.00498eba
push 0x521724
mov ecx, eax
call fcn.0040276b
mov ecx, dword [ebp - 0x20]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x1c]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x18]
add ecx, 0xfffffff0
call fcn.00402883
mov ecx, dword [ebp - 0x24]
add ecx, 0xfffffff0
call fcn.00402883
lea ecx, [ebx - 0x10]
call fcn.00402883
mov bl, byte [ebp - 0x25]
jmp 0x40f847
mov ecx, dword [ebp - 0x40]
add ecx, 0xfffffff0
call fcn.00402883
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.004aa206
add ebp, 0x2870
leave
ret 0x1c