Function at 0x418ac1
Capabilities:
Check os version
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xec0
and byte [ebp - 0x24], 0
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
push 7
pop ecx
xor eax, eax
lea edi, [ebp - 0x23]
and byte [ebp - 0x6c0], 0
rep stosd dword es:[edi], eax
stosb byte es:[edi], al
push 0x7f
xor eax, eax
pop ecx
lea edi, [ebp - 0x6bf]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x6c0]
push eax
lea eax, [ebp - 0x24]
push eax
push 0x44c320
call fcn.0042b0d7
lea eax, [ebp - 0x24]
push eax
push dword [ebp + 8]
call fcn.0042b9bb
add esp, 0x14
test eax, eax
jge 0x418d2a
mov ecx, dword [ebp - 4]
call fcn.00401046
mov edi, eax
mov ecx, edi
call fcn.00420387
mov ecx, edi
mov esi, eax
call fcn.004225e2
push 2
test eax, eax
pop ebx
je 0x418b8d
cmp dword [esi + 8], 5
jne 0x418b4e
cmp dword [esi + 0xc], ebx
jae 0x418b57
call fcn.00430836
test eax, eax
je 0x418b86
call fcn.00430836
test eax, eax
jne 0x418d25
lea eax, [ebp - 0xc0]
mov dword [ebp - 0xc0], 0x9c
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp word [ebp - 0x2c], 1
jae 0x418d25
mov eax, 0x44c310
jmp 0x418ba2
mov ecx, edi
call fcn.004225c5
test eax, eax
mov eax, 0x44c300
jne 0x418ba2
mov eax, 0x44c2f4
push edi
push eax
call fcn.0042c879
pop ecx
test eax, eax
pop ecx
je 0x418c52
cmp dword [esi], ebx
jne 0x418c4b
call fcn.0042bcff
test eax, eax
jne 0x418bdc
mov eax, 0x4b2
push eax
mov dword [0x453ec8], eax
call fcn.0042af21
pop ecx
push 1
jmp 0x418d2c
and byte [ebp - 0x4c0], 0
mov ecx, 0xff
xor eax, eax
lea edi, [ebp - 0x4bf]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x4c0]
mov esi, 0x400
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
je 0x418c1f
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x4c0]
push eax
call fcn.004187cf
test eax, eax
je 0x418c44
lea eax, [ebp - 0x4c0]
push esi
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
test eax, eax
je 0x418c4b
mov ecx, dword [ebp - 4]
lea eax, [ebp - 0x4c0]
push eax
call fcn.004187cf
test eax, eax
jne 0x418c4b
mov eax, ebx
jmp 0x418d2d
xor eax, eax
jmp 0x418d2d
cmp dword [esi + 0x14], ebx
jne 0x418c5d
cmp dword [esi + 8], 4
je 0x418c68
mov ecx, edi
call fcn.004225e2
test eax, eax
je 0x418c76
mov ecx, edi
call fcn.0042258c
push 3
jmp 0x418d2c
mov esi, 0x400
lea eax, [ebp - 0xec0]
push esi
push eax
push 0x450eb0
lea ecx, [edi + 0x4030]
push dword [0x442614]
push dword [0x44260c]
call fcn.00402606
cmp byte [ebp - 0xec0], 0x79
je 0x418d25
cmp byte [ebp - 0xec0], 0x59
je 0x418d25
and byte [ebp - 0x4c0], 0
mov ebx, 0xff
mov ecx, ebx
xor eax, eax
lea edi, [ebp - 0x4bf]
mov edx, 0x4b7
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
lea eax, [ebp - 0x4c0]
push esi
push eax
push edx
mov dword [0x453ec8], edx
call fcn.0042af98
and byte [ebp - 0xac0], 0
mov ecx, ebx
xor eax, eax
lea edi, [ebp - 0xabf]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
add esp, 0xc
stosb byte es:[edi], al
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x4c0]
push eax
lea eax, [ebp - 0xac0]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0xac0]
push eax
call fcn.0042adc9
add esp, 0x10
or eax, 0xffffffff
jmp 0x418d2d
push 0xfffffffffffffffe
pop eax
pop edi
pop esi
pop ebx
leave
ret 4