Function at 0x412600
Capabilities:
Check if file exists
Get common file path
Get file attributes
Query environment variable
Query or enumerate registry value

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
mov eax, dword fs:[0]
push 0x4659d8
push eax
mov dword fs:[0], esp
mov eax, 0x2690
push ebx
call fcn.00464a40
push esi
push edi
push 0x2000
lea eax, [ebp - 0x26a0]
mov dword [ebp - 0x2c], ecx
push 0
push eax
call fcn.00445960
xorps xmm0, xmm0
mov dword [ebp - 0x18], 0
xor eax, eax
mov dword [ebp - 0x14], 7
movups xmmword [ebp - 0x28], xmm0
mov word [ebp - 0x28], ax
mov edi, dword [ebx + 8]
lea ecx, [ebp - 0x44]
mov dword [ebp - 4], eax
sub esp, 0xc
mov eax, esp
movups xmmword [eax], xmm0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0
movups xmm0, xmmword [edi]
movups xmmword [eax], xmm0
movq xmm0, qword [edi + 0x10]
movq qword [eax + 0x10], xmm0
xor eax, eax
mov dword [edi + 0x10], 0
mov dword [edi + 0x14], 7
mov word [edi], ax
call fcn.0040f390
add esp, 0x18
mov ecx, edi
push eax
call fcn.00404c20
mov ecx, dword [ebp - 0x30]
cmp ecx, 8
jb 0x4126f5
mov edx, dword [ebp - 0x44]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4126eb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138ba
push ecx
push edx
call fcn.004418b1
add esp, 8
mov edx, edi
lea ecx, [ebp - 0x98]
call fcn.0040ebc0
mov byte [ebp - 4], 1
mov eax, dword [0x4a6c1c]
test eax, eax
je 0x412714
cmp eax, 0xa
jae 0x41276a
push ecx
push str.ext_ms_
lea ecx, [ebp - 0x98]
call fcn.00414040
test eax, eax
jne 0x41276a
mov esi, dword [ebp - 0x88]
lea edx, [ebp - 0x98]
mov eax, 4
cmp esi, eax
cmovb eax, esi
cmp dword [ebp - 0x84], 8
cmovae edx, dword [ebp - 0x98]
sub esi, eax
lea ecx, [edx + eax*2]
lea eax, [esi*2 + 2]
push eax
push ecx
push edx
call fcn.00445f60
add esp, 0xc
mov dword [ebp - 0x88], esi
mov eax, dword [ebp - 0x2c]
mov eax, dword [eax + 4]
mov dword [ebp - 0x78], eax
mov esi, dword [eax]
cmp esi, eax
je 0x4129e3
nop dword [eax]
cmp dword [esi + 0x1c], 8
lea eax, [esi + 8]
jb 0x41278b
mov eax, dword [eax]
push ecx
push eax
lea ecx, [ebp - 0x98]
call fcn.00414040
cmp eax, 0xffffffff
jne 0x4127a9
mov ecx, dword [ebp - 0x2c]
mov eax, dword [esi]
mov esi, eax
cmp eax, dword [ecx + 4]
jne 0x412780
mov eax, dword [ebp - 0x78]
cmp esi, eax
je 0x4129e3
mov eax, dword [esi + 0x24]
mov edi, dword [esi + 0x20]
mov dword [ebp - 0x2c], eax
cmp edi, eax
je 0x412823
mov edx, dword [ebx + 0xc]
cmp dword [edx + 0x14], 8
mov ecx, dword [edx + 0x10]
jb 0x4127cf
mov edx, dword [edx]
cmp dword [edi + 0x14], 8
mov eax, edi
mov esi, dword [edi + 0x10]
jb 0x4127dc
mov eax, dword [edi]
cmp esi, ecx
jne 0x41280d
test esi, esi
je 0x412807
sub eax, edx
mov dword [ebp - 0x78], eax
nop dword [eax]
movzx ecx, word [eax + edx]
movzx eax, word [edx]
cmp cx, ax
jne 0x41280d
mov eax, dword [ebp - 0x78]
add edx, 2
sub esi, 1
jne 0x4127f0
mov edi, dword [ebp - 0x2c]
add edi, 0xffffffe8
mov esi, dword [ebx + 8]
cmp esi, edi
je 0x412841
cmp dword [edi + 0x14], 8
mov eax, dword [edi + 0x10]
jb 0x41281f
mov edi, dword [edi]
push eax
push edi
jmp 0x41283a
mov eax, dword [ebx + 0xc]
mov esi, dword [ebx + 8]
cmp esi, eax
je 0x412841
cmp dword [eax + 0x14], 8
mov ecx, dword [eax + 0x10]
jb 0x412838
mov eax, dword [eax]
push ecx
push eax
mov ecx, esi
call fcn.004050c0
push dword [ebx + 0x1c]
push dword [ebx + 0x18]
push esi
call fcn.004138f0
mov esi, eax
test esi, esi
jns 0x4137ed
cmp esi, 0xc015001d
je 0x4137ed
test byte [ebx + 0x14], 2
je 0x4129dc
push 0x1fe
lea eax, [ebp - 0x2a0]
push 0
push eax
call fcn.00445960
add esp, 0xc
lea eax, [ebp - 0x2a0]
push 0xff
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xorps xmm0, xmm0
mov dword [ebp - 0x64], 0
lea ecx, [ebp - 0x2a0]
mov dword [ebp - 0x60], 0
movups xmmword [ebp - 0x74], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4128b3
sub ecx, edx
lea eax, [ebp - 0x2a0]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x74]
call fcn.00405e90
push 0x4940a4
lea edx, [ebp - 0x74]
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x44]
call fcn.00414940
add esp, 4
mov esi, dword [ebx + 8]
lea ecx, [ebp - 0x5c]
push esi
mov edx, eax
mov byte [ebp - 4], 3
call fcn.00414a10
add esp, 4
mov ecx, esi
push eax
call fcn.00404c20
mov ecx, dword [ebp - 0x48]
cmp ecx, 8
jb 0x412940
mov edx, dword [ebp - 0x5c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x412936
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138bf
push ecx
push edx
call fcn.004418b1
add esp, 8
mov ecx, dword [ebp - 0x30]
xor eax, eax
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 7
mov word [ebp - 0x5c], ax
cmp ecx, 8
jb 0x41298e
mov edx, dword [ebp - 0x44]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x412984
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138bf
push ecx
push edx
call fcn.004418b1
add esp, 8
mov ecx, dword [ebp - 0x60]
xor eax, eax
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 7
mov word [ebp - 0x44], ax
cmp ecx, 8
jb 0x4129dc
mov edx, dword [ebp - 0x74]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4129d2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138bf
push ecx
push edx
call fcn.004418b1
add esp, 8
xor esi, esi
jmp 0x4137ed
test byte [ebx + 0x14], 1
je 0x4129f3
mov esi, 0xc0000225
jmp 0x4137ed
push dword [ebx + 0x1c]
push dword [ebx + 0x18]
push edi
call fcn.004138f0
mov esi, eax
test esi, esi
jns 0x4137ed
cmp esi, 0xc015001d
je 0x4137ed
test byte [ebx + 0x14], 4
je 0x412a25
mov esi, 0xc0000225
jmp 0x4137ed
cmp dword [edi + 0x14], 8
mov eax, edi
jb 0x412a2f
mov eax, dword [edi]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x412a42
xor esi, esi
jmp 0x4137ed
mov dword [ebp - 0x80], 0
lea eax, [ebp - 0x80]
mov byte [ebp - 4], 4
push eax
push 0x4940a8
push SysStringLen
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x412c9b
xor esi, esi
nop dword [eax + eax]
test eax, eax
jne 0x412c9b
push 0x1fe
push eax
lea eax, [ebp - 0x6a0]
push eax
call fcn.00445960
add esp, 0xc
lea eax, [ebp - 0x4a0]
push 0x1fe
push 0
push eax
call fcn.00445960
add esp, 0xc
mov dword [ebp - 0x2c], 0xff
lea eax, [ebp - 0x2c]
mov dword [ebp - 0x7c], 0
push eax
lea eax, [ebp - 0x4a0]
push eax
lea eax, [ebp - 0x7c]
push eax
push 0
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x6a0]
push eax
push esi
push dword [ebp - 0x80]
call dword [sym.imp.ADVAPI32.dll_RegEnumValueW]
cmp dword [ebp - 0x84], 8
mov dword [ebp - 0x78], eax
lea eax, [ebp - 0x98]
cmovae eax, dword [ebp - 0x98]
push eax
lea eax, [ebp - 0x4a0]
push eax
call fcn.00450536
add esp, 8
test eax, eax
jne 0x412c8b
push 0x1fe
push eax
lea eax, [ebp - 0x2a0]
push eax
call fcn.00445960
add esp, 0xc
mov dword [ebp - 0x2c], 0xff
test byte [ebx + 0x14], 8
lea eax, [ebp - 0x2a0]
push 0xff
push eax
je 0x412b3c
call dword [sym.imp.KERNEL32.dll_GetSystemWow64DirectoryW]
jmp 0x412b42
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
mov eax, dword [ebp - 0x78]
test eax, eax
jne 0x412c8e
xorps xmm0, xmm0
mov dword [ebp - 0x64], eax
lea ecx, [ebp - 0x2a0]
mov dword [ebp - 0x60], eax
movups xmmword [ebp - 0x74], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x412b63
sub ecx, edx
lea eax, [ebp - 0x2a0]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x74]
call fcn.00405e90
push str._
lea edx, [ebp - 0x74]
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x5c]
call fcn.00414940
add esp, 4
lea ecx, [ebp - 0x4a0]
mov byte [ebp - 4], 6
push ecx
mov edx, eax
lea ecx, [ebp - 0x44]
call fcn.00414940
add esp, 4
mov ecx, edi
push eax
call fcn.00404c20
mov ecx, dword [ebp - 0x30]
cmp ecx, 8
jb 0x412bf3
mov edx, dword [ebp - 0x44]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x412be9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138c4
push ecx
push edx
call fcn.004418b1
add esp, 8
mov ecx, dword [ebp - 0x48]
xor eax, eax
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 7
mov word [ebp - 0x44], ax
cmp ecx, 8
jb 0x412c41
mov edx, dword [ebp - 0x5c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x412c37
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138c4
push ecx
push edx
call fcn.004418b1
add esp, 8
mov ecx, dword [ebp - 0x60]
xor eax, eax
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 7
mov word [ebp - 0x5c], ax
cmp ecx, 8
jb 0x413892
mov edx, dword [ebp - 0x74]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x412cbb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138c4
jmp 0x412cbb
mov eax, dword [ebp - 0x78]
inc esi
cmp esi, 0x1000
jl 0x412a70
mov ecx, dword [ebx + 0x10]
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x412e1e
mov eax, 0x7ffffffe
sub eax, edx
cmp eax, 1
jb 0x4138c9
jmp 0x412ccc
push ecx
push edx
call fcn.004418b1
add esp, 8
xor esi, esi
jmp 0x4137df
cmp dword [ecx + 0x14], 8
jb 0x412cd4
mov ecx, dword [ecx]
push 1
push 0x494124
push edx
push ecx
push ecx
push dword [ebp - 0x7c]
lea ecx, [ebp - 0x5c]
call fcn.00414c10
lea eax, [ebp - 0x98]
mov byte [ebp - 4], 7
push eax
lea edx, [ebp - 0x5c]
lea ecx, [ebp - 0x44]
call fcn.00414a10
mov esi, eax
add esp, 4
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x412d77
mov ecx, dword [ebp - 0x14]
cmp ecx, 8
jb 0x412d45
mov edx, dword [ebp - 0x28]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x412d3b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138ce
push ecx
push edx
call fcn.004418b1
add esp, 8
mov dword [ebp - 0x18], 0
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 7
mov word [esi], ax
mov ecx, dword [ebp - 0x30]
cmp ecx, 8
jb 0x412db1
mov edx, dword [ebp - 0x44]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x412da7
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138ce
push ecx
push edx
call fcn.004418b1
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 7
mov word [ebp - 0x44], ax
cmp ecx, 8
jb 0x412e03
mov edx, dword [ebp - 0x5c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x412df9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138ce
push ecx
push edx
call fcn.004418b1
add esp, 8
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x413878
mov eax, dword [ebx + 0x18]
push dword [eax + 4]
lea eax, [ebp - 0x74]
push eax
call fcn.00413d70
push 0x494128
mov edx, eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x5c]
call fcn.00414940
add esp, 4
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 9
push ecx
mov edx, eax
lea ecx, [ebp - 0x44]
call fcn.00414a10
mov esi, eax
add esp, 4
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x412ed0
mov ecx, dword [ebp - 0x14]
cmp ecx, 8
jb 0x412e9e
mov edx, dword [ebp - 0x28]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x412e94
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138d3
push ecx
push edx
call fcn.004418b1
add esp, 8
mov dword [ebp - 0x18], 0
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 7
mov word [esi], ax
mov ecx, dword [ebp - 0x30]
cmp ecx, 8
jb 0x412f0a
mov edx, dword [ebp - 0x44]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x412f00
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138d3
push ecx
push edx
call fcn.004418b1
add esp, 8
xor eax, eax
mov byte [ebp - 4], 8
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 7
mov word [ebp - 0x44], ax
cmp ecx, 8
jb 0x412f5c
mov edx, dword [ebp - 0x5c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x412f52
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138d3
push ecx
push edx
call fcn.004418b1
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 7
mov word [ebp - 0x5c], ax
cmp ecx, 8
jb 0x412fae
mov edx, dword [ebp - 0x74]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x412fa4
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138d3
push ecx
push edx
call fcn.004418b1
add esp, 8
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x413878
test byte [ebx + 0x14], 8
lea eax, [ebp - 0x26a0]
push 0x1000
push eax
je 0x412fe3
call dword [sym.imp.KERNEL32.dll_GetSystemWow64DirectoryW]
jmp 0x412fe9
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
xorps xmm0, xmm0
mov dword [ebp - 0x64], 0
lea ecx, [ebp - 0x26a0]
mov dword [ebp - 0x60], 0
movups xmmword [ebp - 0x74], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x413007
sub ecx, edx
lea eax, [ebp - 0x26a0]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x74]
call fcn.00405e90
push 0x49412c
lea edx, [ebp - 0x74]
mov byte [ebp - 4], 0xa
lea ecx, [ebp - 0x5c]
call fcn.00414940
add esp, 4
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xb
push ecx
mov edx, eax
lea ecx, [ebp - 0x44]
call fcn.00414a10
mov esi, eax
add esp, 4
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x4130ca
mov ecx, dword [ebp - 0x14]
cmp ecx, 8
jb 0x413098
mov edx, dword [ebp - 0x28]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x41308e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138d8
push ecx
push edx
call fcn.004418b1
add esp, 8
mov dword [ebp - 0x18], 0
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 7
mov word [esi], ax
mov ecx, dword [ebp - 0x30]
cmp ecx, 8
jb 0x413104
mov edx, dword [ebp - 0x44]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4130fa
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138d8
push ecx
push edx
call fcn.004418b1
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xa
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 7
mov word [ebp - 0x44], ax
cmp ecx, 8
jb 0x413156
mov edx, dword [ebp - 0x5c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x41314c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138d8
push ecx
push edx
call fcn.004418b1
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 7
mov word [ebp - 0x5c], ax
cmp ecx, 8
jb 0x4131a8
mov edx, dword [ebp - 0x74]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x41319e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138d8
push ecx
push edx
call fcn.004418b1
add esp, 8
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x413878
push 0x1000
lea eax, [ebp - 0x26a0]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
xorps xmm0, xmm0
mov dword [ebp - 0x64], 0
lea ecx, [ebp - 0x26a0]
mov dword [ebp - 0x60], 0
movups xmmword [ebp - 0x74], xmm0
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4131f3
sub ecx, edx
lea eax, [ebp - 0x26a0]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x74]
call fcn.00405e90
push 0x494130
lea edx, [ebp - 0x74]
mov byte [ebp - 4], 0xc
lea ecx, [ebp - 0x5c]
call fcn.00414940
add esp, 4
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xd
push ecx
mov edx, eax
lea ecx, [ebp - 0x44]
call fcn.00414a10
mov esi, eax
add esp, 4
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x4132b6
mov ecx, dword [ebp - 0x14]
cmp ecx, 8
jb 0x413284
mov edx, dword [ebp - 0x28]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x41327a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138dd
push ecx
push edx
call fcn.004418b1
add esp, 8
mov dword [ebp - 0x18], 0
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 7
mov word [esi], ax
mov ecx, dword [ebp - 0x30]
cmp ecx, 8
jb 0x4132f0
mov edx, dword [ebp - 0x44]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4132e6
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138dd
push ecx
push edx
call fcn.004418b1
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xc
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 7
mov word [ebp - 0x44], ax
cmp ecx, 8
jb 0x413342
mov edx, dword [ebp - 0x5c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x413338
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138dd
push ecx
push edx
call fcn.004418b1
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 7
mov word [ebp - 0x5c], ax
cmp ecx, 8
jb 0x413394
mov edx, dword [ebp - 0x74]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x41338a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138dd
push ecx
push edx
call fcn.004418b1
add esp, 8
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x413878
lea eax, [ebp - 0x26a0]
push eax
push 0x1000
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
xorps xmm0, xmm0
mov dword [ebp - 0x64], 0
lea ecx, [ebp - 0x26a0]
mov dword [ebp - 0x60], 0
movups xmmword [ebp - 0x74], xmm0
lea edx, [ecx + 2]
nop
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4133e0
sub ecx, edx
lea eax, [ebp - 0x26a0]
sar ecx, 1
push ecx
push eax
lea ecx, [ebp - 0x74]
call fcn.00405e90
push 0x494134
lea edx, [ebp - 0x74]
mov byte [ebp - 4], 0xe
lea ecx, [ebp - 0x5c]
call fcn.00414940
add esp, 4
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0xf
push ecx
mov edx, eax
lea ecx, [ebp - 0x44]
call fcn.00414a10
mov esi, eax
add esp, 4
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x4134a3
mov ecx, dword [ebp - 0x14]
cmp ecx, 8
jb 0x413471
mov edx, dword [ebp - 0x28]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x413467
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138e2
push ecx
push edx
call fcn.004418b1
add esp, 8
mov dword [ebp - 0x18], 0
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 7
mov word [esi], ax
mov ecx, dword [ebp - 0x30]
cmp ecx, 8
jb 0x4134dd
mov edx, dword [ebp - 0x44]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4134d3
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138e2
push ecx
push edx
call fcn.004418b1
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0xe
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 7
mov word [ebp - 0x44], ax
cmp ecx, 8
jb 0x41352f
mov edx, dword [ebp - 0x5c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x413525
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138e2
push ecx
push edx
call fcn.004418b1
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 7
mov word [ebp - 0x5c], ax
cmp ecx, 8
jb 0x413581
mov edx, dword [ebp - 0x74]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x413577
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138e2
push ecx
push edx
call fcn.004418b1
add esp, 8
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x413878
push 0x1000
lea eax, [ebp - 0x26a0]
push eax
push 0x494138
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
lea eax, [ebp - 0x9c]
push eax
lea eax, [ebp - 0x26a0]
push 0x494144
push eax
call fcn.004507ef
mov edx, eax
add esp, 0xc
test edx, edx
je 0x4137da
nop dword [eax + eax]
mov ecx, edx
mov dword [ebp - 0x64], 0
xorps xmm0, xmm0
mov dword [ebp - 0x60], 0
movups xmmword [ebp - 0x74], xmm0
lea esi, [ecx + 2]
nop word [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x413600
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x74]
call fcn.00405e90
push 0x49414c
lea edx, [ebp - 0x74]
mov byte [ebp - 4], 0x10
lea ecx, [ebp - 0x5c]
call fcn.00414940
add esp, 4
lea ecx, [ebp - 0x98]
mov byte [ebp - 4], 0x11
push ecx
mov edx, eax
lea ecx, [ebp - 0x44]
call fcn.00414a10
mov esi, eax
add esp, 4
lea eax, [ebp - 0x28]
cmp eax, esi
je 0x4136bd
mov ecx, dword [ebp - 0x14]
cmp ecx, 8
jb 0x41368b
mov edx, dword [ebp - 0x28]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x413681
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138ba
push ecx
push edx
call fcn.004418b1
add esp, 8
mov dword [ebp - 0x18], 0
xor eax, eax
mov dword [ebp - 0x14], 7
mov word [ebp - 0x28], ax
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x28], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x18], xmm0
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], 7
mov word [esi], ax
mov ecx, dword [ebp - 0x30]
cmp ecx, 8
jb 0x4136f7
mov edx, dword [ebp - 0x44]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x4136ed
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138ba
push ecx
push edx
call fcn.004418b1
add esp, 8
xor eax, eax
mov byte [ebp - 4], 0x10
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 7
mov word [ebp - 0x44], ax
cmp ecx, 8
jb 0x413749
mov edx, dword [ebp - 0x5c]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x41373f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138ba
push ecx
push edx
call fcn.004418b1
add esp, 8
xor eax, eax
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x60]
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x48], 7
mov word [ebp - 0x5c], ax
cmp ecx, 8
jb 0x41379b
mov edx, dword [ebp - 0x74]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x413791
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138ba
push ecx
push edx
call fcn.004418b1
add esp, 8
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x413878
lea eax, [ebp - 0x9c]
push eax
push 0x494148
push dword [ebp - 0x9c]
call fcn.004507ef
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x4135e0
mov esi, 0xc0000225
mov eax, dword [ebp - 0x80]
test eax, eax
jle 0x4137ed
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 0x84]
cmp ecx, 8
jb 0x41382d
mov edx, dword [ebp - 0x98]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x413823
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138e7
push ecx
push edx
call fcn.004418b1
add esp, 8
mov ecx, dword [ebp - 0x14]
xor eax, eax
mov dword [ebp - 0x88], 0
mov dword [ebp - 0x84], 7
mov word [ebp - 0x98], ax
cmp ecx, 8
jb 0x4138a3
mov edx, dword [ebp - 0x28]
lea ecx, [ecx*2 + 2]
mov eax, edx
cmp ecx, 0x1000
jb 0x413899
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x4138e7
jmp 0x413899
lea eax, [ebp - 0x28]
cmp edi, eax
je 0x413892
cmp dword [ebp - 0x14], 8
mov ecx, edi
push dword [ebp - 0x18]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.004050c0
xor esi, esi
jmp 0x4137df
push ecx
push edx
call fcn.004418b1
add esp, 8
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x18
call fcn.00449a39
call fcn.00449a39
call fcn.00449a39
call fcn.00401780
call fcn.00449a39
call fcn.00449a39
call fcn.00449a39
call fcn.00449a39
call fcn.00449a39
call fcn.00449a39
int3