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

Disassembly:
push 0x214
push 0x49f260
call fcn.0045a600
and dword [ebp - 0x214], 0
xor ecx, ecx
xor dword [ebp - 0x214], ecx
jge 0x401a73
neg dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
cdq
push 7
pop esi
idiv esi
test edx, edx
jne 0x401a89
and dword [ebp - 0x214], edx
inc ecx
cmp ecx, 0x13
jl 0x401a65
push 0xc
pop esi
mov ebx, 0xfa
mov edi, dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
cmp dword [ebp - 0x214], 0
jge 0x401aac
neg dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
cdq
push 7
pop ecx
idiv ecx
test edx, edx
je 0x401ac3
and dword [ebp - 0x214], 0
push ebx
lea eax, [ebp - 0x210]
push eax
call edi
dec esi
jne 0x401a9d
xor eax, eax
add dword [ebp - 0x214], eax
inc eax
cmp eax, 0x1e
jl 0x401ad2
mov eax, dword [ebp - 0x214]
cmp eax, 0xffff
jle 0x401af4
imul eax, eax, 7
mov dword [ebp - 0x214], eax
cdq
push 0xb
pop ecx
idiv ecx
cmp edx, 7
jne 0x401b09
mov dword [ebp - 0x214], 0xd
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
xor edx, edx
push 3
pop ecx
div ecx
cmp edx, 1
jne 0x401b25
call esi
add dword [ebp - 0x214], eax
push 0xd
pop esi
cmp dword [ebp - 0x214], 0
jge 0x401b37
neg dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
cdq
push 7
pop ecx
idiv ecx
test edx, edx
je 0x401b4e
and dword [ebp - 0x214], 0
push ebx
lea eax, [ebp - 0x210]
push eax
call edi
dec esi
jne 0x401b28
push 3
pop esi
cmp dword [ebp - 0x214], 0
jge 0x401b6d
neg dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
cdq
push 7
pop ecx
idiv ecx
test edx, edx
je 0x401b84
and dword [ebp - 0x214], 0
push ebx
lea eax, [ebp - 0x210]
push eax
call edi
dec esi
jne 0x401b5e
add dword [ebp - 0x214], 2
inc dword [ebp - 0x214]
jns 0x401ba6
neg dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
cdq
push 7
pop ecx
idiv ecx
test edx, edx
je 0x401bbd
and dword [ebp - 0x214], 0
push ebx
lea eax, [ebp - 0x210]
push eax
call edi
push 7
pop esi
cmp dword [ebp - 0x214], 0
jge 0x401bd9
neg dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
cdq
push 7
pop ecx
idiv ecx
test edx, edx
je 0x401bf0
and dword [ebp - 0x214], 0
push ebx
lea eax, [ebp - 0x210]
push eax
call edi
dec esi
jne 0x401bca
push 3
pop esi
cmp dword [ebp - 0x214], 0
jge 0x401c0f
neg dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
cdq
push 7
pop ecx
idiv ecx
test edx, edx
je 0x401c26
and dword [ebp - 0x214], 0
push ebx
lea eax, [ebp - 0x210]
push eax
call edi
dec esi
jne 0x401c00
xor ecx, ecx
xor dword [ebp - 0x214], ecx
jge 0x401c43
neg dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
cdq
push 7
pop esi
idiv esi
test edx, edx
jne 0x401c59
and dword [ebp - 0x214], edx
inc ecx
cmp ecx, 7
jl 0x401c35
xor ecx, ecx
xor dword [ebp - 0x214], ecx
jge 0x401c6f
neg dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
cdq
push 7
pop esi
idiv esi
test edx, edx
jne 0x401c85
and dword [ebp - 0x214], edx
inc ecx
cmp ecx, 6
jl 0x401c61
and dword [ebp - 4], 0
and dword [ebp - 0x224], 0
cmp dword [ebp - 0x224], 1
jge 0x401cc8
mov eax, dword [ebp - 0x224]
cdq
push 3
pop ecx
idiv ecx
cmp eax, 7
jle 0x401cb9
sub dword [ebp - 0x214], 2
jmp 0x401cc0
add dword [ebp - 0x214], 3
inc dword [ebp - 0x224]
jmp 0x401c96
mov dword [ebp - 4], 0xfffffffe
call fcn.00401d2c
push 7
pop esi
cmp dword [ebp - 0x214], 0
jge 0x401ce6
neg dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
cdq
push 7
pop ecx
idiv ecx
test edx, edx
je 0x401cfd
and dword [ebp - 0x214], 0
push ebx
lea eax, [ebp - 0x210]
push eax
call edi
dec esi
jne 0x401cd7
xor ecx, ecx
mov eax, ecx
cdq
push 3
pop esi
idiv esi
cmp edx, 1
jne 0x401d45
and dword [ebp - 0x214], ecx
jmp 0x401d4b
or dword [ebp - 0x214], ecx
inc ecx
cmp ecx, 6
jl 0x401d0c
xor esi, esi
mov eax, esi
cdq
push 5
pop ecx
idiv ecx
cmp edx, 1
je 0x401d6d
cmp edx, 4
je 0x401d6d
and dword [ebp - 0x214], esi
jmp 0x401d73
sub dword [ebp - 0x214], esi
call dword [sym.imp.KERNEL32.dll_GetVersion]
inc esi
cmp esi, 7
jl 0x401d53
cmp dword [ebp - 0x214], 0
jge 0x401d8e
neg dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
cdq
push 7
pop ecx
idiv ecx
test edx, edx
je 0x401da5
and dword [ebp - 0x214], 0
push ebx
lea eax, [ebp - 0x210]
push eax
call edi
mov eax, dword [ebp - 0x214]
cmp eax, 0xffff
jle 0x401dc5
imul eax, eax, 7
mov dword [ebp - 0x214], eax
cdq
push 0xb
pop ecx
idiv ecx
cmp edx, 7
jne 0x401dda
mov dword [ebp - 0x214], 0xd
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
xor edx, edx
push 3
pop ecx
div ecx
cmp edx, 1
jne 0x401df6
call esi
add dword [ebp - 0x214], eax
xor esi, esi
mov eax, esi
cdq
push 5
pop ecx
idiv ecx
cmp edx, 1
je 0x401e12
cmp edx, 4
je 0x401e12
and dword [ebp - 0x214], esi
jmp 0x401e18
sub dword [ebp - 0x214], esi
call dword [sym.imp.KERNEL32.dll_GetVersion]
inc esi
cmp esi, 6
jl 0x401df8
xor eax, eax
add dword [ebp - 0x214], eax
inc eax
cmp eax, 2
jl 0x401e26
mov eax, dword [ebp - 0x214]
cmp eax, 0xffff
jle 0x401e48
imul eax, eax, 7
mov dword [ebp - 0x214], eax
cdq
push 0xb
pop ecx
idiv ecx
cmp edx, 7
jne 0x401e5d
mov dword [ebp - 0x214], 0xd
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
xor edx, edx
push 3
pop ecx
div ecx
cmp edx, 1
jne 0x401e79
call esi
add dword [ebp - 0x214], eax
xor esi, esi
mov eax, esi
cdq
push 5
pop ecx
idiv ecx
cmp edx, 1
je 0x401e95
cmp edx, 4
je 0x401e95
and dword [ebp - 0x214], esi
jmp 0x401e9b
sub dword [ebp - 0x214], esi
call dword [sym.imp.KERNEL32.dll_GetVersion]
inc esi
cmp esi, 2
jl 0x401e7b
cmp dword [ebp - 0x214], 0
jge 0x401eb6
neg dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
cdq
push 7
pop ecx
idiv ecx
test edx, edx
je 0x401ecd
and dword [ebp - 0x214], 0
push ebx
lea eax, [ebp - 0x210]
push eax
call edi
xor ecx, ecx
push 3
pop edi
xor esi, esi
inc esi
mov eax, ecx
cdq
mov ebx, edi
idiv ebx
cmp edx, esi
jne 0x401ef2
and dword [ebp - 0x214], ecx
jmp 0x401ef8
or dword [ebp - 0x214], ecx
inc ecx
cmp ecx, 6
jl 0x401edf
xor ecx, ecx
mov eax, ecx
cdq
mov ebx, edi
idiv ebx
cmp edx, esi
jne 0x401f13
and dword [ebp - 0x214], ecx
jmp 0x401f19
or dword [ebp - 0x214], ecx
inc ecx
cmp ecx, 6
jl 0x401f00
mov dword [ebp - 4], esi
and dword [ebp - 0x218], 0
cmp dword [ebp - 0x218], 8
jge 0x401f59
mov eax, dword [ebp - 0x218]
cdq
mov ecx, edi
idiv ecx
cmp eax, 7
jle 0x401f4b
sub dword [ebp - 0x214], 2
jmp 0x401f51
add dword [ebp - 0x214], edi
inc dword [ebp - 0x218]
jmp 0x401f29
mov dword [ebp - 4], 0xfffffffe
call fcn.00402099
xor ecx, ecx
xor dword [ebp - 0x214], ecx
jge 0x401f75
neg dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
cdq
mov edi, esi
idiv edi
test edx, edx
jne 0x401f8a
and dword [ebp - 0x214], edx
inc ecx
cmp ecx, 2
jl 0x401f67
xor edi, edi
inc edi
mov edx, edi
mov eax, edi
push 8
pop esi
lea ecx, [eax + edx]
mov edx, eax
mov eax, ecx
add dword [ebp - 0x214], ecx
dec esi
jne 0x401f9a
add dword [ebp - 0x214], 8
xor ecx, ecx
xor dword [ebp - 0x214], ecx
jge 0x401fc1
neg dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
cdq
push 7
pop esi
idiv esi
test edx, edx
jne 0x401fd7
and dword [ebp - 0x214], edx
inc ecx
cmp ecx, 7
jl 0x401fb3
mov eax, dword [ebp - 0x214]
mov dword [ebp - 0x214], eax
test eax, eax
jns 0x401ff5
neg eax
mov dword [ebp - 0x214], eax
cdq
push 7
pop ecx
idiv ecx
test edx, edx
jne 0x402005
and dword [ebp - 0x214], edx
mov edx, edi
mov eax, edi
push 2
pop ebx
mov esi, ebx
lea ecx, [eax + edx]
mov edx, eax
mov eax, ecx
add dword [ebp - 0x214], ecx
dec esi
jne 0x40200e
add dword [ebp - 0x214], ebx
xor eax, eax
inc eax
mov ecx, eax
push 4
pop esi
lea edx, [eax + ecx]
mov ecx, eax
mov eax, edx
add dword [ebp - 0x214], edx
dec esi
jne 0x40202c
add dword [ebp - 0x214], 4
xor eax, eax
inc eax
mov ecx, eax
mov esi, ebx
lea edx, [eax + ecx]
mov ecx, eax
mov eax, edx
add dword [ebp - 0x214], edx
dec esi
jne 0x40204a
add dword [ebp - 0x214], ebx
and dword [ebp - 0x214], esi
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 4], ebx
and dword [ebp - 0x220], esi
push 3
pop edi
cmp dword [ebp - 0x220], 4
jge 0x4020c0
mov eax, dword [ebp - 0x220]
cdq
mov ecx, edi
idiv ecx
cmp eax, 7
jle 0x4020b2
sub dword [ebp - 0x214], ebx
jmp 0x4020b8
add dword [ebp - 0x214], edi
inc dword [ebp - 0x220]
jmp 0x402078
mov dword [ebp - 4], 0xfffffffe
call fcn.0040210d
mov eax, dword [ebp - 0x214]
mov dword [ebp - 0x214], eax
test eax, eax
jns 0x4020e4
neg eax
mov dword [ebp - 0x214], eax
cdq
idiv ecx
test edx, edx
jne 0x4020f1
and dword [ebp - 0x214], edx
xor ecx, ecx
mov eax, ecx
cdq
mov esi, edi
idiv esi
cmp edx, 1
jne 0x402126
and dword [ebp - 0x214], ecx
jmp 0x40212c
or dword [ebp - 0x214], ecx
inc ecx
cmp ecx, edi
jl 0x4020f3
mov eax, dword [ebp - 0x214]
mov dword [ebp - 0x214], eax
xor ecx, ecx
cmp eax, ecx
jge 0x40214b
neg eax
mov dword [ebp - 0x214], eax
cdq
push 7
pop esi
idiv esi
test edx, edx
jne 0x40215b
mov dword [ebp - 0x214], ecx
mov eax, ecx
cdq
mov esi, edi
idiv esi
cmp edx, 1
jne 0x40216f
and dword [ebp - 0x214], ecx
jmp 0x402175
or dword [ebp - 0x214], ecx
inc ecx
cmp ecx, 4
jl 0x40215b
xor ecx, ecx
xor dword [ebp - 0x214], ecx
jge 0x40218b
neg dword [ebp - 0x214]
mov eax, dword [ebp - 0x214]
cdq
push 7
pop esi
idiv esi
test edx, edx
jne 0x4021a1
and dword [ebp - 0x214], edx
inc ecx
cmp ecx, ebx
jl 0x40217d
xor ecx, ecx
mov eax, ecx
cdq
mov esi, edi
idiv esi
cmp edx, 1
jne 0x4021bc
and dword [ebp - 0x214], ecx
jmp 0x4021c2
or dword [ebp - 0x214], ecx
inc ecx
cmp ecx, 4
jl 0x4021a8
mov dword [ebp - 4], edi
and dword [ebp - 0x21c], 0
cmp dword [ebp - 0x21c], 1
jge 0x402201
mov eax, dword [ebp - 0x21c]
cdq
mov ecx, edi
idiv ecx
cmp eax, 7
jle 0x4021f3
sub dword [ebp - 0x214], ebx
jmp 0x4021f9
add dword [ebp - 0x214], edi
inc dword [ebp - 0x21c]
jmp 0x4021d2
mov dword [ebp - 4], 0xfffffffe
call fcn.00402248
add dword [ebp - 0x214], ebx
inc dword [ebp - 0x214]
xor eax, eax
inc eax
mov ecx, eax
mov esi, edi
lea edx, [eax + ecx]
mov ecx, eax
mov eax, edx
add dword [ebp - 0x214], edx
dec esi
jne 0x402220
add dword [ebp - 0x214], edi
mov eax, dword [ebp - 0x214]
call fcn.0045a648
ret