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

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x511ed0
push 0x40b390
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, 0x2960
call fcn.004149d0
mov eax, dword [0x517138]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x40], 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 0x478d37
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0x17
jge 0x478d60
mov eax, dword [ebp - 0x24]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x478d55
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 0x478d2e
mov dword [ebp - 4], 0xfffffffe
jmp 0x478d80
mov dword [ebp - 0x28], 0
jmp 0x478d92
mov edx, dword [ebp - 0x28]
add edx, 1
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x28], 0xd
jge 0x478da3
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x28]
mov dword [ebp - 0x1c], eax
jmp 0x478d89
cmp dword [ebp - 0x1c], 0
jge 0x478db1
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 0x478dc9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x478dfa
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 0x478def
jmp 0x478dfa
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], edx
jmp 0x478dc9
mov eax, dword [ebp - 0x1c]
add eax, 0x1a
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x30], 0
jmp 0x478e15
mov ecx, dword [ebp - 0x30]
add ecx, 1
mov dword [ebp - 0x30], ecx
cmp dword [ebp - 0x30], 0x19
jge 0x478e26
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x30]
mov dword [ebp - 0x1c], edx
jmp 0x478e0c
cmp dword [ebp - 0x1c], 0
jge 0x478e34
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 0x478e4c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x34], 0
jmp 0x478e5e
mov edx, dword [ebp - 0x34]
add edx, 1
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x34], 5
jge 0x478e6f
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x34]
mov dword [ebp - 0x1c], eax
jmp 0x478e55
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x478e81
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 0x478e99
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x38], 0
jmp 0x478eab
mov edx, dword [ebp - 0x38]
add edx, 1
mov dword [ebp - 0x38], edx
cmp dword [ebp - 0x38], 5
jge 0x478eef
cmp dword [ebp - 0x1c], 0
jge 0x478ebf
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 0x478ed5
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x3c], 0xfa
lea edx, [ebp - 0x3c]
push edx
lea eax, [ebp - 0x238]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x478ea2
mov dword [ebp - 0x23c], 0
jmp 0x478f0a
mov ecx, dword [ebp - 0x23c]
add ecx, 1
mov dword [ebp - 0x23c], ecx
cmp dword [ebp - 0x23c], 3
jge 0x478f57
cmp dword [ebp - 0x1c], 0
jge 0x478f21
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 0x478f37
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 0x478efb
mov dword [ebp - 4], 1
mov dword [ebp - 0x43c], 0xffffffff
mov dword [ebp - 0x440], 0
jmp 0x478f83
mov ecx, dword [ebp - 0x440]
add ecx, 1
mov dword [ebp - 0x440], ecx
cmp dword [ebp - 0x440], 2
jge 0x478fb5
mov eax, dword [ebp - 0x440]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x478faa
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 0x478f74
mov dword [ebp - 4], 0xfffffffe
jmp 0x478fd5
mov edx, 1
test edx, edx
je 0x47900f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x444], eax
mov eax, dword [ebp - 0x444]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x479001
jmp 0x47900f
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x444]
mov dword [ebp - 0x1c], edx
jmp 0x478fd5
mov eax, dword [ebp - 0x1c]
add eax, 8
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x448], 0
jmp 0x479033
mov ecx, dword [ebp - 0x448]
add ecx, 1
mov dword [ebp - 0x448], ecx
cmp dword [ebp - 0x448], 0xb
jge 0x479074
cmp dword [ebp - 0x1c], 0
jge 0x47904a
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 0x479060
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x640]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x479024
mov dword [ebp - 0x644], 0
jmp 0x47908f
mov eax, dword [ebp - 0x644]
add eax, 1
mov dword [ebp - 0x644], eax
cmp dword [ebp - 0x644], 6
jge 0x4790dc
mov eax, dword [ebp - 0x644]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4790be
mov eax, dword [ebp - 0x644]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4790ce
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x644]
mov dword [ebp - 0x1c], edx
jmp 0x4790da
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x644]
mov dword [ebp - 0x1c], eax
jmp 0x479080
mov dword [ebp - 0x648], 0
jmp 0x4790f7
mov ecx, dword [ebp - 0x648]
add ecx, 1
mov dword [ebp - 0x648], ecx
cmp dword [ebp - 0x648], 4
jge 0x47910e
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x648]
mov dword [ebp - 0x1c], edx
jmp 0x4790e8
cmp dword [ebp - 0x1c], 0
jge 0x47911c
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 0x479134
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x64c], 0
jmp 0x47914f
mov edx, dword [ebp - 0x64c]
add edx, 1
mov dword [ebp - 0x64c], edx
cmp dword [ebp - 0x64c], 2
jge 0x47919c
mov eax, dword [ebp - 0x64c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x47917e
mov eax, dword [ebp - 0x64c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x47918e
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x64c]
mov dword [ebp - 0x1c], edx
jmp 0x47919a
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x64c]
mov dword [ebp - 0x1c], eax
jmp 0x479140
mov dword [ebp - 0x650], 0
jmp 0x4791b7
mov ecx, dword [ebp - 0x650]
add ecx, 1
mov dword [ebp - 0x650], ecx
cmp dword [ebp - 0x650], 3
jge 0x4791ce
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x650]
mov dword [ebp - 0x1c], edx
jmp 0x4791a8
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4791e0
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 0x4791f8
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x479232
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x654], eax
mov eax, dword [ebp - 0x654]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x479224
jmp 0x479232
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x654]
mov dword [ebp - 0x1c], edx
jmp 0x4791f8
mov eax, dword [ebp - 0x1c]
add eax, 0xa
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x658], 0
jmp 0x479256
mov ecx, dword [ebp - 0x658]
add ecx, 1
mov dword [ebp - 0x658], ecx
cmp dword [ebp - 0x658], 2
jge 0x4792a3
mov eax, dword [ebp - 0x658]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x479285
mov eax, dword [ebp - 0x658]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x479295
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x658]
mov dword [ebp - 0x1c], edx
jmp 0x4792a1
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x658]
mov dword [ebp - 0x1c], eax
jmp 0x479247
mov dword [ebp - 0x65c], 0
jmp 0x4792be
mov ecx, dword [ebp - 0x65c]
add ecx, 1
mov dword [ebp - 0x65c], ecx
cmp dword [ebp - 0x65c], 6
jge 0x4792d5
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x65c]
mov dword [ebp - 0x1c], edx
jmp 0x4792af
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4792e7
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 0x4792ff
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x660], 0
jmp 0x47931a
mov edx, dword [ebp - 0x660]
add edx, 1
mov dword [ebp - 0x660], edx
cmp dword [ebp - 0x660], 2
jge 0x479367
cmp dword [ebp - 0x1c], 0
jge 0x479331
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 0x479347
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x664], 0xfa
lea edx, [ebp - 0x664]
push edx
lea eax, [ebp - 0x860]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x47930b
mov dword [ebp - 0x864], 0
jmp 0x479382
mov ecx, dword [ebp - 0x864]
add ecx, 1
mov dword [ebp - 0x864], ecx
cmp dword [ebp - 0x864], 3
jge 0x4793cf
mov eax, dword [ebp - 0x864]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4793b1
mov eax, dword [ebp - 0x864]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4793c1
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x864]
mov dword [ebp - 0x1c], edx
jmp 0x4793cd
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x864]
mov dword [ebp - 0x1c], eax
jmp 0x479373
mov dword [ebp - 0x868], 0
jmp 0x4793ea
mov ecx, dword [ebp - 0x868]
add ecx, 1
mov dword [ebp - 0x868], ecx
cmp dword [ebp - 0x868], 3
jge 0x47942b
cmp dword [ebp - 0x1c], 0
jge 0x479401
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 0x479417
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0xa60]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4793db
mov dword [ebp - 0xa64], 0
jmp 0x479446
mov eax, dword [ebp - 0xa64]
add eax, 1
mov dword [ebp - 0xa64], eax
cmp dword [ebp - 0xa64], 7
jge 0x47945d
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0xa64]
mov dword [ebp - 0x1c], ecx
jmp 0x479437
cmp dword [ebp - 0x1c], 0
jge 0x47946b
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 0x479483
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xa68], 0
jmp 0x47949e
mov edx, dword [ebp - 0xa68]
add edx, 1
mov dword [ebp - 0xa68], edx
cmp dword [ebp - 0xa68], 6
jge 0x4794eb
mov eax, dword [ebp - 0xa68]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4794cd
mov eax, dword [ebp - 0xa68]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4794dd
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xa68]
mov dword [ebp - 0x1c], edx
jmp 0x4794e9
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0xa68]
mov dword [ebp - 0x1c], eax
jmp 0x47948f
mov ecx, 1
test ecx, ecx
je 0x479525
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xa6c], eax
mov eax, dword [ebp - 0xa6c]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x479517
jmp 0x479525
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0xa6c]
mov dword [ebp - 0x1c], edx
jmp 0x4794eb
mov eax, dword [ebp - 0x1c]
add eax, 3
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xa70], 0
jmp 0x479549
mov ecx, dword [ebp - 0xa70]
add ecx, 1
mov dword [ebp - 0xa70], ecx
cmp dword [ebp - 0xa70], 6
jge 0x479560
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xa70]
mov dword [ebp - 0x1c], edx
jmp 0x47953a
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x479572
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 0x47958a
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xa74], 0
jmp 0x4795a5
mov edx, dword [ebp - 0xa74]
add edx, 1
mov dword [ebp - 0xa74], edx
cmp dword [ebp - 0xa74], 2
jge 0x4795bc
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0xa74]
mov dword [ebp - 0x1c], eax
jmp 0x479596
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4795ce
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 0x4795e6
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xa78], 0
jmp 0x479601
mov edx, dword [ebp - 0xa78]
add edx, 1
mov dword [ebp - 0xa78], edx
cmp dword [ebp - 0xa78], 6
jge 0x479618
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0xa78]
mov dword [ebp - 0x1c], eax
jmp 0x4795f2
cmp dword [ebp - 0x1c], 0
jge 0x479626
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 0x47963e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xa7c], 0
jmp 0x479659
mov edx, dword [ebp - 0xa7c]
add edx, 1
mov dword [ebp - 0xa7c], edx
cmp dword [ebp - 0xa7c], 2
jge 0x4796a6
cmp dword [ebp - 0x1c], 0
jge 0x479670
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 0x479686
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xa80], 0xfa
lea edx, [ebp - 0xa80]
push edx
lea eax, [ebp - 0xc78]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x47964a
mov ecx, 1
test ecx, ecx
je 0x4796e0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xc7c], eax
mov eax, dword [ebp - 0xc7c]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4796d2
jmp 0x4796e0
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0xc7c]
mov dword [ebp - 0x1c], edx
jmp 0x4796a6
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 2
mov dword [ebp - 0xc80], 0xffffffff
mov dword [ebp - 0xc84], 0
jmp 0x479712
mov ecx, dword [ebp - 0xc84]
add ecx, 1
mov dword [ebp - 0xc84], ecx
cmp dword [ebp - 0xc84], 3
jge 0x479744
mov eax, dword [ebp - 0xc84]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x479739
mov edx, dword [ebp - 0xc80]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x479703
mov dword [ebp - 4], 0xfffffffe
jmp 0x479764
mov dword [ebp - 0xc88], 0
jmp 0x47977f
mov edx, dword [ebp - 0xc88]
add edx, 1
mov dword [ebp - 0xc88], edx
cmp dword [ebp - 0xc88], 6
jge 0x4797cc
mov eax, dword [ebp - 0xc88]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4797ae
mov eax, dword [ebp - 0xc88]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4797be
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xc88]
mov dword [ebp - 0x1c], edx
jmp 0x4797ca
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0xc88]
mov dword [ebp - 0x1c], eax
jmp 0x479770
mov ecx, 1
test ecx, ecx
je 0x479806
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xc8c], eax
mov eax, dword [ebp - 0xc8c]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4797f8
jmp 0x479806
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0xc8c]
mov dword [ebp - 0x1c], edx
jmp 0x4797cc
mov eax, dword [ebp - 0x1c]
add eax, 5
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc90], 0
jmp 0x47982a
mov ecx, dword [ebp - 0xc90]
add ecx, 1
mov dword [ebp - 0xc90], ecx
cmp dword [ebp - 0xc90], 5
jge 0x479877
cmp dword [ebp - 0x1c], 0
jge 0x479841
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 0x479857
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xc94], 0xfa
lea edx, [ebp - 0xc94]
push edx
lea eax, [ebp - 0xe90]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x47981b
mov dword [ebp - 0xe94], 0
jmp 0x479892
mov ecx, dword [ebp - 0xe94]
add ecx, 1
mov dword [ebp - 0xe94], ecx
cmp dword [ebp - 0xe94], 6
jge 0x4798a9
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0xe94]
mov dword [ebp - 0x1c], edx
jmp 0x479883
cmp dword [ebp - 0x1c], 0
jge 0x4798b7
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 0x4798cf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 3
mov dword [ebp - 0xe98], 0xffffffff
mov dword [ebp - 0xe9c], 0
jmp 0x4798fb
mov edx, dword [ebp - 0xe9c]
add edx, 1
mov dword [ebp - 0xe9c], edx
cmp dword [ebp - 0xe9c], 3
jge 0x47992d
mov eax, dword [ebp - 0xe9c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x479922
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 0x4798ec
mov dword [ebp - 4], 0xfffffffe
jmp 0x47994d
mov dword [ebp - 4], 4
mov dword [ebp - 0xea0], 0xffffffff
mov dword [ebp - 0xea4], 0
jmp 0x479979
mov edx, dword [ebp - 0xea4]
add edx, 1
mov dword [ebp - 0xea4], edx
cmp dword [ebp - 0xea4], 4
jge 0x4799ab
mov eax, dword [ebp - 0xea4]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4799a0
mov edx, dword [ebp - 0xea0]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x47996a
mov dword [ebp - 4], 0xfffffffe
jmp 0x4799cb
mov dword [ebp - 0xea8], 0
jmp 0x4799e6
mov edx, dword [ebp - 0xea8]
add edx, 1
mov dword [ebp - 0xea8], edx
cmp dword [ebp - 0xea8], 6
jge 0x4799fd
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0xea8]
mov dword [ebp - 0x1c], eax
jmp 0x4799d7
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x479a0f
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 0x479a27
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xeac], 0
jmp 0x479a42
mov edx, dword [ebp - 0xeac]
add edx, 1
mov dword [ebp - 0xeac], edx
cmp dword [ebp - 0xeac], 8
jge 0x479a8f
mov eax, dword [ebp - 0xeac]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x479a71
mov eax, dword [ebp - 0xeac]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x479a81
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xeac]
mov dword [ebp - 0x1c], edx
jmp 0x479a8d
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0xeac]
mov dword [ebp - 0x1c], eax
jmp 0x479a33
mov dword [ebp - 0xeb0], 0
jmp 0x479aaa
mov ecx, dword [ebp - 0xeb0]
add ecx, 1
mov dword [ebp - 0xeb0], ecx
cmp dword [ebp - 0xeb0], 1
jge 0x479ac1
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xeb0]
mov dword [ebp - 0x1c], edx
jmp 0x479a9b
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x479ad3
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 0x479aeb
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 5
mov dword [ebp - 0xeb4], 0xffffffff
mov dword [ebp - 0xeb8], 0
jmp 0x479b17
mov edx, dword [ebp - 0xeb8]
add edx, 1
mov dword [ebp - 0xeb8], edx
cmp dword [ebp - 0xeb8], 0
jge 0x479b49
mov eax, dword [ebp - 0xeb8]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x479b3e
mov edx, dword [ebp - 0xeb4]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x479b08
mov dword [ebp - 4], 0xfffffffe
jmp 0x479b69
mov dword [ebp - 0xebc], 0
jmp 0x479b84
mov edx, dword [ebp - 0xebc]
add edx, 1
mov dword [ebp - 0xebc], edx
cmp dword [ebp - 0xebc], 1
jge 0x479bd1
cmp dword [ebp - 0x1c], 0
jge 0x479b9b
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 0x479bb1
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xec0], 0xfa
lea edx, [ebp - 0xec0]
push edx
lea eax, [ebp - 0x10b8]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x479b75
mov dword [ebp - 4], 6
mov dword [ebp - 0x10bc], 0xffffffff
mov dword [ebp - 0x10c0], 0
jmp 0x479bfd
mov ecx, dword [ebp - 0x10c0]
add ecx, 1
mov dword [ebp - 0x10c0], ecx
cmp dword [ebp - 0x10c0], 4
jge 0x479c2f
mov eax, dword [ebp - 0x10c0]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x479c24
mov edx, dword [ebp - 0x10bc]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x479bee
mov dword [ebp - 4], 0xfffffffe
jmp 0x479c4f
mov dword [ebp - 0x10c4], 0
jmp 0x479c6a
mov edx, dword [ebp - 0x10c4]
add edx, 1
mov dword [ebp - 0x10c4], edx
cmp dword [ebp - 0x10c4], 4
jge 0x479c81
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x10c4]
mov dword [ebp - 0x1c], eax
jmp 0x479c5b
cmp dword [ebp - 0x1c], 0
jge 0x479c8f
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 0x479ca7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10c8], 0
jmp 0x479cc2
mov edx, dword [ebp - 0x10c8]
add edx, 1
mov dword [ebp - 0x10c8], edx
cmp dword [ebp - 0x10c8], 3
jge 0x479d03
cmp dword [ebp - 0x1c], 0
jge 0x479cd9
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 0x479cef
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x12c0]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x479cb3
mov eax, 1
test eax, eax
je 0x479d3d
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x12c4], eax
mov eax, dword [ebp - 0x12c4]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x479d2f
jmp 0x479d3d
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x12c4]
mov dword [ebp - 0x1c], edx
jmp 0x479d03
mov eax, dword [ebp - 0x1c]
add eax, 3
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x12c8], 0
jmp 0x479d61
mov ecx, dword [ebp - 0x12c8]
add ecx, 1
mov dword [ebp - 0x12c8], ecx
cmp dword [ebp - 0x12c8], 2
jge 0x479d78
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x12c8]
mov dword [ebp - 0x1c], edx
jmp 0x479d52
cmp dword [ebp - 0x1c], 0
jge 0x479d86
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 0x479d9e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x12cc], 0
jmp 0x479db9
mov edx, dword [ebp - 0x12cc]
add edx, 1
mov dword [ebp - 0x12cc], edx
cmp dword [ebp - 0x12cc], 1
jge 0x479dd0
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x12cc]
mov dword [ebp - 0x1c], eax
jmp 0x479daa
cmp dword [ebp - 0x1c], 0
jge 0x479dde
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 0x479df6
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x12d0], 0
jmp 0x479e11
cmp dword [ebp - 0x12d0], 0
jge 0x479e52
cmp dword [ebp - 0x1c], 0
jge 0x479e28
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 0x479e3e
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x14c8]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x479e02
mov dword [ebp - 4], 7
mov dword [ebp - 0x14cc], 0xffffffff
mov dword [ebp - 0x14d0], 0
jmp 0x479e7e
cmp dword [ebp - 0x14d0], 0
jge 0x479eb0
mov eax, dword [ebp - 0x14d0]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x479ea5
mov dword [ebp - 4], 0xfffffffe
jmp 0x479ed0