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

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x50ff08
push 0x40b390
mov eax, dword fs:[0]
push eax
add esp, 0xfffff358
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 - 0x20], 0
jmp 0x417fb2
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0x37
jge 0x417fc3
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], ecx
jmp 0x417fa9
cmp dword [ebp - 0x1c], 0
jge 0x417fd1
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 0x417fe9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x24], 0xffffffff
mov dword [ebp - 0x28], 0
jmp 0x418009
mov edx, dword [ebp - 0x28]
add edx, 1
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x28], 0x30
jge 0x418032
mov eax, dword [ebp - 0x28]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x418027
mov edx, dword [ebp - 0x24]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x418000
mov dword [ebp - 4], 0xfffffffe
jmp 0x418052
mov dword [ebp - 0x2c], 0
jmp 0x418064
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0x11
jge 0x418075
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], eax
jmp 0x41805b
cmp dword [ebp - 0x1c], 0
jge 0x418083
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 0x41809b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x4180cc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x30]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4180c1
jmp 0x4180cc
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x30]
mov dword [ebp - 0x1c], edx
jmp 0x41809b
mov eax, dword [ebp - 0x1c]
add eax, 0x13
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x34], 0
jmp 0x4180e7
mov ecx, dword [ebp - 0x34]
add ecx, 1
mov dword [ebp - 0x34], ecx
cmp dword [ebp - 0x34], 7
jge 0x4180f8
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x34]
mov dword [ebp - 0x1c], edx
jmp 0x4180de
cmp dword [ebp - 0x1c], 0
jge 0x418106
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 0x41811e
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x38], 0
jmp 0x418130
mov edx, dword [ebp - 0x38]
add edx, 1
mov dword [ebp - 0x38], edx
cmp dword [ebp - 0x38], 0x10
jge 0x418141
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x38]
mov dword [ebp - 0x1c], eax
jmp 0x418127
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x418153
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 0x41816b
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x3c], 0
jmp 0x41817d
mov edx, dword [ebp - 0x3c]
add edx, 1
mov dword [ebp - 0x3c], edx
cmp dword [ebp - 0x3c], 0
jge 0x41818e
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], eax
jmp 0x418174
cmp dword [ebp - 0x1c], 0
jge 0x41819c
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 0x4181b4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x4181e5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x40]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4181da
jmp 0x4181e5
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x40]
mov dword [ebp - 0x1c], edx
jmp 0x4181b4
mov eax, dword [ebp - 0x1c]
add eax, 0xf
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x44], 0
jmp 0x418200
mov ecx, dword [ebp - 0x44]
add ecx, 1
mov dword [ebp - 0x44], ecx
cmp dword [ebp - 0x44], 8
jge 0x41823e
cmp dword [ebp - 0x1c], 0
jge 0x418214
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 0x41822a
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x240]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4181f7
mov dword [ebp - 0x244], 0
jmp 0x418259
mov eax, dword [ebp - 0x244]
add eax, 1
mov dword [ebp - 0x244], eax
cmp dword [ebp - 0x244], 0x18
jge 0x418270
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0x244]
mov dword [ebp - 0x1c], ecx
jmp 0x41824a
cmp dword [ebp - 0x1c], 0
jge 0x41827e
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 0x418296
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 1
mov dword [ebp - 0x248], 0xffffffff
mov dword [ebp - 0x24c], 0
jmp 0x4182c2
mov edx, dword [ebp - 0x24c]
add edx, 1
mov dword [ebp - 0x24c], edx
cmp dword [ebp - 0x24c], 0xf
jge 0x4182f4
mov eax, dword [ebp - 0x24c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4182e9
mov edx, dword [ebp - 0x248]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4182b3
mov dword [ebp - 4], 0xfffffffe
jmp 0x418314
mov dword [ebp - 0x250], 0
jmp 0x41832f
mov edx, dword [ebp - 0x250]
add edx, 1
mov dword [ebp - 0x250], edx
cmp dword [ebp - 0x250], 1
jge 0x418346
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x250]
mov dword [ebp - 0x1c], eax
jmp 0x418320
cmp dword [ebp - 0x1c], 0
jge 0x418354
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 0x41836c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 2
mov dword [ebp - 0x254], 0xffffffff
mov dword [ebp - 0x258], 0
jmp 0x418398
mov edx, dword [ebp - 0x258]
add edx, 1
mov dword [ebp - 0x258], edx
cmp dword [ebp - 0x258], 4
jge 0x4183ca
mov eax, dword [ebp - 0x258]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4183bf
mov edx, dword [ebp - 0x254]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x418389
mov dword [ebp - 4], 0xfffffffe
jmp 0x4183ea
mov dword [ebp - 0x25c], 0
jmp 0x418405
mov edx, dword [ebp - 0x25c]
add edx, 1
mov dword [ebp - 0x25c], edx
cmp dword [ebp - 0x25c], 2
jge 0x418452
cmp dword [ebp - 0x1c], 0
jge 0x41841c
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 0x418432
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x260], 0xfa
lea edx, [ebp - 0x260]
push edx
lea eax, [ebp - 0x458]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4183f6
mov dword [ebp - 0x45c], 0
jmp 0x41846d
mov ecx, dword [ebp - 0x45c]
add ecx, 1
mov dword [ebp - 0x45c], ecx
cmp dword [ebp - 0x45c], 6
jge 0x418484
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x45c]
mov dword [ebp - 0x1c], edx
jmp 0x41845e
cmp dword [ebp - 0x1c], 0
jge 0x418492
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 0x4184aa
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 3
mov dword [ebp - 0x460], 0xffffffff
mov dword [ebp - 0x464], 0
jmp 0x4184d6
mov edx, dword [ebp - 0x464]
add edx, 1
mov dword [ebp - 0x464], edx
cmp dword [ebp - 0x464], 0xa
jge 0x418508
mov eax, dword [ebp - 0x464]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4184fd
mov edx, dword [ebp - 0x460]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4184c7
mov dword [ebp - 4], 0xfffffffe
jmp 0x418528
mov dword [ebp - 4], 4
mov dword [ebp - 0x468], 0xffffffff
mov dword [ebp - 0x46c], 0
jmp 0x418554
mov edx, dword [ebp - 0x46c]
add edx, 1
mov dword [ebp - 0x46c], edx
cmp dword [ebp - 0x46c], 0xf
jge 0x418586
mov eax, dword [ebp - 0x46c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x41857b
mov edx, dword [ebp - 0x468]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x418545
mov dword [ebp - 4], 0xfffffffe
jmp 0x4185a6
mov edx, 1
test edx, edx
je 0x4185e0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x470], eax
mov eax, dword [ebp - 0x470]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4185d2
jmp 0x4185e0
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x470]
mov dword [ebp - 0x1c], edx
jmp 0x4185a6
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x474], 0
jmp 0x418604
mov ecx, dword [ebp - 0x474]
add ecx, 1
mov dword [ebp - 0x474], ecx
cmp dword [ebp - 0x474], 4
jge 0x418651
cmp dword [ebp - 0x1c], 0
jge 0x41861b
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 0x418631
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x478], 0xfa
lea edx, [ebp - 0x478]
push edx
lea eax, [ebp - 0x670]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4185f5
mov dword [ebp - 0x674], 0
jmp 0x41866c
mov ecx, dword [ebp - 0x674]
add ecx, 1
mov dword [ebp - 0x674], ecx
cmp dword [ebp - 0x674], 5
jge 0x418683
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x674]
mov dword [ebp - 0x1c], edx
jmp 0x41865d
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x418695
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 0x4186ad
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x4186e7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x678], eax
mov eax, dword [ebp - 0x678]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4186d9
jmp 0x4186e7
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x678]
mov dword [ebp - 0x1c], edx
jmp 0x4186ad
mov eax, dword [ebp - 0x1c]
add eax, 8
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 5
mov dword [ebp - 0x67c], 0xffffffff
mov dword [ebp - 0x680], 0
jmp 0x41871c
mov ecx, dword [ebp - 0x680]
add ecx, 1
mov dword [ebp - 0x680], ecx
cmp dword [ebp - 0x680], 1
jge 0x41874e
mov eax, dword [ebp - 0x680]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x418743
mov edx, dword [ebp - 0x67c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x41870d
mov dword [ebp - 4], 0xfffffffe
jmp 0x41876e
mov edx, 1
test edx, edx
je 0x4187a8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x684], eax
mov eax, dword [ebp - 0x684]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x41879a
jmp 0x4187a8
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x684]
mov dword [ebp - 0x1c], edx
jmp 0x41876e
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov ecx, 1
test ecx, ecx
je 0x4187e8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x688], eax
mov eax, dword [ebp - 0x688]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4187da
jmp 0x4187e8
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x688]
mov dword [ebp - 0x1c], edx
jmp 0x4187ae
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x68c], 0
jmp 0x418809
mov ecx, dword [ebp - 0x68c]
add ecx, 1
mov dword [ebp - 0x68c], ecx
cmp dword [ebp - 0x68c], 7
jge 0x418856
mov eax, dword [ebp - 0x68c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x418838
mov eax, dword [ebp - 0x68c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x418848
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x68c]
mov dword [ebp - 0x1c], edx
jmp 0x418854
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x68c]
mov dword [ebp - 0x1c], eax
jmp 0x4187fa
mov dword [ebp - 0x690], 0
jmp 0x418871
mov ecx, dword [ebp - 0x690]
add ecx, 1
mov dword [ebp - 0x690], ecx
cmp dword [ebp - 0x690], 5
jge 0x4188b2
cmp dword [ebp - 0x1c], 0
jge 0x418888
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 0x41889e
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x888]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x418862
mov dword [ebp - 4], 6
mov dword [ebp - 0x88c], 0xffffffff
mov dword [ebp - 0x890], 0
jmp 0x4188de
mov eax, dword [ebp - 0x890]
add eax, 1
mov dword [ebp - 0x890], eax
cmp dword [ebp - 0x890], 0
jge 0x418910
mov eax, dword [ebp - 0x890]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x418905
mov edx, dword [ebp - 0x88c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4188cf
mov dword [ebp - 4], 0xfffffffe
jmp 0x418930
mov dword [ebp - 4], 7
mov dword [ebp - 0x894], 0xffffffff
mov dword [ebp - 0x898], 0
jmp 0x41895c
mov edx, dword [ebp - 0x898]
add edx, 1
mov dword [ebp - 0x898], edx
cmp dword [ebp - 0x898], 1
jge 0x41898e
mov eax, dword [ebp - 0x898]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x418983
mov edx, dword [ebp - 0x894]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x41894d
mov dword [ebp - 4], 0xfffffffe
jmp 0x4189ae
mov dword [ebp - 4], 8
mov dword [ebp - 0x89c], 0xffffffff
mov dword [ebp - 0x8a0], 0
jmp 0x4189da
mov edx, dword [ebp - 0x8a0]
add edx, 1
mov dword [ebp - 0x8a0], edx
cmp dword [ebp - 0x8a0], 0
jge 0x418a0c
mov eax, dword [ebp - 0x8a0]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x418a01
mov edx, dword [ebp - 0x89c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4189cb
mov dword [ebp - 4], 0xfffffffe
jmp 0x418a2c
mov edx, 1
test edx, edx
je 0x418a66
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x8a4], eax
mov eax, dword [ebp - 0x8a4]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x418a58
jmp 0x418a66
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x8a4]
mov dword [ebp - 0x1c], edx
jmp 0x418a2c
mov eax, dword [ebp - 0x1c]
add eax, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x8a8], 0
jmp 0x418a8a
mov ecx, dword [ebp - 0x8a8]
add ecx, 1
mov dword [ebp - 0x8a8], ecx
cmp dword [ebp - 0x8a8], 4
jge 0x418aa1
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x8a8]
mov dword [ebp - 0x1c], edx
jmp 0x418a7b
cmp dword [ebp - 0x1c], 0
jge 0x418aaf
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 0x418ac7
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x8ac], 0
jmp 0x418ae2
mov edx, dword [ebp - 0x8ac]
add edx, 1
mov dword [ebp - 0x8ac], edx
cmp dword [ebp - 0x8ac], 3
jge 0x418b2f
mov eax, dword [ebp - 0x8ac]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x418b11
mov eax, dword [ebp - 0x8ac]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x418b21
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x8ac]
mov dword [ebp - 0x1c], edx
jmp 0x418b2d
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x8ac]
mov dword [ebp - 0x1c], eax
jmp 0x418ad3
mov dword [ebp - 0x8b0], 0
jmp 0x418b4a
mov ecx, dword [ebp - 0x8b0]
add ecx, 1
mov dword [ebp - 0x8b0], ecx
cmp dword [ebp - 0x8b0], 3
jge 0x418b8b
cmp dword [ebp - 0x1c], 0
jge 0x418b61
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 0x418b77
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0xaa8]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x418b3b
mov dword [ebp - 4], 9
mov dword [ebp - 0xaac], 0xffffffff
mov dword [ebp - 0xab0], 0
jmp 0x418bb7
mov eax, dword [ebp - 0xab0]
add eax, 1
mov dword [ebp - 0xab0], eax
cmp dword [ebp - 0xab0], 3
jge 0x418be9
mov eax, dword [ebp - 0xab0]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x418bde
mov edx, dword [ebp - 0xaac]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x418ba8
mov dword [ebp - 4], 0xfffffffe
jmp 0x418c09
mov dword [ebp - 0xab4], 0
jmp 0x418c24
mov edx, dword [ebp - 0xab4]
add edx, 1
mov dword [ebp - 0xab4], edx
cmp dword [ebp - 0xab4], 1
jge 0x418c3b
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0xab4]
mov dword [ebp - 0x1c], eax
jmp 0x418c15
cmp dword [ebp - 0x1c], 0
jge 0x418c49
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 0x418c61
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xab8], 0
jmp 0x418c7c
mov edx, dword [ebp - 0xab8]
add edx, 1
mov dword [ebp - 0xab8], edx
cmp dword [ebp - 0xab8], 0
jge 0x418cc9
cmp dword [ebp - 0x1c], 0
jge 0x418c93
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 0x418ca9
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xabc], 0xfa
lea edx, [ebp - 0xabc]
push edx
lea eax, [ebp - 0xcb8]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x418c6d
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x48]
xor ecx, ebp
call fcn.004079a5
mov esp, ebp
pop ebp
ret