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

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x511a40
push 0x40b390
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, 0x20dc
call fcn.004149d0
mov eax, dword [0x517138]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x28], 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 0x46aaa9
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0xc
jge 0x46aaed
cmp dword [ebp - 0x1c], 0
jge 0x46aabd
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 0x46aad3
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x24], 0xfa
lea edx, [ebp - 0x24]
push edx
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x46aaa0
mov dword [ebp - 0x224], 0
jmp 0x46ab08
mov ecx, dword [ebp - 0x224]
add ecx, 1
mov dword [ebp - 0x224], ecx
cmp dword [ebp - 0x224], 0x15
jge 0x46ab55
cmp dword [ebp - 0x1c], 0
jge 0x46ab1f
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 0x46ab35
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x228], 0xfa
lea edx, [ebp - 0x228]
push edx
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x46aaf9
mov ecx, 1
test ecx, ecx
je 0x46ab8f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x424], eax
mov eax, dword [ebp - 0x424]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x46ab81
jmp 0x46ab8f
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x424]
mov dword [ebp - 0x1c], edx
jmp 0x46ab55
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x428], 0xffffffff
mov dword [ebp - 0x42c], 0
jmp 0x46abc1
mov ecx, dword [ebp - 0x42c]
add ecx, 1
mov dword [ebp - 0x42c], ecx
cmp dword [ebp - 0x42c], 0x20
jge 0x46abf3
mov eax, dword [ebp - 0x42c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x46abe8
mov edx, dword [ebp - 0x428]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x46abb2
mov dword [ebp - 4], 0xfffffffe
jmp 0x46ac13
mov dword [ebp - 0x430], 0
jmp 0x46ac2e
mov edx, dword [ebp - 0x430]
add edx, 1
mov dword [ebp - 0x430], edx
cmp dword [ebp - 0x430], 6
jge 0x46ac45
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x430]
mov dword [ebp - 0x1c], eax
jmp 0x46ac1f
cmp dword [ebp - 0x1c], 0
jge 0x46ac53
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 0x46ac6b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x46aca5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x434], eax
mov eax, dword [ebp - 0x434]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x46ac97
jmp 0x46aca5
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x434]
mov dword [ebp - 0x1c], edx
jmp 0x46ac6b
mov eax, dword [ebp - 0x1c]
add eax, 0xb
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x438], 0
jmp 0x46acc9
mov ecx, dword [ebp - 0x438]
add ecx, 1
mov dword [ebp - 0x438], ecx
cmp dword [ebp - 0x438], 0x1f
jge 0x46ace0
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x438]
mov dword [ebp - 0x1c], edx
jmp 0x46acba
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x46acf2
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 0x46ad0a
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x43c], 0
jmp 0x46ad25
mov edx, dword [ebp - 0x43c]
add edx, 1
mov dword [ebp - 0x43c], edx
cmp dword [ebp - 0x43c], 0xc
jge 0x46ad66
cmp dword [ebp - 0x1c], 0
jge 0x46ad3c
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 0x46ad52
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x638]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x46ad16
mov dword [ebp - 0x63c], 0
jmp 0x46ad81
mov eax, dword [ebp - 0x63c]
add eax, 1
mov dword [ebp - 0x63c], eax
cmp dword [ebp - 0x63c], 2
jge 0x46adce
cmp dword [ebp - 0x1c], 0
jge 0x46ad98
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 0x46adae
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x640], 0xfa
lea edx, [ebp - 0x640]
push edx
lea eax, [ebp - 0x838]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x46ad72
mov dword [ebp - 0x83c], 0
jmp 0x46ade9
mov ecx, dword [ebp - 0x83c]
add ecx, 1
mov dword [ebp - 0x83c], ecx
cmp dword [ebp - 0x83c], 5
jge 0x46ae00
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x83c]
mov dword [ebp - 0x1c], edx
jmp 0x46adda
cmp dword [ebp - 0x1c], 0
jge 0x46ae0e
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 0x46ae26
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x840], 0
jmp 0x46ae41
mov edx, dword [ebp - 0x840]
add edx, 1
mov dword [ebp - 0x840], edx
cmp dword [ebp - 0x840], 5
jge 0x46ae82
cmp dword [ebp - 0x1c], 0
jge 0x46ae58
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 0x46ae6e
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0xa38]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x46ae32
mov dword [ebp - 0xa3c], 0
jmp 0x46ae9d
mov eax, dword [ebp - 0xa3c]
add eax, 1
mov dword [ebp - 0xa3c], eax
cmp dword [ebp - 0xa3c], 3
jge 0x46aeb4
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0xa3c]
mov dword [ebp - 0x1c], ecx
jmp 0x46ae8e
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x46aec6
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 0x46aede
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xa40], 0
jmp 0x46aef9
mov edx, dword [ebp - 0xa40]
add edx, 1
mov dword [ebp - 0xa40], edx
cmp dword [ebp - 0xa40], 5
jge 0x46af46
mov eax, dword [ebp - 0xa40]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x46af28
mov eax, dword [ebp - 0xa40]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x46af38
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xa40]
mov dword [ebp - 0x1c], edx
jmp 0x46af44
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0xa40]
mov dword [ebp - 0x1c], eax
jmp 0x46aeea
mov dword [ebp - 0xa44], 0
jmp 0x46af61
mov ecx, dword [ebp - 0xa44]
add ecx, 1
mov dword [ebp - 0xa44], ecx
cmp dword [ebp - 0xa44], 0
jge 0x46af78
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xa44]
mov dword [ebp - 0x1c], edx
jmp 0x46af52
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x46af8a
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 0x46afa2
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xa48], 0
jmp 0x46afbd
mov edx, dword [ebp - 0xa48]
add edx, 1
mov dword [ebp - 0xa48], edx
cmp dword [ebp - 0xa48], 4
jge 0x46afd4
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0xa48]
mov dword [ebp - 0x1c], eax
jmp 0x46afae
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x46afe6
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 0x46affe
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xa4c], 0
jmp 0x46b019
mov edx, dword [ebp - 0xa4c]
add edx, 1
mov dword [ebp - 0xa4c], edx
cmp dword [ebp - 0xa4c], 2
jge 0x46b05a
cmp dword [ebp - 0x1c], 0
jge 0x46b030
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 0x46b046
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0xc48]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x46b00a
mov dword [ebp - 0xc4c], 0
jmp 0x46b075
mov eax, dword [ebp - 0xc4c]
add eax, 1
mov dword [ebp - 0xc4c], eax
cmp dword [ebp - 0xc4c], 1
jge 0x46b08c
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0xc4c]
mov dword [ebp - 0x1c], ecx
jmp 0x46b066
cmp dword [ebp - 0x1c], 0
jge 0x46b09a
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 0x46b0b2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc50], 0
jmp 0x46b0cd
mov edx, dword [ebp - 0xc50]
add edx, 1
mov dword [ebp - 0xc50], edx
cmp dword [ebp - 0xc50], 2
jge 0x46b0e4
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0xc50]
mov dword [ebp - 0x1c], eax
jmp 0x46b0be
cmp dword [ebp - 0x1c], 0
jge 0x46b0f2
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 0x46b10a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 1
mov dword [ebp - 0xc54], 0xffffffff
mov dword [ebp - 0xc58], 0
jmp 0x46b136
mov edx, dword [ebp - 0xc58]
add edx, 1
mov dword [ebp - 0xc58], edx
cmp dword [ebp - 0xc58], 1
jge 0x46b168
mov eax, dword [ebp - 0xc58]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x46b15d
mov edx, dword [ebp - 0xc54]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x46b127
mov dword [ebp - 4], 0xfffffffe
jmp 0x46b188
mov dword [ebp - 0xc5c], 0
jmp 0x46b1a3
mov edx, dword [ebp - 0xc5c]
add edx, 1
mov dword [ebp - 0xc5c], edx
cmp dword [ebp - 0xc5c], 4
jge 0x46b1ba
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0xc5c]
mov dword [ebp - 0x1c], eax
jmp 0x46b194
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x46b1cc
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 0x46b1e4
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc60], 0
jmp 0x46b1ff
mov edx, dword [ebp - 0xc60]
add edx, 1
mov dword [ebp - 0xc60], edx
cmp dword [ebp - 0xc60], 0
jge 0x46b240
cmp dword [ebp - 0x1c], 0
jge 0x46b216
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 0x46b22c
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0xe58]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x46b1f0
mov dword [ebp - 0xe5c], 0
jmp 0x46b25b
mov eax, dword [ebp - 0xe5c]
add eax, 1
mov dword [ebp - 0xe5c], eax
cmp dword [ebp - 0xe5c], 3
jge 0x46b272
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0xe5c]
mov dword [ebp - 0x1c], ecx
jmp 0x46b24c
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x46b284
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 0x46b29c
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xe60], 0
jmp 0x46b2b7
mov edx, dword [ebp - 0xe60]
add edx, 1
mov dword [ebp - 0xe60], edx
cmp dword [ebp - 0xe60], 3
jge 0x46b2ce
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0xe60]
mov dword [ebp - 0x1c], eax
jmp 0x46b2a8
cmp dword [ebp - 0x1c], 0
jge 0x46b2dc
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 0x46b2f4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xe64], 0
jmp 0x46b30f
mov edx, dword [ebp - 0xe64]
add edx, 1
mov dword [ebp - 0xe64], edx
cmp dword [ebp - 0xe64], 3
jge 0x46b326
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0xe64]
mov dword [ebp - 0x1c], eax
jmp 0x46b300
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x46b338
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 0x46b350
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 2
mov dword [ebp - 0xe68], 0xffffffff
mov dword [ebp - 0xe6c], 0
jmp 0x46b37c
mov edx, dword [ebp - 0xe6c]
add edx, 1
mov dword [ebp - 0xe6c], edx
cmp dword [ebp - 0xe6c], 4
jge 0x46b3ae
mov eax, dword [ebp - 0xe6c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x46b3a3
mov edx, dword [ebp - 0xe68]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x46b36d
mov dword [ebp - 4], 0xfffffffe
jmp 0x46b3ce
mov dword [ebp - 0xe70], 0
jmp 0x46b3e9
mov edx, dword [ebp - 0xe70]
add edx, 1
mov dword [ebp - 0xe70], edx
cmp dword [ebp - 0xe70], 2
jge 0x46b400
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0xe70]
mov dword [ebp - 0x1c], eax
jmp 0x46b3da
cmp dword [ebp - 0x1c], 0
jge 0x46b40e
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 0x46b426
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xe74], 0
jmp 0x46b441
mov edx, dword [ebp - 0xe74]
add edx, 1
mov dword [ebp - 0xe74], edx
cmp dword [ebp - 0xe74], 2
jge 0x46b482
cmp dword [ebp - 0x1c], 0
jge 0x46b458
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 0x46b46e
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1070]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x46b432
mov dword [ebp - 0x1074], 0
jmp 0x46b49d
mov eax, dword [ebp - 0x1074]
add eax, 1
mov dword [ebp - 0x1074], eax
cmp dword [ebp - 0x1074], 3
jge 0x46b4b4
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x1074]
mov dword [ebp - 0x1c], ecx
jmp 0x46b48e
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x46b4c6
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 0x46b4de
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 3
mov dword [ebp - 0x1078], 0xffffffff
mov dword [ebp - 0x107c], 0
jmp 0x46b50a
mov edx, dword [ebp - 0x107c]
add edx, 1
mov dword [ebp - 0x107c], edx
cmp dword [ebp - 0x107c], 0
jge 0x46b53c
mov eax, dword [ebp - 0x107c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x46b531
mov edx, dword [ebp - 0x1078]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x46b4fb
mov dword [ebp - 4], 0xfffffffe
jmp 0x46b55c
mov dword [ebp - 0x1080], 0
jmp 0x46b577
mov edx, dword [ebp - 0x1080]
add edx, 1
mov dword [ebp - 0x1080], edx
cmp dword [ebp - 0x1080], 2
jge 0x46b58e
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x1080]
mov dword [ebp - 0x1c], eax
jmp 0x46b568
cmp dword [ebp - 0x1c], 0
jge 0x46b59c
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 0x46b5b4
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x46b5ee
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x1084], eax
mov eax, dword [ebp - 0x1084]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x46b5e0
jmp 0x46b5ee
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x1084]
mov dword [ebp - 0x1c], edx
jmp 0x46b5b4
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1088], 0
jmp 0x46b612
mov ecx, dword [ebp - 0x1088]
add ecx, 1
mov dword [ebp - 0x1088], ecx
cmp dword [ebp - 0x1088], 0
jge 0x46b629
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x1088]
mov dword [ebp - 0x1c], edx
jmp 0x46b603
cmp dword [ebp - 0x1c], 0
jge 0x46b637
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 0x46b64f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x108c], 0
jmp 0x46b66a
mov edx, dword [ebp - 0x108c]
add edx, 1
mov dword [ebp - 0x108c], edx
cmp dword [ebp - 0x108c], 1
jge 0x46b681
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x108c]
mov dword [ebp - 0x1c], eax
jmp 0x46b65b
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x46b693
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 0x46b6ab
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1090], 0
jmp 0x46b6c6
mov edx, dword [ebp - 0x1090]
add edx, 1
mov dword [ebp - 0x1090], edx
cmp dword [ebp - 0x1090], 1
jge 0x46b6dd
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x1090]
mov dword [ebp - 0x1c], eax
jmp 0x46b6b7
cmp dword [ebp - 0x1c], 0
jge 0x46b6eb
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 0x46b703
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1094], 0
jmp 0x46b71e
mov edx, dword [ebp - 0x1094]
add edx, 1
mov dword [ebp - 0x1094], edx
cmp dword [ebp - 0x1094], 1
jge 0x46b76b
mov eax, dword [ebp - 0x1094]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x46b74d
mov eax, dword [ebp - 0x1094]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x46b75d
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x1094]
mov dword [ebp - 0x1c], edx
jmp 0x46b769
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x1094]
mov dword [ebp - 0x1c], eax
jmp 0x46b70f
mov ecx, 1
test ecx, ecx
je 0x46b7a5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x1098], eax
mov eax, dword [ebp - 0x1098]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x46b797
jmp 0x46b7a5
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x1098]
mov dword [ebp - 0x1c], edx
jmp 0x46b76b
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x109c], 0
jmp 0x46b7c6
mov ecx, dword [ebp - 0x109c]
add ecx, 1
mov dword [ebp - 0x109c], ecx
cmp dword [ebp - 0x109c], 0
jge 0x46b807
cmp dword [ebp - 0x1c], 0
jge 0x46b7dd
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 0x46b7f3
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1298]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x46b7b7
mov dword [ebp - 0x129c], 0
jmp 0x46b822
mov eax, dword [ebp - 0x129c]
add eax, 1
mov dword [ebp - 0x129c], eax
cmp dword [ebp - 0x129c], 3
jge 0x46b86f
mov eax, dword [ebp - 0x129c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x46b851
mov eax, dword [ebp - 0x129c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x46b861
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x129c]
mov dword [ebp - 0x1c], edx
jmp 0x46b86d
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x129c]
mov dword [ebp - 0x1c], eax
jmp 0x46b813
mov ecx, 1
test ecx, ecx
je 0x46b8a9
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 0x46b89b
jmp 0x46b8a9
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x12a0]
mov dword [ebp - 0x1c], edx
jmp 0x46b86f
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x12a4], 0
jmp 0x46b8cd
mov ecx, dword [ebp - 0x12a4]
add ecx, 1
mov dword [ebp - 0x12a4], ecx
cmp dword [ebp - 0x12a4], 3
jge 0x46b8e4
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x12a4]
mov dword [ebp - 0x1c], edx
jmp 0x46b8be
cmp dword [ebp - 0x1c], 0
jge 0x46b8f2
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 0x46b90a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x12a8], 0
jmp 0x46b925
mov edx, dword [ebp - 0x12a8]
add edx, 1
mov dword [ebp - 0x12a8], edx
cmp dword [ebp - 0x12a8], 4
jge 0x46b93c
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x12a8]
mov dword [ebp - 0x1c], eax
jmp 0x46b916
cmp dword [ebp - 0x1c], 0
jge 0x46b94a
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 0x46b962
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x12ac], 0
jmp 0x46b97d
mov edx, dword [ebp - 0x12ac]
add edx, 1
mov dword [ebp - 0x12ac], edx
cmp dword [ebp - 0x12ac], 0
jge 0x46b994
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x12ac]
mov dword [ebp - 0x1c], eax
jmp 0x46b96e
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x46b9a6
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 0x46b9be
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x12b0], 0
jmp 0x46b9d9
mov edx, dword [ebp - 0x12b0]
add edx, 1
mov dword [ebp - 0x12b0], edx
cmp dword [ebp - 0x12b0], 3
jge 0x46b9f0
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x12b0]
mov dword [ebp - 0x1c], eax
jmp 0x46b9ca
cmp dword [ebp - 0x1c], 0
jge 0x46b9fe
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 0x46ba16