Function at 0x406130
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x314
mov eax, dword [0x4141b0]
xor eax, esp
mov dword [esp + 0x310], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
push 0x401498
call fcn.004073c8
push 0x401470
call fcn.004073c8
push 0x401434
call fcn.004073c8
push 0x4013f0
call fcn.004073c8
add esp, 0x10
call dword [sym.imp.SHELL32.dll_IsUserAnAdmin]
test eax, eax
jne 0x4061a9
push 0x401ff4
call fcn.004073c8
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x310]
xor ecx, esp
call fcn.00406f68
mov esp, ebp
pop ebp
ret
mov ebx, dword [ebp + 8]
xor esi, esi
test ebx, ebx
jle 0x4061f3
mov eax, dword [edi + esi*4]
push 0x401fdc
push eax
call fcn.00412773
add esp, 8
test eax, eax
jne 0x4061d0
mov byte [0x4151a4], 1
jmp 0x4061ec
mov ecx, dword [edi + esi*4]
push 0x401fcc
push ecx
call fcn.00412773
add esp, 8
test eax, eax
jne 0x4061ec
mov byte [0x4151a7], 1
add esi, 1
cmp esi, ebx
jl 0x4061b2
call fcn.00404d10
call fcn.00406670
test eax, eax
mov dword [0x4151a0], eax
je 0x40638a
call fcn.00406040
test al, al
je 0x40633c
mov ecx, 0x16
mov esi, 0x401f70
lea edi, [esp + 0x18]
rep movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x18]
push edx
push 0x401f68
movsb byte es:[edi], byte [esi]
call fcn.004073c8
mov ebx, dword [sym.imp.USER32.dll_MessageBoxA]
add esp, 8
cmp byte [0x4151a4], 0
jne 0x406262
push 0x34
push 0x401f58
lea eax, [esp + 0x20]
push eax
push 0
call ebx
cmp eax, 6
jne 0x40651e
lea ecx, [esp + 0x10]
push ecx
mov dword [esp + 0x14], 0
call fcn.00406ce0
add esp, 4
push 0x104
lea edx, [esp + 0x114]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea edi, [esp + 0x110]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x406294
lea eax, [esp + 0x110]
push 0x401540
mov ecx, 0xe
mov esi, 0x401f20
push eax
rep movsd dword es:[edi], dword [esi]
call fcn.004066b0
add esp, 8
test eax, eax
je 0x40632d
push 1
push 1
lea ecx, [esp + 0x118]
push ecx
push 0x401f00
call fcn.00404c10
add esp, 0x10
test eax, eax
je 0x40632d
cmp byte [0x4151a7], 0
jne 0x40632d
mov ecx, 0x25
mov esi, 0x401e68
lea edi, [esp + 0x78]
rep movsd dword es:[edi], dword [esi]
lea edx, [esp + 0x78]
push edx
push 0x401f68
movsb byte es:[edi], byte [esi]
call fcn.004073c8
add esp, 8
push 0x24
push 0x401e54
lea eax, [esp + 0x80]
push eax
push 0
call ebx
cmp eax, 6
sete cl
mov byte [0x4151a7], cl
lea edx, [esp + 0x10]
push edx
call fcn.00406ce0
jmp 0x40651b
mov ecx, 0xc
mov esi, 0x401e20
lea edi, [esp + 0x18]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x18]
push eax
push 0x401f68
movsb byte es:[edi], byte [esi]
call fcn.004073c8
add esp, 8
push 0x40
push 0x401e10
lea ecx, [esp + 0x20]
push ecx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x310]
xor ecx, esp
call fcn.00406f68
mov esp, ebp
pop ebp
ret
push 0x401f00
call fcn.00404b10
add esp, 4
test eax, eax
je 0x4063a8
push 0x401f00
call fcn.00404bb0
add esp, 4
push 0x401f00
call fcn.00404d90
add esp, 4
test eax, eax
mov eax, 0x401dec
jne 0x4063c3
mov eax, 0x401dd0
push eax
push 0x401f68
call fcn.004073c8
mov eax, dword [section..data]
add esp, 8
cmp eax, 0xffffffff
jne 0x4063e2
push 0x401dac
jmp 0x406450
push 0
lea edx, [esp + 0x18]
push edx
push 0
push 0
push 0
push 0
push 0x800c000
push eax
call dword [sym.imp.KERNEL32.dll_DeviceIoControl]
test eax, eax
je 0x40644b
push 0x401d48
call fcn.004073c8
add esp, 4
call fcn.00404f90
test eax, eax
je 0x40652c
cmp byte [0x4151a7], 0
je 0x40652c
mov eax, dword [section..data]
cmp eax, 0xffffffff
je 0x406439
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x401f00
call fcn.00404f30
add esp, 4
jmp 0x406527
push 0x401d14
call fcn.004073c8
add esp, 4
push 0x401cd8
call fcn.004073c8
add esp, 4
call fcn.00405220
mov eax, dword [section..data]
cmp eax, 0xffffffff
je 0x40647b
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
push 0x401f00
call fcn.00404b10
add esp, 4
test eax, eax
je 0x406499
push 0x401f00
call fcn.00404bb0
add esp, 4
cmp byte [0x4151a5], 0
je 0x40651e
push 0x104
lea eax, [esp + 0x114]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
lea edi, [esp + 0x110]
add edi, 0xfffffffe
mov ax, word [edi + 2]
add edi, 2
test ax, ax
jne 0x4064c3
mov ecx, 0xe
mov esi, 0x401f20
rep movsd dword es:[edi], dword [esi]
lea ecx, [esp + 0x110]
push 0x401554
push ecx
call fcn.004066b0
add esp, 8
test eax, eax
je 0x40651e
push 1
push 1
lea edx, [esp + 0x118]
push edx
push 0x401f00
call fcn.00404c10
add esp, 0x10
test eax, eax
je 0x40651e
push 0x401ca0
call fcn.004073c8
add esp, 4
cmp byte [0x4151a7], 0
je 0x40652c
call fcn.00406610
mov ecx, dword [esp + 0x31c]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.00406f68
mov esp, ebp
pop ebp
ret