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

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x513660
push 0x40b390
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, 0x2508
call fcn.004149d0
mov eax, dword [0x517138]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x24], 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 - 0x20], 0
jmp 0x4c16b9
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0x1b
jge 0x4c16f7
cmp dword [ebp - 0x1c], 0
jge 0x4c16cd
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
je 0x4c16e3
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x220]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4c16b0
mov dword [ebp - 0x224], 0
jmp 0x4c1712
mov eax, dword [ebp - 0x224]
add eax, 1
mov dword [ebp - 0x224], eax
cmp dword [ebp - 0x224], 0x33
jge 0x4c175f
mov eax, dword [ebp - 0x224]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4c1741
mov eax, dword [ebp - 0x224]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4c1751
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x224]
mov dword [ebp - 0x1c], edx
jmp 0x4c175d
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x224]
mov dword [ebp - 0x1c], eax
jmp 0x4c1703
mov dword [ebp - 0x228], 0
jmp 0x4c177a
mov ecx, dword [ebp - 0x228]
add ecx, 1
mov dword [ebp - 0x228], ecx
cmp dword [ebp - 0x228], 0x11
jge 0x4c1791
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x228]
mov dword [ebp - 0x1c], edx
jmp 0x4c176b
cmp dword [ebp - 0x1c], 0
jge 0x4c179f
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 0x4c17b7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x22c], 0xffffffff
mov dword [ebp - 0x230], 0
jmp 0x4c17e3
mov edx, dword [ebp - 0x230]
add edx, 1
mov dword [ebp - 0x230], edx
cmp dword [ebp - 0x230], 0x28
jge 0x4c1815
mov eax, dword [ebp - 0x230]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4c180a
mov edx, dword [ebp - 0x22c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4c17d4
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c1835
mov dword [ebp - 4], 1
mov dword [ebp - 0x234], 0xffffffff
mov dword [ebp - 0x238], 0
jmp 0x4c1861
mov edx, dword [ebp - 0x238]
add edx, 1
mov dword [ebp - 0x238], edx
cmp dword [ebp - 0x238], 5
jge 0x4c1893
mov eax, dword [ebp - 0x238]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4c1888
mov edx, dword [ebp - 0x234]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4c1852
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c18b3
mov dword [ebp - 0x23c], 0
jmp 0x4c18ce
mov edx, dword [ebp - 0x23c]
add edx, 1
mov dword [ebp - 0x23c], edx
cmp dword [ebp - 0x23c], 0xe
jge 0x4c191b
cmp dword [ebp - 0x1c], 0
jge 0x4c18e5
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 0x4c18fb
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x240], 0xfa
lea edx, [ebp - 0x240]
push edx
lea eax, [ebp - 0x438]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4c18bf
mov dword [ebp - 0x43c], 0
jmp 0x4c1936
mov ecx, dword [ebp - 0x43c]
add ecx, 1
mov dword [ebp - 0x43c], ecx
cmp dword [ebp - 0x43c], 8
jge 0x4c1983
mov eax, dword [ebp - 0x43c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4c1965
mov eax, dword [ebp - 0x43c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4c1975
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x43c]
mov dword [ebp - 0x1c], edx
jmp 0x4c1981
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x43c]
mov dword [ebp - 0x1c], eax
jmp 0x4c1927
mov dword [ebp - 0x440], 0
jmp 0x4c199e
mov ecx, dword [ebp - 0x440]
add ecx, 1
mov dword [ebp - 0x440], ecx
cmp dword [ebp - 0x440], 0x1d
jge 0x4c19eb
mov eax, dword [ebp - 0x440]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4c19cd
mov eax, dword [ebp - 0x440]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4c19dd
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x440]
mov dword [ebp - 0x1c], edx
jmp 0x4c19e9
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x440]
mov dword [ebp - 0x1c], eax
jmp 0x4c198f
mov dword [ebp - 0x444], 0
jmp 0x4c1a06
mov ecx, dword [ebp - 0x444]
add ecx, 1
mov dword [ebp - 0x444], ecx
cmp dword [ebp - 0x444], 5
jge 0x4c1a1d
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x444]
mov dword [ebp - 0x1c], edx
jmp 0x4c19f7
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4c1a2f
mov eax, dword [ebp - 0x1c]
imul eax, eax, 0xfffffffb
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x4c1a47
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x4c1a81
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x448], eax
mov eax, dword [ebp - 0x448]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4c1a73
jmp 0x4c1a81
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x448]
mov dword [ebp - 0x1c], edx
jmp 0x4c1a47
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x44c], 0
jmp 0x4c1aa5
mov ecx, dword [ebp - 0x44c]
add ecx, 1
mov dword [ebp - 0x44c], ecx
cmp dword [ebp - 0x44c], 0xc
jge 0x4c1abc
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x44c]
mov dword [ebp - 0x1c], edx
jmp 0x4c1a96
cmp dword [ebp - 0x1c], 0
jge 0x4c1aca
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 0x4c1ae2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x450], 0
jmp 0x4c1afd
mov edx, dword [ebp - 0x450]
add edx, 1
mov dword [ebp - 0x450], edx
cmp dword [ebp - 0x450], 0xe
jge 0x4c1b14
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x450]
mov dword [ebp - 0x1c], eax
jmp 0x4c1aee
cmp dword [ebp - 0x1c], 0
jge 0x4c1b22
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 0x4c1b3a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x454], 0
jmp 0x4c1b55
mov edx, dword [ebp - 0x454]
add edx, 1
mov dword [ebp - 0x454], edx
cmp dword [ebp - 0x454], 0
jge 0x4c1b6c
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x454]
mov dword [ebp - 0x1c], eax
jmp 0x4c1b46
cmp dword [ebp - 0x1c], 0
jge 0x4c1b7a
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 0x4c1b92
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x458], 0
jmp 0x4c1bad
mov edx, dword [ebp - 0x458]
add edx, 1
mov dword [ebp - 0x458], edx
cmp dword [ebp - 0x458], 9
jge 0x4c1bfa
cmp dword [ebp - 0x1c], 0
jge 0x4c1bc4
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 0x4c1bda
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x45c], 0xfa
lea edx, [ebp - 0x45c]
push edx
lea eax, [ebp - 0x658]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4c1b9e
mov dword [ebp - 0x65c], 0
jmp 0x4c1c15
mov ecx, dword [ebp - 0x65c]
add ecx, 1
mov dword [ebp - 0x65c], ecx
cmp dword [ebp - 0x65c], 6
jge 0x4c1c62
cmp dword [ebp - 0x1c], 0
jge 0x4c1c2c
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 0x4c1c42
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x660], 0xfa
lea edx, [ebp - 0x660]
push edx
lea eax, [ebp - 0x858]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4c1c06
mov dword [ebp - 4], 2
mov dword [ebp - 0x85c], 0xffffffff
mov dword [ebp - 0x860], 0
jmp 0x4c1c8e
mov ecx, dword [ebp - 0x860]
add ecx, 1
mov dword [ebp - 0x860], ecx
cmp dword [ebp - 0x860], 3
jge 0x4c1cc0
mov eax, dword [ebp - 0x860]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4c1cb5
mov edx, dword [ebp - 0x85c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4c1c7f
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c1ce0
mov dword [ebp - 4], 3
mov dword [ebp - 0x864], 0xffffffff
mov dword [ebp - 0x868], 0
jmp 0x4c1d0c
mov edx, dword [ebp - 0x868]
add edx, 1
mov dword [ebp - 0x868], edx
cmp dword [ebp - 0x868], 3
jge 0x4c1d3e
mov eax, dword [ebp - 0x868]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4c1d33
mov edx, dword [ebp - 0x864]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4c1cfd
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c1d5e
mov dword [ebp - 4], 4
mov dword [ebp - 0x86c], 0xffffffff
mov dword [ebp - 0x870], 0
jmp 0x4c1d8a
mov edx, dword [ebp - 0x870]
add edx, 1
mov dword [ebp - 0x870], edx
cmp dword [ebp - 0x870], 5
jge 0x4c1dbc
mov eax, dword [ebp - 0x870]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4c1db1
mov edx, dword [ebp - 0x86c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4c1d7b
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c1ddc
mov edx, 1
test edx, edx
je 0x4c1e16
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x874], eax
mov eax, dword [ebp - 0x874]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4c1e08
jmp 0x4c1e16
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x874]
mov dword [ebp - 0x1c], edx
jmp 0x4c1ddc
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x878], 0
jmp 0x4c1e3a
mov ecx, dword [ebp - 0x878]
add ecx, 1
mov dword [ebp - 0x878], ecx
cmp dword [ebp - 0x878], 6
jge 0x4c1e51
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x878]
mov dword [ebp - 0x1c], edx
jmp 0x4c1e2b
cmp dword [ebp - 0x1c], 0
jge 0x4c1e5f
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 0x4c1e77
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x87c], 0
jmp 0x4c1e92
mov edx, dword [ebp - 0x87c]
add edx, 1
mov dword [ebp - 0x87c], edx
cmp dword [ebp - 0x87c], 8
jge 0x4c1ed3
cmp dword [ebp - 0x1c], 0
jge 0x4c1ea9
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 0x4c1ebf
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0xa78]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4c1e83
mov eax, 1
test eax, eax
je 0x4c1f0d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xa7c], eax
mov eax, dword [ebp - 0xa7c]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4c1eff
jmp 0x4c1f0d
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0xa7c]
mov dword [ebp - 0x1c], edx
jmp 0x4c1ed3
mov eax, dword [ebp - 0x1c]
add eax, 8
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 5
mov dword [ebp - 0xa80], 0xffffffff
mov dword [ebp - 0xa84], 0
jmp 0x4c1f42
mov ecx, dword [ebp - 0xa84]
add ecx, 1
mov dword [ebp - 0xa84], ecx
cmp dword [ebp - 0xa84], 5
jge 0x4c1f74
mov eax, dword [ebp - 0xa84]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4c1f69
mov edx, dword [ebp - 0xa80]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4c1f33
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c1f94
mov edx, 1
test edx, edx
je 0x4c1fce
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xa88], eax
mov eax, dword [ebp - 0xa88]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4c1fc0
jmp 0x4c1fce
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0xa88]
mov dword [ebp - 0x1c], edx
jmp 0x4c1f94
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xa8c], 0
jmp 0x4c1ff2
mov ecx, dword [ebp - 0xa8c]
add ecx, 1
mov dword [ebp - 0xa8c], ecx
cmp dword [ebp - 0xa8c], 5
jge 0x4c203f
cmp dword [ebp - 0x1c], 0
jge 0x4c2009
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 0x4c201f
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xa90], 0xfa
lea edx, [ebp - 0xa90]
push edx
lea eax, [ebp - 0xc88]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4c1fe3
mov dword [ebp - 0xc8c], 0
jmp 0x4c205a
mov ecx, dword [ebp - 0xc8c]
add ecx, 1
mov dword [ebp - 0xc8c], ecx
cmp dword [ebp - 0xc8c], 3
jge 0x4c209b
cmp dword [ebp - 0x1c], 0
jge 0x4c2071
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 0x4c2087
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0xe88]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4c204b
mov eax, 1
test eax, eax
je 0x4c20d5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xe8c], eax
mov eax, dword [ebp - 0xe8c]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4c20c7
jmp 0x4c20d5
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0xe8c]
mov dword [ebp - 0x1c], edx
jmp 0x4c209b
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xe90], 0
jmp 0x4c20f9
mov ecx, dword [ebp - 0xe90]
add ecx, 1
mov dword [ebp - 0xe90], ecx
cmp dword [ebp - 0xe90], 4
jge 0x4c2146
cmp dword [ebp - 0x1c], 0
jge 0x4c2110
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 0x4c2126
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xe94], 0xfa
lea edx, [ebp - 0xe94]
push edx
lea eax, [ebp - 0x1090]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4c20ea
mov dword [ebp - 0x1094], 0
jmp 0x4c2161
mov ecx, dword [ebp - 0x1094]
add ecx, 1
mov dword [ebp - 0x1094], ecx
cmp dword [ebp - 0x1094], 3
jge 0x4c2178
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x1094]
mov dword [ebp - 0x1c], edx
jmp 0x4c2152
cmp dword [ebp - 0x1c], 0
jge 0x4c2186
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 0x4c219e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1098], 0
jmp 0x4c21b9
mov edx, dword [ebp - 0x1098]
add edx, 1
mov dword [ebp - 0x1098], edx
cmp dword [ebp - 0x1098], 1
jge 0x4c2206
cmp dword [ebp - 0x1c], 0
jge 0x4c21d0
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 0x4c21e6
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x109c], 0xfa
lea edx, [ebp - 0x109c]
push edx
lea eax, [ebp - 0x1298]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4c21aa
mov ecx, 1
test ecx, ecx
je 0x4c2240
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x129c], eax
mov eax, dword [ebp - 0x129c]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4c2232
jmp 0x4c2240
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x129c]
mov dword [ebp - 0x1c], edx
jmp 0x4c2206
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
mov ecx, 1
test ecx, ecx
je 0x4c2283
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x12a0], eax
mov eax, dword [ebp - 0x12a0]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4c2275
jmp 0x4c2283
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x12a0]
mov dword [ebp - 0x1c], edx
jmp 0x4c2249
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 6
mov dword [ebp - 0x12a4], 0xffffffff
mov dword [ebp - 0x12a8], 0
jmp 0x4c22b8
mov ecx, dword [ebp - 0x12a8]
add ecx, 1
mov dword [ebp - 0x12a8], ecx
cmp dword [ebp - 0x12a8], 2
jge 0x4c22ea
mov eax, dword [ebp - 0x12a8]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4c22df
mov edx, dword [ebp - 0x12a4]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4c22a9
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c230a
mov dword [ebp - 0x12ac], 0
jmp 0x4c2325
mov edx, dword [ebp - 0x12ac]
add edx, 1
mov dword [ebp - 0x12ac], edx
cmp dword [ebp - 0x12ac], 2
jge 0x4c2372
cmp dword [ebp - 0x1c], 0
jge 0x4c233c
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 0x4c2352
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x12b0], 0xfa
lea edx, [ebp - 0x12b0]
push edx
lea eax, [ebp - 0x14a8]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4c2316
mov dword [ebp - 0x14ac], 0
jmp 0x4c238d
mov ecx, dword [ebp - 0x14ac]
add ecx, 1
mov dword [ebp - 0x14ac], ecx
cmp dword [ebp - 0x14ac], 1
jge 0x4c23ce
cmp dword [ebp - 0x1c], 0
jge 0x4c23a4
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 0x4c23ba
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x16a8]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4c237e
mov dword [ebp - 0x16ac], 0
jmp 0x4c23e9
mov eax, dword [ebp - 0x16ac]
add eax, 1
mov dword [ebp - 0x16ac], eax
cmp dword [ebp - 0x16ac], 4
jge 0x4c2436
cmp dword [ebp - 0x1c], 0
jge 0x4c2400
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 0x4c2416
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x16b0], 0xfa
lea edx, [ebp - 0x16b0]
push edx
lea eax, [ebp - 0x18a8]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4c23da
mov dword [ebp - 4], 7
mov dword [ebp - 0x18ac], 0xffffffff
mov dword [ebp - 0x18b0], 0
jmp 0x4c2462
mov ecx, dword [ebp - 0x18b0]
add ecx, 1
mov dword [ebp - 0x18b0], ecx
cmp dword [ebp - 0x18b0], 1
jge 0x4c2494
mov eax, dword [ebp - 0x18b0]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4c2489
mov edx, dword [ebp - 0x18ac]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4c2453
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c24b4
mov edx, 1
test edx, edx
je 0x4c24ee
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x18b4], eax
mov eax, dword [ebp - 0x18b4]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4c24e0
jmp 0x4c24ee
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x18b4]
mov dword [ebp - 0x1c], edx
jmp 0x4c24b4
mov eax, dword [ebp - 0x1c]
add eax, 3
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18b8], 0
jmp 0x4c2512
mov ecx, dword [ebp - 0x18b8]
add ecx, 1
mov dword [ebp - 0x18b8], ecx
cmp dword [ebp - 0x18b8], 0
jge 0x4c2529
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x18b8]
mov dword [ebp - 0x1c], edx
jmp 0x4c2503
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4c253b
mov eax, dword [ebp - 0x1c]
imul eax, eax, 0xfffffffb
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x4c2553
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18bc], 0
jmp 0x4c256e
mov edx, dword [ebp - 0x18bc]
add edx, 1
mov dword [ebp - 0x18bc], edx
cmp dword [ebp - 0x18bc], 1
jge 0x4c25bb
mov eax, dword [ebp - 0x18bc]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4c259d
mov eax, dword [ebp - 0x18bc]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4c25ad
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x18bc]
mov dword [ebp - 0x1c], edx
jmp 0x4c25b9
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x18bc]
mov dword [ebp - 0x1c], eax
jmp 0x4c255f
mov dword [ebp - 0x18c0], 0
jmp 0x4c25d6
mov ecx, dword [ebp - 0x18c0]
add ecx, 1
mov dword [ebp - 0x18c0], ecx
cmp dword [ebp - 0x18c0], 4
jge 0x4c25ed
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x18c0]
mov dword [ebp - 0x1c], edx
jmp 0x4c25c7
cmp dword [ebp - 0x1c], 0
jge 0x4c25fb
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 0x4c2613
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18c4], 0
jmp 0x4c262e
mov edx, dword [ebp - 0x18c4]
add edx, 1
mov dword [ebp - 0x18c4], edx
cmp dword [ebp - 0x18c4], 0
jge 0x4c267b
cmp dword [ebp - 0x1c], 0
jge 0x4c2645
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 0x4c265b
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18c8], 0xfa
lea edx, [ebp - 0x18c8]
push edx
lea eax, [ebp - 0x1ac0]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4c261f
mov dword [ebp - 4], 8
mov dword [ebp - 0x1ac4], 0xffffffff
mov dword [ebp - 0x1ac8], 0
jmp 0x4c26a7
mov ecx, dword [ebp - 0x1ac8]
add ecx, 1
mov dword [ebp - 0x1ac8], ecx
cmp dword [ebp - 0x1ac8], 0
jge 0x4c26d9
mov eax, dword [ebp - 0x1ac8]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4c26ce
mov edx, dword [ebp - 0x1ac4]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4c2698
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c26f9
mov edx, 1
test edx, edx
je 0x4c2733
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x1acc], eax
mov eax, dword [ebp - 0x1acc]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4c2725
jmp 0x4c2733
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x1acc]
mov dword [ebp - 0x1c], edx
jmp 0x4c26f9
mov eax, dword [ebp - 0x1c]
add eax, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1ad0], 0
jmp 0x4c2757
mov ecx, dword [ebp - 0x1ad0]
add ecx, 1
mov dword [ebp - 0x1ad0], ecx
cmp dword [ebp - 0x1ad0], 0
jge 0x4c276e
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x1ad0]
mov dword [ebp - 0x1c], edx
jmp 0x4c2748
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4c2780
mov eax, dword [ebp - 0x1c]
imul eax, eax, 0xfffffffb
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x4c2798
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1ad4], 0
jmp 0x4c27b3
mov edx, dword [ebp - 0x1ad4]
add edx, 1
mov dword [ebp - 0x1ad4], edx
cmp dword [ebp - 0x1ad4], 0
jge 0x4c2800
mov eax, dword [ebp - 0x1ad4]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4c27e2
mov eax, dword [ebp - 0x1ad4]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4c27f2
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x1ad4]
mov dword [ebp - 0x1c], edx
jmp 0x4c27fe
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x1ad4]
mov dword [ebp - 0x1c], eax
jmp 0x4c27a4
mov dword [ebp - 0x1ad8], 0
jmp 0x4c281b
mov ecx, dword [ebp - 0x1ad8]
add ecx, 1
mov dword [ebp - 0x1ad8], ecx
cmp dword [ebp - 0x1ad8], 2
jge 0x4c285c
cmp dword [ebp - 0x1c], 0
jge 0x4c2832
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 0x4c2848
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1cd0]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4c280c
mov dword [ebp - 0x1cd4], 0
jmp 0x4c2877
mov eax, dword [ebp - 0x1cd4]
add eax, 1
mov dword [ebp - 0x1cd4], eax
cmp dword [ebp - 0x1cd4], 3
jge 0x4c28c4
cmp dword [ebp - 0x1c], 0
jge 0x4c288e
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 0x4c28a4
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x1cd8], 0xfa
lea edx, [ebp - 0x1cd8]
push edx
lea eax, [ebp - 0x1ed0]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4c2868
mov dword [ebp - 4], 9
mov dword [ebp - 0x1ed4], 0xffffffff
mov dword [ebp - 0x1ed8], 0
jmp 0x4c28f0
mov ecx, dword [ebp - 0x1ed8]
add ecx, 1
mov dword [ebp - 0x1ed8], ecx
cmp dword [ebp - 0x1ed8], 2
jge 0x4c2922
mov eax, dword [ebp - 0x1ed8]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4c2917
mov edx, dword [ebp - 0x1ed4]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4c28e1
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c2942
mov dword [ebp - 0x1edc], 0
jmp 0x4c295d
mov edx, dword [ebp - 0x1edc]
add edx, 1
mov dword [ebp - 0x1edc], edx
cmp dword [ebp - 0x1edc], 0
jge 0x4c2974
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x1edc]
mov dword [ebp - 0x1c], eax
jmp 0x4c294e
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4c2986
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 0x4c299e
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1ee0], 0
jmp 0x4c29b9
mov edx, dword [ebp - 0x1ee0]
add edx, 1
mov dword [ebp - 0x1ee0], edx
cmp dword [ebp - 0x1ee0], 3
jge 0x4c2a06
mov eax, dword [ebp - 0x1ee0]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4c29e8
mov eax, dword [ebp - 0x1ee0]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4c29f8
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x1ee0]
mov dword [ebp - 0x1c], edx
jmp 0x4c2a04
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x1ee0]
mov dword [ebp - 0x1c], eax
jmp 0x4c29aa
mov dword [ebp - 0x1ee4], 0
jmp 0x4c2a21
mov ecx, dword [ebp - 0x1ee4]
add ecx, 1
mov dword [ebp - 0x1ee4], ecx
cmp dword [ebp - 0x1ee4], 4
jge 0x4c2a38
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x1ee4]
mov dword [ebp - 0x1c], edx
jmp 0x4c2a12
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4c2a4a
mov eax, dword [ebp - 0x1c]
imul eax, eax, 0xfffffffb
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
cdq
mov ecx, 7
idiv ecx
test edx, edx
je 0x4c2a62