Function at 0x46c3c0
Capabilities:
Check os version
Get common file path
Get session user name

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x511aa8
push 0x40b390
mov eax, dword fs:[0]
push eax
add esp, 0xfffff5a4
mov eax, dword [0x517138]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x34], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
mov dword [ebp - 0x1c], 0
mov dword [ebp - 4], 0
mov dword [ebp - 0x20], 0xffffffff
mov dword [ebp - 0x24], 0
jmp 0x46c420
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 2
jge 0x46c449
mov eax, dword [ebp - 0x24]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x46c43e
mov edx, dword [ebp - 0x20]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x46c417
mov dword [ebp - 4], 0xfffffffe
jmp 0x46c469
mov dword [ebp - 0x28], 0
jmp 0x46c47b
mov edx, dword [ebp - 0x28]
add edx, 1
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x28], 0x36
jge 0x46c48c
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x28]
mov dword [ebp - 0x1c], eax
jmp 0x46c472
cmp dword [ebp - 0x1c], 0
jge 0x46c49a
mov ecx, dword [ebp - 0x1c]
neg ecx
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x46c4b2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x46c4e3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x2c]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x46c4d8
jmp 0x46c4e3
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], edx
jmp 0x46c4b2
mov eax, dword [ebp - 0x1c]
add eax, 0x1d
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x30], 0
jmp 0x46c4fe
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x30], 8
jge 0x46c53c
cmp dword [ebp - 0x1c], 0
jge 0x46c512
mov edx, dword [ebp - 0x1c]
neg edx
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x46c528
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x230]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x46c4f5
mov dword [ebp - 0x234], 0
jmp 0x46c557
mov eax, dword [ebp - 0x234]
add eax, 1
mov dword [ebp - 0x234], eax
cmp dword [ebp - 0x234], 0xd
jge 0x46c5a4
mov eax, dword [ebp - 0x234]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x46c586
mov eax, dword [ebp - 0x234]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x46c596
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x234]
mov dword [ebp - 0x1c], edx
jmp 0x46c5a2
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x234]
mov dword [ebp - 0x1c], eax
jmp 0x46c548
mov dword [ebp - 4], 1
mov dword [ebp - 0x238], 0xffffffff
mov dword [ebp - 0x23c], 0
jmp 0x46c5d0
mov ecx, dword [ebp - 0x23c]
add ecx, 1
mov dword [ebp - 0x23c], ecx
cmp dword [ebp - 0x23c], 7
jge 0x46c602
mov eax, dword [ebp - 0x23c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x46c5f7
mov edx, dword [ebp - 0x238]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x46c5c1
mov dword [ebp - 4], 0xfffffffe
jmp 0x46c622
mov dword [ebp - 0x240], 0
jmp 0x46c63d
mov edx, dword [ebp - 0x240]
add edx, 1
mov dword [ebp - 0x240], edx
cmp dword [ebp - 0x240], 7
jge 0x46c68a
mov eax, dword [ebp - 0x240]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x46c66c
mov eax, dword [ebp - 0x240]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x46c67c
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x240]
mov dword [ebp - 0x1c], edx
jmp 0x46c688
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x240]
mov dword [ebp - 0x1c], eax
jmp 0x46c62e
mov dword [ebp - 0x244], 0
jmp 0x46c6a5
mov ecx, dword [ebp - 0x244]
add ecx, 1
mov dword [ebp - 0x244], ecx
cmp dword [ebp - 0x244], 7
jge 0x46c6bc
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x244]
mov dword [ebp - 0x1c], edx
jmp 0x46c696
cmp dword [ebp - 0x1c], 0
jge 0x46c6ca
mov eax, dword [ebp - 0x1c]
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x46c6e2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x248], 0
jmp 0x46c6fd
mov edx, dword [ebp - 0x248]
add edx, 1
mov dword [ebp - 0x248], edx
cmp dword [ebp - 0x248], 0xb
jge 0x46c714
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x248]
mov dword [ebp - 0x1c], eax
jmp 0x46c6ee
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x46c726
mov ecx, dword [ebp - 0x1c]
imul ecx, ecx, 0xfffffffb
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x46c73e
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24c], 0
jmp 0x46c759
mov edx, dword [ebp - 0x24c]
add edx, 1
mov dword [ebp - 0x24c], edx
cmp dword [ebp - 0x24c], 0x10
jge 0x46c770
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x24c]
mov dword [ebp - 0x1c], eax
jmp 0x46c74a
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x46c782
mov ecx, dword [ebp - 0x1c]
imul ecx, ecx, 0xfffffffb
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x46c79a
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x250], 0
jmp 0x46c7b5
mov edx, dword [ebp - 0x250]
add edx, 1
mov dword [ebp - 0x250], edx
cmp dword [ebp - 0x250], 8
jge 0x46c7cc
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x250]
mov dword [ebp - 0x1c], eax
jmp 0x46c7a6
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x46c7de
mov ecx, dword [ebp - 0x1c]
imul ecx, ecx, 0xfffffffb
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x46c7f6
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x254], 0
jmp 0x46c811
mov edx, dword [ebp - 0x254]
add edx, 1
mov dword [ebp - 0x254], edx
cmp dword [ebp - 0x254], 7
jge 0x46c828
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x254]
mov dword [ebp - 0x1c], eax
jmp 0x46c802
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x46c83a
mov ecx, dword [ebp - 0x1c]
imul ecx, ecx, 0xfffffffb
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x46c852
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x258], 0
jmp 0x46c86d
mov edx, dword [ebp - 0x258]
add edx, 1
mov dword [ebp - 0x258], edx
cmp dword [ebp - 0x258], 0xd
jge 0x46c884
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x258]
mov dword [ebp - 0x1c], eax
jmp 0x46c85e
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x46c896
mov ecx, dword [ebp - 0x1c]
imul ecx, ecx, 0xfffffffb
mov dword [ebp - 0x1c], ecx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x46c8ae
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x46c8e8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x25c], eax
mov eax, dword [ebp - 0x25c]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x46c8da
jmp 0x46c8e8
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x25c]
mov dword [ebp - 0x1c], edx
jmp 0x46c8ae
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x260], 0
jmp 0x46c90c
mov ecx, dword [ebp - 0x260]
add ecx, 1
mov dword [ebp - 0x260], ecx
cmp dword [ebp - 0x260], 5
jge 0x46c923
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x260]
mov dword [ebp - 0x1c], edx
jmp 0x46c8fd
cmp dword [ebp - 0x1c], 0
jge 0x46c931
mov eax, dword [ebp - 0x1c]
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x46c949
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x264], 0
jmp 0x46c964
mov edx, dword [ebp - 0x264]
add edx, 1
mov dword [ebp - 0x264], edx
cmp dword [ebp - 0x264], 8
jge 0x46c9a5
cmp dword [ebp - 0x1c], 0
jge 0x46c97b
mov eax, dword [ebp - 0x1c]
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x46c991
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x460]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x46c955
mov dword [ebp - 0x464], 0
jmp 0x46c9c0
mov eax, dword [ebp - 0x464]
add eax, 1
mov dword [ebp - 0x464], eax
cmp dword [ebp - 0x464], 4
jge 0x46c9d7
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x464]
mov dword [ebp - 0x1c], ecx
jmp 0x46c9b1
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x46c9e9
mov edx, dword [ebp - 0x1c]
imul edx, edx, 0xfffffffb
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x46ca01
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x468], 0
jmp 0x46ca1c
mov edx, dword [ebp - 0x468]
add edx, 1
mov dword [ebp - 0x468], edx
cmp dword [ebp - 0x468], 4
jge 0x46ca5d
cmp dword [ebp - 0x1c], 0
jge 0x46ca33
mov eax, dword [ebp - 0x1c]
neg eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x46ca49
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x660]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x46ca0d
mov eax, 1
test eax, eax
je 0x46ca97
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x664], eax
mov eax, dword [ebp - 0x664]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x46ca89
jmp 0x46ca97
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x664]
mov dword [ebp - 0x1c], edx
jmp 0x46ca5d
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov ecx, 1
test ecx, ecx
je 0x46cada
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x668], eax
mov eax, dword [ebp - 0x668]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x46cacc
jmp 0x46cada
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x668]
mov dword [ebp - 0x1c], edx
jmp 0x46caa0
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x66c], 0
jmp 0x46cafe
mov ecx, dword [ebp - 0x66c]
add ecx, 1
mov dword [ebp - 0x66c], ecx
cmp dword [ebp - 0x66c], 4
jge 0x46cb4b
cmp dword [ebp - 0x1c], 0
jge 0x46cb15
mov edx, dword [ebp - 0x1c]
neg edx
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
jne 0x46cb2b
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x670], 0xfa
lea edx, [ebp - 0x670]
push edx
lea eax, [ebp - 0x868]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x46caef
mov dword [ebp - 0x86c], 0
jmp 0x46cb66
mov ecx, dword [ebp - 0x86c]
add ecx, 1
mov dword [ebp - 0x86c], ecx
cmp dword [ebp - 0x86c], 0
jge 0x46cbb3
mov eax, dword [ebp - 0x86c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x46cb95
mov eax, dword [ebp - 0x86c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x46cba5
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x86c]
mov dword [ebp - 0x1c], edx
jmp 0x46cbb1
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x86c]
mov dword [ebp - 0x1c], eax
jmp 0x46cb57
mov dword [ebp - 0x870], 0
jmp 0x46cbce
mov ecx, dword [ebp - 0x870]
add ecx, 1
mov dword [ebp - 0x870], ecx
cmp dword [ebp - 0x870], 2
jge 0x46cc0f
cmp dword [ebp - 0x1c], 0
jge 0x46cbe5
mov edx, dword [ebp - 0x1c]
neg edx
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x46cbfb
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0xa68]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x46cbbf
mov dword [ebp - 0xa6c], 0
jmp 0x46cc2a
mov eax, dword [ebp - 0xa6c]
add eax, 1
mov dword [ebp - 0xa6c], eax
cmp dword [ebp - 0xa6c], 3
jge 0x46cc77
mov eax, dword [ebp - 0xa6c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x46cc59
mov eax, dword [ebp - 0xa6c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x46cc69
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xa6c]
mov dword [ebp - 0x1c], edx
jmp 0x46cc75
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0xa6c]
mov dword [ebp - 0x1c], eax
jmp 0x46cc1b
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x34]
xor ecx, ebp
call fcn.004079a5
mov esp, ebp
pop ebp
ret