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

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x514b58
push 0x40b390
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, 0x1d10
call fcn.004149d0
mov eax, dword [0x517138]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x2c], 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 eax, 1
test eax, eax
je 0x500508
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x20]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x5004fd
jmp 0x500508
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], edx
jmp 0x5004d7
mov eax, dword [ebp - 0x1c]
add eax, 0x30
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], 0
jmp 0x500523
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x24], 8
jge 0x500567
cmp dword [ebp - 0x1c], 0
jge 0x500537
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 0x50054d
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x28], 0xfa
lea edx, [ebp - 0x28]
push edx
lea eax, [ebp - 0x228]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x50051a
mov dword [ebp - 0x22c], 0
jmp 0x500582
mov ecx, dword [ebp - 0x22c]
add ecx, 1
mov dword [ebp - 0x22c], ecx
cmp dword [ebp - 0x22c], 0x19
jge 0x500599
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x22c]
mov dword [ebp - 0x1c], edx
jmp 0x500573
cmp dword [ebp - 0x1c], 0
jge 0x5005a7
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 0x5005bf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x230], 0
jmp 0x5005da
mov edx, dword [ebp - 0x230]
add edx, 1
mov dword [ebp - 0x230], edx
cmp dword [ebp - 0x230], 9
jge 0x50061b
cmp dword [ebp - 0x1c], 0
jge 0x5005f1
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 0x500607
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x428]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x5005cb
mov eax, 1
test eax, eax
je 0x500655
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x42c], eax
mov eax, dword [ebp - 0x42c]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x500647
jmp 0x500655
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x42c]
mov dword [ebp - 0x1c], edx
jmp 0x50061b
mov eax, dword [ebp - 0x1c]
add eax, 0x1d
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x430], 0xffffffff
mov dword [ebp - 0x434], 0
jmp 0x50068a
mov ecx, dword [ebp - 0x434]
add ecx, 1
mov dword [ebp - 0x434], ecx
cmp dword [ebp - 0x434], 0x16
jge 0x5006bc
mov eax, dword [ebp - 0x434]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x5006b1
mov edx, dword [ebp - 0x430]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x50067b
mov dword [ebp - 4], 0xfffffffe
jmp 0x5006dc
mov edx, 1
test edx, edx
je 0x500716
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x438], eax
mov eax, dword [ebp - 0x438]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x500708
jmp 0x500716
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x438]
mov dword [ebp - 0x1c], edx
jmp 0x5006dc
mov eax, dword [ebp - 0x1c]
add eax, 9
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 1
mov dword [ebp - 0x43c], 0xffffffff
mov dword [ebp - 0x440], 0
jmp 0x50074b
mov ecx, dword [ebp - 0x440]
add ecx, 1
mov dword [ebp - 0x440], ecx
cmp dword [ebp - 0x440], 8
jge 0x50077d
mov eax, dword [ebp - 0x440]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x500772
mov edx, dword [ebp - 0x43c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x50073c
mov dword [ebp - 4], 0xfffffffe
jmp 0x50079d
mov dword [ebp - 0x444], 0
jmp 0x5007b8
mov edx, dword [ebp - 0x444]
add edx, 1
mov dword [ebp - 0x444], edx
cmp dword [ebp - 0x444], 0x12
jge 0x500805
cmp dword [ebp - 0x1c], 0
jge 0x5007cf
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 0x5007e5
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x448], 0xfa
lea edx, [ebp - 0x448]
push edx
lea eax, [ebp - 0x640]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x5007a9
mov ecx, 1
test ecx, ecx
je 0x50083f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x644], eax
mov eax, dword [ebp - 0x644]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x500831
jmp 0x50083f
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x644]
mov dword [ebp - 0x1c], edx
jmp 0x500805
mov eax, dword [ebp - 0x1c]
add eax, 0x1a
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x648], 0
jmp 0x500863
mov ecx, dword [ebp - 0x648]
add ecx, 1
mov dword [ebp - 0x648], ecx
cmp dword [ebp - 0x648], 1
jge 0x50087a
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x648]
mov dword [ebp - 0x1c], edx
jmp 0x500854
cmp dword [ebp - 0x1c], 0
jge 0x500888
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 0x5008a0
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x64c], 0
jmp 0x5008bb
mov edx, dword [ebp - 0x64c]
add edx, 1
mov dword [ebp - 0x64c], edx
cmp dword [ebp - 0x64c], 0x1e
jge 0x5008d2
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x64c]
mov dword [ebp - 0x1c], eax
jmp 0x5008ac
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x5008e4
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 0x5008fc
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 2
mov dword [ebp - 0x650], 0xffffffff
mov dword [ebp - 0x654], 0
jmp 0x500928
mov edx, dword [ebp - 0x654]
add edx, 1
mov dword [ebp - 0x654], edx
cmp dword [ebp - 0x654], 0xe
jge 0x50095a
mov eax, dword [ebp - 0x654]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x50094f
mov edx, dword [ebp - 0x650]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x500919
mov dword [ebp - 4], 0xfffffffe
jmp 0x50097a
mov edx, 1
test edx, edx
je 0x5009b4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x658], eax
mov eax, dword [ebp - 0x658]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x5009a6
jmp 0x5009b4
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x658]
mov dword [ebp - 0x1c], edx
jmp 0x50097a
mov eax, dword [ebp - 0x1c]
add eax, 6
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x65c], 0
jmp 0x5009d8
mov ecx, dword [ebp - 0x65c]
add ecx, 1
mov dword [ebp - 0x65c], ecx
cmp dword [ebp - 0x65c], 0
jge 0x500a25
mov eax, dword [ebp - 0x65c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x500a07
mov eax, dword [ebp - 0x65c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x500a17
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x65c]
mov dword [ebp - 0x1c], edx
jmp 0x500a23
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x65c]
mov dword [ebp - 0x1c], eax
jmp 0x5009c9
mov dword [ebp - 0x660], 0
jmp 0x500a40
mov ecx, dword [ebp - 0x660]
add ecx, 1
mov dword [ebp - 0x660], ecx
cmp dword [ebp - 0x660], 2
jge 0x500a8d
mov eax, dword [ebp - 0x660]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x500a6f
mov eax, dword [ebp - 0x660]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x500a7f
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x660]
mov dword [ebp - 0x1c], edx
jmp 0x500a8b
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x660]
mov dword [ebp - 0x1c], eax
jmp 0x500a31
mov ecx, 1
test ecx, ecx
je 0x500ac7
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 0x500ab9
jmp 0x500ac7
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x664]
mov dword [ebp - 0x1c], edx
jmp 0x500a8d
mov eax, dword [ebp - 0x1c]
add eax, 5
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x668], 0
jmp 0x500aeb
mov ecx, dword [ebp - 0x668]
add ecx, 1
mov dword [ebp - 0x668], ecx
cmp dword [ebp - 0x668], 8
jge 0x500b2c
cmp dword [ebp - 0x1c], 0
jge 0x500b02
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 0x500b18
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x860]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x500adc
mov dword [ebp - 0x864], 0
jmp 0x500b47
mov eax, dword [ebp - 0x864]
add eax, 1
mov dword [ebp - 0x864], eax
cmp dword [ebp - 0x864], 0xd
jge 0x500b94
cmp dword [ebp - 0x1c], 0
jge 0x500b5e
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 0x500b74
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x868], 0xfa
lea edx, [ebp - 0x868]
push edx
lea eax, [ebp - 0xa60]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x500b38
mov dword [ebp - 0xa64], 0
jmp 0x500baf
mov ecx, dword [ebp - 0xa64]
add ecx, 1
mov dword [ebp - 0xa64], ecx
cmp dword [ebp - 0xa64], 0xf
jge 0x500bc6
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xa64]
mov dword [ebp - 0x1c], edx
jmp 0x500ba0
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x500bd8
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 0x500bf0
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 3
mov dword [ebp - 0xa68], 0xffffffff
mov dword [ebp - 0xa6c], 0
jmp 0x500c1c
mov edx, dword [ebp - 0xa6c]
add edx, 1
mov dword [ebp - 0xa6c], edx
cmp dword [ebp - 0xa6c], 6
jge 0x500c4e
mov eax, dword [ebp - 0xa6c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x500c43
mov edx, dword [ebp - 0xa68]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x500c0d
mov dword [ebp - 4], 0xfffffffe
jmp 0x500c6e
mov dword [ebp - 0xa70], 0
jmp 0x500c89
mov edx, dword [ebp - 0xa70]
add edx, 1
mov dword [ebp - 0xa70], edx
cmp dword [ebp - 0xa70], 2
jge 0x500cd6
mov eax, dword [ebp - 0xa70]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x500cb8
mov eax, dword [ebp - 0xa70]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x500cc8
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xa70]
mov dword [ebp - 0x1c], edx
jmp 0x500cd4
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0xa70]
mov dword [ebp - 0x1c], eax
jmp 0x500c7a
mov dword [ebp - 0xa74], 0
jmp 0x500cf1
mov ecx, dword [ebp - 0xa74]
add ecx, 1
mov dword [ebp - 0xa74], ecx
cmp dword [ebp - 0xa74], 8
jge 0x500d3e
mov eax, dword [ebp - 0xa74]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x500d20
mov eax, dword [ebp - 0xa74]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x500d30
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xa74]
mov dword [ebp - 0x1c], edx
jmp 0x500d3c
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0xa74]
mov dword [ebp - 0x1c], eax
jmp 0x500ce2
mov dword [ebp - 0xa78], 0
jmp 0x500d59
mov ecx, dword [ebp - 0xa78]
add ecx, 1
mov dword [ebp - 0xa78], ecx
cmp dword [ebp - 0xa78], 4
jge 0x500da6
cmp dword [ebp - 0x1c], 0
jge 0x500d70
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 0x500d86
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xa7c], 0xfa
lea edx, [ebp - 0xa7c]
push edx
lea eax, [ebp - 0xc78]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x500d4a
mov dword [ebp - 4], 4
mov dword [ebp - 0xc7c], 0xffffffff
mov dword [ebp - 0xc80], 0
jmp 0x500dd2
mov ecx, dword [ebp - 0xc80]
add ecx, 1
mov dword [ebp - 0xc80], ecx
cmp dword [ebp - 0xc80], 6
jge 0x500e04
mov eax, dword [ebp - 0xc80]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x500df9
mov edx, dword [ebp - 0xc7c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x500dc3
mov dword [ebp - 4], 0xfffffffe
jmp 0x500e24
mov dword [ebp - 0xc84], 0
jmp 0x500e3f
mov edx, dword [ebp - 0xc84]
add edx, 1
mov dword [ebp - 0xc84], edx
cmp dword [ebp - 0xc84], 2
jge 0x500e8c
cmp dword [ebp - 0x1c], 0
jge 0x500e56
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 0x500e6c
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xc88], 0xfa
lea edx, [ebp - 0xc88]
push edx
lea eax, [ebp - 0xe80]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x500e30
mov ecx, 1
test ecx, ecx
je 0x500ec6
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xe84], eax
mov eax, dword [ebp - 0xe84]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x500eb8
jmp 0x500ec6
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0xe84]
mov dword [ebp - 0x1c], edx
jmp 0x500e8c
mov eax, dword [ebp - 0x1c]
add eax, 8
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 5
mov dword [ebp - 0xe88], 0xffffffff
mov dword [ebp - 0xe8c], 0
jmp 0x500efb
mov ecx, dword [ebp - 0xe8c]
add ecx, 1
mov dword [ebp - 0xe8c], ecx
cmp dword [ebp - 0xe8c], 5
jge 0x500f2d
mov eax, dword [ebp - 0xe8c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x500f22
mov edx, dword [ebp - 0xe88]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x500eec
mov dword [ebp - 4], 0xfffffffe
jmp 0x500f4d
mov dword [ebp - 4], 6
mov dword [ebp - 0xe90], 0xffffffff
mov dword [ebp - 0xe94], 0
jmp 0x500f79
mov edx, dword [ebp - 0xe94]
add edx, 1
mov dword [ebp - 0xe94], edx
cmp dword [ebp - 0xe94], 8
jge 0x500fab
mov eax, dword [ebp - 0xe94]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x500fa0
mov edx, dword [ebp - 0xe90]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x500f6a
mov dword [ebp - 4], 0xfffffffe
jmp 0x500fcb
mov dword [ebp - 4], 7
mov dword [ebp - 0xe98], 0xffffffff
mov dword [ebp - 0xe9c], 0
jmp 0x500ff7
mov edx, dword [ebp - 0xe9c]
add edx, 1
mov dword [ebp - 0xe9c], edx
cmp dword [ebp - 0xe9c], 8
jge 0x501029
mov eax, dword [ebp - 0xe9c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x50101e
mov edx, dword [ebp - 0xe98]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x500fe8
mov dword [ebp - 4], 0xfffffffe
jmp 0x501049
mov dword [ebp - 0xea0], 0
jmp 0x501064
mov edx, dword [ebp - 0xea0]
add edx, 1
mov dword [ebp - 0xea0], edx
cmp dword [ebp - 0xea0], 7
jge 0x50107b
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0xea0]
mov dword [ebp - 0x1c], eax
jmp 0x501055
cmp dword [ebp - 0x1c], 0
jge 0x501089
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 0x5010a1
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xea4], 0
jmp 0x5010bc
mov edx, dword [ebp - 0xea4]
add edx, 1
mov dword [ebp - 0xea4], edx
cmp dword [ebp - 0xea4], 1
jge 0x501109
cmp dword [ebp - 0x1c], 0
jge 0x5010d3
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 0x5010e9
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xea8], 0xfa
lea edx, [ebp - 0xea8]
push edx
lea eax, [ebp - 0x10a0]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x5010ad
mov dword [ebp - 0x10a4], 0
jmp 0x501124
mov ecx, dword [ebp - 0x10a4]
add ecx, 1
mov dword [ebp - 0x10a4], ecx
cmp dword [ebp - 0x10a4], 2
jge 0x50113b
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x10a4]
mov dword [ebp - 0x1c], edx
jmp 0x501115
cmp dword [ebp - 0x1c], 0
jge 0x501149
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 0x501161
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 8
mov dword [ebp - 0x10a8], 0xffffffff
mov dword [ebp - 0x10ac], 0
jmp 0x50118d
mov edx, dword [ebp - 0x10ac]
add edx, 1
mov dword [ebp - 0x10ac], edx
cmp dword [ebp - 0x10ac], 2
jge 0x5011bf
mov eax, dword [ebp - 0x10ac]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x5011b4
mov edx, dword [ebp - 0x10a8]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x50117e
mov dword [ebp - 4], 0xfffffffe
jmp 0x5011df
mov dword [ebp - 0x10b0], 0
jmp 0x5011fa
mov edx, dword [ebp - 0x10b0]
add edx, 1
mov dword [ebp - 0x10b0], edx
cmp dword [ebp - 0x10b0], 0
jge 0x501247
cmp dword [ebp - 0x1c], 0
jge 0x501211
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 0x501227
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x10b4], 0xfa
lea edx, [ebp - 0x10b4]
push edx
lea eax, [ebp - 0x12b0]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x5011eb
mov dword [ebp - 4], 9
mov dword [ebp - 0x12b4], 0xffffffff
mov dword [ebp - 0x12b8], 0
jmp 0x501273
mov ecx, dword [ebp - 0x12b8]
add ecx, 1
mov dword [ebp - 0x12b8], ecx
cmp dword [ebp - 0x12b8], 1
jge 0x5012a5
mov eax, dword [ebp - 0x12b8]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x50129a
mov edx, dword [ebp - 0x12b4]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x501264
mov dword [ebp - 4], 0xfffffffe
jmp 0x5012c5
mov dword [ebp - 4], 0xa
mov dword [ebp - 0x12bc], 0xffffffff
mov dword [ebp - 0x12c0], 0
jmp 0x5012f1
mov edx, dword [ebp - 0x12c0]
add edx, 1
mov dword [ebp - 0x12c0], edx
cmp dword [ebp - 0x12c0], 4
jge 0x501323
mov eax, dword [ebp - 0x12c0]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x501318
mov edx, dword [ebp - 0x12bc]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x5012e2
mov dword [ebp - 4], 0xfffffffe
jmp 0x501343
mov dword [ebp - 0x12c4], 0
jmp 0x50135e
mov edx, dword [ebp - 0x12c4]
add edx, 1
mov dword [ebp - 0x12c4], edx
cmp dword [ebp - 0x12c4], 1
jge 0x501375
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x12c4]
mov dword [ebp - 0x1c], eax
jmp 0x50134f
cmp dword [ebp - 0x1c], 0
jge 0x501383
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 0x50139b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xb
mov dword [ebp - 0x12c8], 0xffffffff
mov dword [ebp - 0x12cc], 0
jmp 0x5013c7
mov edx, dword [ebp - 0x12cc]
add edx, 1
mov dword [ebp - 0x12cc], edx
cmp dword [ebp - 0x12cc], 1
jge 0x5013f9
mov eax, dword [ebp - 0x12cc]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x5013ee
mov edx, dword [ebp - 0x12c8]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x5013b8
mov dword [ebp - 4], 0xfffffffe
jmp 0x501419
mov edx, 1
test edx, edx
je 0x501453
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x12d0], eax
mov eax, dword [ebp - 0x12d0]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x501445
jmp 0x501453
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x12d0]
mov dword [ebp - 0x1c], edx
jmp 0x501419
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x12d4], 0
jmp 0x501474
mov ecx, dword [ebp - 0x12d4]
add ecx, 1
mov dword [ebp - 0x12d4], ecx
cmp dword [ebp - 0x12d4], 2
jge 0x5014b5
cmp dword [ebp - 0x1c], 0
jge 0x50148b
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 0x5014a1
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x14d0]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x501465
mov dword [ebp - 0x14d4], 0
jmp 0x5014d0
mov eax, dword [ebp - 0x14d4]
add eax, 1
mov dword [ebp - 0x14d4], eax
cmp dword [ebp - 0x14d4], 2
jge 0x5014e7
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0x14d4]
mov dword [ebp - 0x1c], ecx
jmp 0x5014c1
cmp dword [ebp - 0x1c], 0
jge 0x5014f5
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 0x50150d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14d8], 0
jmp 0x501528
mov edx, dword [ebp - 0x14d8]
add edx, 1
mov dword [ebp - 0x14d8], edx
cmp dword [ebp - 0x14d8], 4
jge 0x50153f
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x14d8]
mov dword [ebp - 0x1c], eax
jmp 0x501519
cmp dword [ebp - 0x1c], 0
jge 0x50154d
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 0x501565
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14dc], 0
jmp 0x501580
mov edx, dword [ebp - 0x14dc]
add edx, 1
mov dword [ebp - 0x14dc], edx
cmp dword [ebp - 0x14dc], 4
jge 0x501597
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x14dc]
mov dword [ebp - 0x1c], eax
jmp 0x501571
cmp dword [ebp - 0x1c], 0
jge 0x5015a5
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 0x5015bd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x5015f7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x14e0], eax
mov eax, dword [ebp - 0x14e0]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x5015e9
jmp 0x5015f7
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x14e0]
mov dword [ebp - 0x1c], edx
jmp 0x5015bd
mov eax, dword [ebp - 0x1c]
add eax, 3
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14e4], 0
jmp 0x50161b
mov ecx, dword [ebp - 0x14e4]
add ecx, 1
mov dword [ebp - 0x14e4], ecx
cmp dword [ebp - 0x14e4], 0
jge 0x501632
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x14e4]
mov dword [ebp - 0x1c], edx
jmp 0x50160c
cmp dword [ebp - 0x1c], 0
jge 0x501640
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 0x501658
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14e8], 0
jmp 0x501673
mov edx, dword [ebp - 0x14e8]
add edx, 1
mov dword [ebp - 0x14e8], edx
cmp dword [ebp - 0x14e8], 0
jge 0x50168a
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x14e8]
mov dword [ebp - 0x1c], eax
jmp 0x501664
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x50169c
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 0x5016b4
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0xc
mov dword [ebp - 0x14ec], 0xffffffff
mov dword [ebp - 0x14f0], 0
jmp 0x5016e0
mov edx, dword [ebp - 0x14f0]
add edx, 1
mov dword [ebp - 0x14f0], edx
cmp dword [ebp - 0x14f0], 2
jge 0x501712
mov eax, dword [ebp - 0x14f0]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x501707
mov edx, dword [ebp - 0x14ec]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x5016d1
mov dword [ebp - 4], 0xfffffffe
jmp 0x501732
mov dword [ebp - 0x14f4], 0
jmp 0x50174d
mov edx, dword [ebp - 0x14f4]
add edx, 1
mov dword [ebp - 0x14f4], edx
cmp dword [ebp - 0x14f4], 1
jge 0x501764
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x14f4]
mov dword [ebp - 0x1c], eax
jmp 0x50173e
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x501776
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 0x50178e
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14f8], 0
jmp 0x5017a9