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

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x512f70
push 0x40b390
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, 0x34d4
call fcn.004149d0
mov eax, dword [0x517138]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x48], 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 0x4ab637
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0x40
jge 0x4ab660
mov eax, dword [ebp - 0x24]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4ab655
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 0x4ab62e
mov dword [ebp - 4], 0xfffffffe
jmp 0x4ab680
mov dword [ebp - 0x28], 0
jmp 0x4ab692
mov edx, dword [ebp - 0x28]
add edx, 1
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x28], 0x1f
jge 0x4ab6a3
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x28]
mov dword [ebp - 0x1c], eax
jmp 0x4ab689
cmp dword [ebp - 0x1c], 0
jge 0x4ab6b1
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 0x4ab6c9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 1
mov dword [ebp - 0x2c], 0xffffffff
mov dword [ebp - 0x30], 0
jmp 0x4ab6e9
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x30], 0x1b
jge 0x4ab712
mov eax, dword [ebp - 0x30]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4ab707
mov edx, dword [ebp - 0x2c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4ab6e0
mov dword [ebp - 4], 0xfffffffe
jmp 0x4ab732
mov dword [ebp - 0x34], 0
jmp 0x4ab744
mov edx, dword [ebp - 0x34]
add edx, 1
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x34], 0x1f
jge 0x4ab782
mov eax, dword [ebp - 0x34]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4ab76a
mov eax, dword [ebp - 0x34]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4ab777
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x34]
mov dword [ebp - 0x1c], edx
jmp 0x4ab780
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x34]
mov dword [ebp - 0x1c], eax
jmp 0x4ab73b
mov dword [ebp - 0x38], 0
jmp 0x4ab794
mov ecx, dword [ebp - 0x38]
add ecx, 1
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x38], 0x10
jge 0x4ab7a5
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x38]
mov dword [ebp - 0x1c], edx
jmp 0x4ab78b
cmp dword [ebp - 0x1c], 0
jge 0x4ab7b3
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 0x4ab7cb
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x4ab7fc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x3c]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4ab7f1
jmp 0x4ab7fc
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], edx
jmp 0x4ab7cb
mov eax, dword [ebp - 0x1c]
add eax, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x40], 0
jmp 0x4ab817
mov ecx, dword [ebp - 0x40]
add ecx, 1
mov dword [ebp - 0x40], ecx
cmp dword [ebp - 0x40], 1
jge 0x4ab855
mov eax, dword [ebp - 0x40]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4ab83d
mov eax, dword [ebp - 0x40]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4ab84a
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x40]
mov dword [ebp - 0x1c], edx
jmp 0x4ab853
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x40]
mov dword [ebp - 0x1c], eax
jmp 0x4ab80e
mov dword [ebp - 0x44], 0
jmp 0x4ab867
mov ecx, dword [ebp - 0x44]
add ecx, 1
mov dword [ebp - 0x44], ecx
cmp dword [ebp - 0x44], 3
jge 0x4ab8a5
cmp dword [ebp - 0x1c], 0
jge 0x4ab87b
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 0x4ab891
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x240]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4ab85e
mov dword [ebp - 4], 2
mov dword [ebp - 0x244], 0xffffffff
mov dword [ebp - 0x248], 0
jmp 0x4ab8d1
mov eax, dword [ebp - 0x248]
add eax, 1
mov dword [ebp - 0x248], eax
cmp dword [ebp - 0x248], 8
jge 0x4ab903
mov eax, dword [ebp - 0x248]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4ab8f8
mov edx, dword [ebp - 0x244]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4ab8c2
mov dword [ebp - 4], 0xfffffffe
jmp 0x4ab923
mov dword [ebp - 0x24c], 0
jmp 0x4ab93e
mov edx, dword [ebp - 0x24c]
add edx, 1
mov dword [ebp - 0x24c], edx
cmp dword [ebp - 0x24c], 4
jge 0x4ab98b
mov eax, dword [ebp - 0x24c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4ab96d
mov eax, dword [ebp - 0x24c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4ab97d
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x24c]
mov dword [ebp - 0x1c], edx
jmp 0x4ab989
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x24c]
mov dword [ebp - 0x1c], eax
jmp 0x4ab92f
mov dword [ebp - 0x250], 0
jmp 0x4ab9a6
mov ecx, dword [ebp - 0x250]
add ecx, 1
mov dword [ebp - 0x250], ecx
cmp dword [ebp - 0x250], 8
jge 0x4ab9e7
cmp dword [ebp - 0x1c], 0
jge 0x4ab9bd
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 0x4ab9d3
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x448]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4ab997
mov dword [ebp - 0x44c], 0
jmp 0x4aba02
mov eax, dword [ebp - 0x44c]
add eax, 1
mov dword [ebp - 0x44c], eax
cmp dword [ebp - 0x44c], 4
jge 0x4aba4f
mov eax, dword [ebp - 0x44c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4aba31
mov eax, dword [ebp - 0x44c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4aba41
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x44c]
mov dword [ebp - 0x1c], edx
jmp 0x4aba4d
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x44c]
mov dword [ebp - 0x1c], eax
jmp 0x4ab9f3
mov dword [ebp - 0x450], 0
jmp 0x4aba6a
mov ecx, dword [ebp - 0x450]
add ecx, 1
mov dword [ebp - 0x450], ecx
cmp dword [ebp - 0x450], 2
jge 0x4abab7
cmp dword [ebp - 0x1c], 0
jge 0x4aba81
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 0x4aba97
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x454], 0xfa
lea edx, [ebp - 0x454]
push edx
lea eax, [ebp - 0x650]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4aba5b
mov dword [ebp - 0x654], 0
jmp 0x4abad2
mov ecx, dword [ebp - 0x654]
add ecx, 1
mov dword [ebp - 0x654], ecx
cmp dword [ebp - 0x654], 4
jge 0x4abb1f
cmp dword [ebp - 0x1c], 0
jge 0x4abae9
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 0x4abaff
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x658], 0xfa
lea edx, [ebp - 0x658]
push edx
lea eax, [ebp - 0x850]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4abac3
mov dword [ebp - 0x854], 0
jmp 0x4abb3a
mov ecx, dword [ebp - 0x854]
add ecx, 1
mov dword [ebp - 0x854], ecx
cmp dword [ebp - 0x854], 0
jge 0x4abb87
cmp dword [ebp - 0x1c], 0
jge 0x4abb51
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 0x4abb67
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x858], 0xfa
lea edx, [ebp - 0x858]
push edx
lea eax, [ebp - 0xa50]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4abb2b
mov dword [ebp - 0xa54], 0
jmp 0x4abba2
mov ecx, dword [ebp - 0xa54]
add ecx, 1
mov dword [ebp - 0xa54], ecx
cmp dword [ebp - 0xa54], 3
jge 0x4abbb9
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0xa54]
mov dword [ebp - 0x1c], edx
jmp 0x4abb93
cmp dword [ebp - 0x1c], 0
jge 0x4abbc7
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 0x4abbdf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xa58], 0
jmp 0x4abbfa
mov edx, dword [ebp - 0xa58]
add edx, 1
mov dword [ebp - 0xa58], edx
cmp dword [ebp - 0xa58], 1
jge 0x4abc47
cmp dword [ebp - 0x1c], 0
jge 0x4abc11
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 0x4abc27
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xa5c], 0xfa
lea edx, [ebp - 0xa5c]
push edx
lea eax, [ebp - 0xc58]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4abbeb
mov dword [ebp - 4], 3
mov dword [ebp - 0xc5c], 0xffffffff
mov dword [ebp - 0xc60], 0
jmp 0x4abc73
mov ecx, dword [ebp - 0xc60]
add ecx, 1
mov dword [ebp - 0xc60], ecx
cmp dword [ebp - 0xc60], 6
jge 0x4abca5
mov eax, dword [ebp - 0xc60]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4abc9a
mov edx, dword [ebp - 0xc5c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4abc64
mov dword [ebp - 4], 0xfffffffe
jmp 0x4abcc5
mov dword [ebp - 0xc64], 0
jmp 0x4abce0
mov edx, dword [ebp - 0xc64]
add edx, 1
mov dword [ebp - 0xc64], edx
cmp dword [ebp - 0xc64], 1
jge 0x4abd21
cmp dword [ebp - 0x1c], 0
jge 0x4abcf7
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 0x4abd0d
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0xe60]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4abcd1
mov dword [ebp - 0xe64], 0
jmp 0x4abd3c
mov eax, dword [ebp - 0xe64]
add eax, 1
mov dword [ebp - 0xe64], eax
cmp dword [ebp - 0xe64], 0
jge 0x4abd7d
cmp dword [ebp - 0x1c], 0
jge 0x4abd53
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 0x4abd69
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1060]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4abd2d
mov dword [ebp - 0x1064], 0
jmp 0x4abd98
mov eax, dword [ebp - 0x1064]
add eax, 1
mov dword [ebp - 0x1064], eax
cmp dword [ebp - 0x1064], 1
jge 0x4abdaf
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0x1064]
mov dword [ebp - 0x1c], ecx
jmp 0x4abd89
cmp dword [ebp - 0x1c], 0
jge 0x4abdbd
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 0x4abdd5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 4
mov dword [ebp - 0x1068], 0xffffffff
mov dword [ebp - 0x106c], 0
jmp 0x4abe01
mov edx, dword [ebp - 0x106c]
add edx, 1
mov dword [ebp - 0x106c], edx
cmp dword [ebp - 0x106c], 6
jge 0x4abe33
mov eax, dword [ebp - 0x106c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4abe28
mov edx, dword [ebp - 0x1068]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4abdf2
mov dword [ebp - 4], 0xfffffffe
jmp 0x4abe53
mov dword [ebp - 0x1070], 0
jmp 0x4abe6e
mov edx, dword [ebp - 0x1070]
add edx, 1
mov dword [ebp - 0x1070], edx
cmp dword [ebp - 0x1070], 5
jge 0x4abebb
mov eax, dword [ebp - 0x1070]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4abe9d
mov eax, dword [ebp - 0x1070]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4abead
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x1070]
mov dword [ebp - 0x1c], edx
jmp 0x4abeb9
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x1070]
mov dword [ebp - 0x1c], eax
jmp 0x4abe5f
mov dword [ebp - 0x1074], 0
jmp 0x4abed6
mov ecx, dword [ebp - 0x1074]
add ecx, 1
mov dword [ebp - 0x1074], ecx
cmp dword [ebp - 0x1074], 4
jge 0x4abeed
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x1074]
mov dword [ebp - 0x1c], edx
jmp 0x4abec7
cmp dword [ebp - 0x1c], 0
jge 0x4abefb
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 0x4abf13
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1078], 0
jmp 0x4abf2e
mov edx, dword [ebp - 0x1078]
add edx, 1
mov dword [ebp - 0x1078], edx
cmp dword [ebp - 0x1078], 8
jge 0x4abf45
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x1078]
mov dword [ebp - 0x1c], eax
jmp 0x4abf1f
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4abf57
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 0x4abf6f
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x107c], 0
jmp 0x4abf8a
mov edx, dword [ebp - 0x107c]
add edx, 1
mov dword [ebp - 0x107c], edx
cmp dword [ebp - 0x107c], 5
jge 0x4abfd7
cmp dword [ebp - 0x1c], 0
jge 0x4abfa1
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 0x4abfb7
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x1080], 0xfa
lea edx, [ebp - 0x1080]
push edx
lea eax, [ebp - 0x1278]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4abf7b
mov ecx, 1
test ecx, ecx
je 0x4ac011
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x127c], eax
mov eax, dword [ebp - 0x127c]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4ac003
jmp 0x4ac011
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x127c]
mov dword [ebp - 0x1c], edx
jmp 0x4abfd7
mov eax, dword [ebp - 0x1c]
add eax, 5
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 5
mov dword [ebp - 0x1280], 0xffffffff
mov dword [ebp - 0x1284], 0
jmp 0x4ac046
mov ecx, dword [ebp - 0x1284]
add ecx, 1
mov dword [ebp - 0x1284], ecx
cmp dword [ebp - 0x1284], 8
jge 0x4ac078
mov eax, dword [ebp - 0x1284]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4ac06d
mov edx, dword [ebp - 0x1280]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4ac037
mov dword [ebp - 4], 0xfffffffe
jmp 0x4ac098
mov dword [ebp - 0x1288], 0
jmp 0x4ac0b3
mov edx, dword [ebp - 0x1288]
add edx, 1
mov dword [ebp - 0x1288], edx
cmp dword [ebp - 0x1288], 0
jge 0x4ac100
mov eax, dword [ebp - 0x1288]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4ac0e2
mov eax, dword [ebp - 0x1288]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4ac0f2
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x1288]
mov dword [ebp - 0x1c], edx
jmp 0x4ac0fe
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x1288]
mov dword [ebp - 0x1c], eax
jmp 0x4ac0a4
mov dword [ebp - 0x128c], 0
jmp 0x4ac11b
mov ecx, dword [ebp - 0x128c]
add ecx, 1
mov dword [ebp - 0x128c], ecx
cmp dword [ebp - 0x128c], 0
jge 0x4ac168
cmp dword [ebp - 0x1c], 0
jge 0x4ac132
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 0x4ac148
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x1290], 0xfa
lea edx, [ebp - 0x1290]
push edx
lea eax, [ebp - 0x1488]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4ac10c
mov dword [ebp - 0x148c], 0
jmp 0x4ac183
mov ecx, dword [ebp - 0x148c]
add ecx, 1
mov dword [ebp - 0x148c], ecx
cmp dword [ebp - 0x148c], 1
jge 0x4ac1d0
cmp dword [ebp - 0x1c], 0
jge 0x4ac19a
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 0x4ac1b0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x1490], 0xfa
lea edx, [ebp - 0x1490]
push edx
lea eax, [ebp - 0x1688]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4ac174
mov dword [ebp - 0x168c], 0
jmp 0x4ac1eb
mov ecx, dword [ebp - 0x168c]
add ecx, 1
mov dword [ebp - 0x168c], ecx
cmp dword [ebp - 0x168c], 8
jge 0x4ac202
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x168c]
mov dword [ebp - 0x1c], edx
jmp 0x4ac1dc
cmp dword [ebp - 0x1c], 0
jge 0x4ac210
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 0x4ac228
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 6
mov dword [ebp - 0x1690], 0xffffffff
mov dword [ebp - 0x1694], 0
jmp 0x4ac254
mov edx, dword [ebp - 0x1694]
add edx, 1
mov dword [ebp - 0x1694], edx
cmp dword [ebp - 0x1694], 6
jge 0x4ac286
mov eax, dword [ebp - 0x1694]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4ac27b
mov edx, dword [ebp - 0x1690]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4ac245
mov dword [ebp - 4], 0xfffffffe
jmp 0x4ac2a6
mov dword [ebp - 0x1698], 0
jmp 0x4ac2c1
mov edx, dword [ebp - 0x1698]
add edx, 1
mov dword [ebp - 0x1698], edx
cmp dword [ebp - 0x1698], 1
jge 0x4ac2d8
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x1698]
mov dword [ebp - 0x1c], eax
jmp 0x4ac2b2
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4ac2ea
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 0x4ac302
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x169c], 0
jmp 0x4ac31d
mov edx, dword [ebp - 0x169c]
add edx, 1
mov dword [ebp - 0x169c], edx
cmp dword [ebp - 0x169c], 4
jge 0x4ac36a
mov eax, dword [ebp - 0x169c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4ac34c
mov eax, dword [ebp - 0x169c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4ac35c
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x169c]
mov dword [ebp - 0x1c], edx
jmp 0x4ac368
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x169c]
mov dword [ebp - 0x1c], eax
jmp 0x4ac30e
mov ecx, 1
test ecx, ecx
je 0x4ac3a4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x16a0], eax
mov eax, dword [ebp - 0x16a0]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4ac396
jmp 0x4ac3a4
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x16a0]
mov dword [ebp - 0x1c], edx
jmp 0x4ac36a
mov eax, dword [ebp - 0x1c]
add eax, 6
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x16a4], 0
jmp 0x4ac3c8
mov ecx, dword [ebp - 0x16a4]
add ecx, 1
mov dword [ebp - 0x16a4], ecx
cmp dword [ebp - 0x16a4], 1
jge 0x4ac3df
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x16a4]
mov dword [ebp - 0x1c], edx
jmp 0x4ac3b9
cmp dword [ebp - 0x1c], 0
jge 0x4ac3ed
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 0x4ac405
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x16a8], 0
jmp 0x4ac420
mov edx, dword [ebp - 0x16a8]
add edx, 1
mov dword [ebp - 0x16a8], edx
cmp dword [ebp - 0x16a8], 1
jge 0x4ac461
cmp dword [ebp - 0x1c], 0
jge 0x4ac437
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 0x4ac44d
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x18a0]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4ac411
mov dword [ebp - 0x18a4], 0
jmp 0x4ac47c
mov eax, dword [ebp - 0x18a4]
add eax, 1
mov dword [ebp - 0x18a4], eax
cmp dword [ebp - 0x18a4], 2
jge 0x4ac493
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0x18a4]
mov dword [ebp - 0x1c], ecx
jmp 0x4ac46d
cmp dword [ebp - 0x1c], 0
jge 0x4ac4a1
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 0x4ac4b9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18a8], 0
jmp 0x4ac4d4
mov edx, dword [ebp - 0x18a8]
add edx, 1
mov dword [ebp - 0x18a8], edx
cmp dword [ebp - 0x18a8], 3
jge 0x4ac521
cmp dword [ebp - 0x1c], 0
jge 0x4ac4eb
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 0x4ac501
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18ac], 0xfa
lea edx, [ebp - 0x18ac]
push edx
lea eax, [ebp - 0x1aa8]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4ac4c5
mov dword [ebp - 4], 7
mov dword [ebp - 0x1aac], 0xffffffff
mov dword [ebp - 0x1ab0], 0
jmp 0x4ac54d
mov ecx, dword [ebp - 0x1ab0]
add ecx, 1
mov dword [ebp - 0x1ab0], ecx
cmp dword [ebp - 0x1ab0], 0
jge 0x4ac57f
mov eax, dword [ebp - 0x1ab0]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4ac574
mov edx, dword [ebp - 0x1aac]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4ac53e
mov dword [ebp - 4], 0xfffffffe
jmp 0x4ac59f
mov dword [ebp - 0x1ab4], 0
jmp 0x4ac5ba
mov edx, dword [ebp - 0x1ab4]
add edx, 1
mov dword [ebp - 0x1ab4], edx
cmp dword [ebp - 0x1ab4], 3
jge 0x4ac5fb
cmp dword [ebp - 0x1c], 0
jge 0x4ac5d1
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 0x4ac5e7
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1cb0]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4ac5ab
mov dword [ebp - 0x1cb4], 0
jmp 0x4ac616
mov eax, dword [ebp - 0x1cb4]
add eax, 1
mov dword [ebp - 0x1cb4], eax
cmp dword [ebp - 0x1cb4], 1
jge 0x4ac62d
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x1cb4]
mov dword [ebp - 0x1c], ecx
jmp 0x4ac607
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4ac63f
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 0x4ac657
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1cb8], 0
jmp 0x4ac672
mov edx, dword [ebp - 0x1cb8]
add edx, 1
mov dword [ebp - 0x1cb8], edx
cmp dword [ebp - 0x1cb8], 1
jge 0x4ac689
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x1cb8]
mov dword [ebp - 0x1c], eax
jmp 0x4ac663
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4ac69b
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 0x4ac6b3
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1cbc], 0
jmp 0x4ac6ce
mov edx, dword [ebp - 0x1cbc]
add edx, 1
mov dword [ebp - 0x1cbc], edx
cmp dword [ebp - 0x1cbc], 1
jge 0x4ac71b
cmp dword [ebp - 0x1c], 0
jge 0x4ac6e5
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 0x4ac6fb
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x1cc0], 0xfa
lea edx, [ebp - 0x1cc0]
push edx
lea eax, [ebp - 0x1eb8]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4ac6bf
mov dword [ebp - 4], 8
mov dword [ebp - 0x1ebc], 0xffffffff
mov dword [ebp - 0x1ec0], 0
jmp 0x4ac747
mov ecx, dword [ebp - 0x1ec0]
add ecx, 1
mov dword [ebp - 0x1ec0], ecx
cmp dword [ebp - 0x1ec0], 1
jge 0x4ac779
mov eax, dword [ebp - 0x1ec0]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4ac76e
mov edx, dword [ebp - 0x1ebc]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4ac738
mov dword [ebp - 4], 0xfffffffe
jmp 0x4ac799
mov dword [ebp - 0x1ec4], 0
jmp 0x4ac7b4
mov edx, dword [ebp - 0x1ec4]
add edx, 1
mov dword [ebp - 0x1ec4], edx
cmp dword [ebp - 0x1ec4], 0
jge 0x4ac7f5
cmp dword [ebp - 0x1c], 0
jge 0x4ac7cb
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 0x4ac7e1
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x20c0]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4ac7a5
mov dword [ebp - 0x20c4], 0
jmp 0x4ac810
mov eax, dword [ebp - 0x20c4]
add eax, 1
mov dword [ebp - 0x20c4], eax
cmp dword [ebp - 0x20c4], 2
jge 0x4ac827
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0x20c4]
mov dword [ebp - 0x1c], ecx
jmp 0x4ac801
cmp dword [ebp - 0x1c], 0
jge 0x4ac835
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 0x4ac84d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x20c8], 0
jmp 0x4ac868