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

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x514d28
push 0x40b390
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, 0x2af0
call fcn.004149d0
mov eax, dword [0x517138]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x34], 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 0x504c18
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 0x504c0d
jmp 0x504c18
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], edx
jmp 0x504be7
mov eax, dword [ebp - 0x1c]
add eax, 0x33
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x24], 0
jmp 0x504c33
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x24], 0x23
jge 0x504c44
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x24]
mov dword [ebp - 0x1c], edx
jmp 0x504c2a
cmp dword [ebp - 0x1c], 0
jge 0x504c52
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 0x504c6a
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x504c9b
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x28]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x504c90
jmp 0x504c9b
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x28]
mov dword [ebp - 0x1c], edx
jmp 0x504c6a
mov eax, dword [ebp - 0x1c]
add eax, 0x16
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], 0
jmp 0x504cb6
mov ecx, dword [ebp - 0x2c]
add ecx, 1
mov dword [ebp - 0x2c], ecx
cmp dword [ebp - 0x2c], 0x16
jge 0x504cc7
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], edx
jmp 0x504cad
cmp dword [ebp - 0x1c], 0
jge 0x504cd5
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 0x504ced
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x30], 0
jmp 0x504cff
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x30], 0
jge 0x504d3d
cmp dword [ebp - 0x1c], 0
jge 0x504d13
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 0x504d29
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x230]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x504cf6
mov dword [ebp - 0x234], 0
jmp 0x504d58
mov eax, dword [ebp - 0x234]
add eax, 1
mov dword [ebp - 0x234], eax
cmp dword [ebp - 0x234], 4
jge 0x504d6f
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0x234]
mov dword [ebp - 0x1c], ecx
jmp 0x504d49
cmp dword [ebp - 0x1c], 0
jge 0x504d7d
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 0x504d95
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x238], 0
jmp 0x504db0
mov edx, dword [ebp - 0x238]
add edx, 1
mov dword [ebp - 0x238], edx
cmp dword [ebp - 0x238], 0xc
jge 0x504dfd
cmp dword [ebp - 0x1c], 0
jge 0x504dc7
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 0x504ddd
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x23c], 0xfa
lea edx, [ebp - 0x23c]
push edx
lea eax, [ebp - 0x438]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x504da1
mov dword [ebp - 0x43c], 0
jmp 0x504e18
mov ecx, dword [ebp - 0x43c]
add ecx, 1
mov dword [ebp - 0x43c], ecx
cmp dword [ebp - 0x43c], 2
jge 0x504e65
cmp dword [ebp - 0x1c], 0
jge 0x504e2f
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 0x504e45
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x440], 0xfa
lea edx, [ebp - 0x440]
push edx
lea eax, [ebp - 0x638]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x504e09
mov dword [ebp - 0x63c], 0
jmp 0x504e80
mov ecx, dword [ebp - 0x63c]
add ecx, 1
mov dword [ebp - 0x63c], ecx
cmp dword [ebp - 0x63c], 0x19
jge 0x504ec1
cmp dword [ebp - 0x1c], 0
jge 0x504e97
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 0x504ead
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x838]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x504e71
mov dword [ebp - 4], 0
mov dword [ebp - 0x83c], 0xffffffff
mov dword [ebp - 0x840], 0
jmp 0x504eed
mov eax, dword [ebp - 0x840]
add eax, 1
mov dword [ebp - 0x840], eax
cmp dword [ebp - 0x840], 0x11
jge 0x504f1f
mov eax, dword [ebp - 0x840]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x504f14
mov edx, dword [ebp - 0x83c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x504ede
mov dword [ebp - 4], 0xfffffffe
jmp 0x504f3f
mov dword [ebp - 0x844], 0
jmp 0x504f5a
mov edx, dword [ebp - 0x844]
add edx, 1
mov dword [ebp - 0x844], edx
cmp dword [ebp - 0x844], 3
jge 0x504f9b
cmp dword [ebp - 0x1c], 0
jge 0x504f71
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 0x504f87
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0xa40]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x504f4b
mov dword [ebp - 0xa44], 0
jmp 0x504fb6
mov eax, dword [ebp - 0xa44]
add eax, 1
mov dword [ebp - 0xa44], eax
cmp dword [ebp - 0xa44], 9
jge 0x504fcd
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0xa44]
mov dword [ebp - 0x1c], ecx
jmp 0x504fa7
cmp dword [ebp - 0x1c], 0
jge 0x504fdb
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 0x504ff3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xa48], 0
jmp 0x50500e
mov edx, dword [ebp - 0xa48]
add edx, 1
mov dword [ebp - 0xa48], edx
cmp dword [ebp - 0xa48], 0xb
jge 0x50505b
cmp dword [ebp - 0x1c], 0
jge 0x505025
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 0x50503b
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xa4c], 0xfa
lea edx, [ebp - 0xa4c]
push edx
lea eax, [ebp - 0xc48]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x504fff
mov dword [ebp - 0xc4c], 0
jmp 0x505076
mov ecx, dword [ebp - 0xc4c]
add ecx, 1
mov dword [ebp - 0xc4c], ecx
cmp dword [ebp - 0xc4c], 0xa
jge 0x50508d
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xc4c]
mov dword [ebp - 0x1c], edx
jmp 0x505067
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x50509f
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 0x5050b7
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc50], 0
jmp 0x5050d2
mov edx, dword [ebp - 0xc50]
add edx, 1
mov dword [ebp - 0xc50], edx
cmp dword [ebp - 0xc50], 2
jge 0x505113
cmp dword [ebp - 0x1c], 0
jge 0x5050e9
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 0x5050ff
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0xe48]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x5050c3
mov dword [ebp - 4], 1
mov dword [ebp - 0xe4c], 0xffffffff
mov dword [ebp - 0xe50], 0
jmp 0x50513f
mov eax, dword [ebp - 0xe50]
add eax, 1
mov dword [ebp - 0xe50], eax
cmp dword [ebp - 0xe50], 1
jge 0x505171
mov eax, dword [ebp - 0xe50]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x505166
mov edx, dword [ebp - 0xe4c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x505130
mov dword [ebp - 4], 0xfffffffe
jmp 0x505191
mov dword [ebp - 0xe54], 0
jmp 0x5051ac
mov edx, dword [ebp - 0xe54]
add edx, 1
mov dword [ebp - 0xe54], edx
cmp dword [ebp - 0xe54], 3
jge 0x5051ed
cmp dword [ebp - 0x1c], 0
jge 0x5051c3
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 0x5051d9
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1050]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x50519d
mov dword [ebp - 0x1054], 0
jmp 0x505208
mov eax, dword [ebp - 0x1054]
add eax, 1
mov dword [ebp - 0x1054], eax
cmp dword [ebp - 0x1054], 6
jge 0x50521f
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x1054]
mov dword [ebp - 0x1c], ecx
jmp 0x5051f9
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x505231
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 0x505249
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1058], 0
jmp 0x505264
mov edx, dword [ebp - 0x1058]
add edx, 1
mov dword [ebp - 0x1058], edx
cmp dword [ebp - 0x1058], 0
jge 0x50527b
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x1058]
mov dword [ebp - 0x1c], eax
jmp 0x505255
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x50528d
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 0x5052a5
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x105c], 0
jmp 0x5052c0
mov edx, dword [ebp - 0x105c]
add edx, 1
mov dword [ebp - 0x105c], edx
cmp dword [ebp - 0x105c], 0
jge 0x5052d7
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x105c]
mov dword [ebp - 0x1c], eax
jmp 0x5052b1
cmp dword [ebp - 0x1c], 0
jge 0x5052e5
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 0x5052fd
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 2
mov dword [ebp - 0x1060], 0xffffffff
mov dword [ebp - 0x1064], 0
jmp 0x505329
mov edx, dword [ebp - 0x1064]
add edx, 1
mov dword [ebp - 0x1064], edx
cmp dword [ebp - 0x1064], 4
jge 0x50535b
mov eax, dword [ebp - 0x1064]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x505350
mov edx, dword [ebp - 0x1060]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x50531a
mov dword [ebp - 4], 0xfffffffe
jmp 0x50537b
mov dword [ebp - 0x1068], 0
jmp 0x505396
mov edx, dword [ebp - 0x1068]
add edx, 1
mov dword [ebp - 0x1068], edx
cmp dword [ebp - 0x1068], 7
jge 0x5053e3
cmp dword [ebp - 0x1c], 0
jge 0x5053ad
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 0x5053c3
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x106c], 0xfa
lea edx, [ebp - 0x106c]
push edx
lea eax, [ebp - 0x1268]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x505387
mov dword [ebp - 0x126c], 0
jmp 0x5053fe
mov ecx, dword [ebp - 0x126c]
add ecx, 1
mov dword [ebp - 0x126c], ecx
cmp dword [ebp - 0x126c], 3
jge 0x505415
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x126c]
mov dword [ebp - 0x1c], edx
jmp 0x5053ef
cmp dword [ebp - 0x1c], 0
jge 0x505423
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 0x50543b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1270], 0
jmp 0x505456
mov edx, dword [ebp - 0x1270]
add edx, 1
mov dword [ebp - 0x1270], edx
cmp dword [ebp - 0x1270], 1
jge 0x50546d
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x1270]
mov dword [ebp - 0x1c], eax
jmp 0x505447
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x50547f
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 0x505497
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1274], 0
jmp 0x5054b2
mov edx, dword [ebp - 0x1274]
add edx, 1
mov dword [ebp - 0x1274], edx
cmp dword [ebp - 0x1274], 7
jge 0x5054ff
mov eax, dword [ebp - 0x1274]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x5054e1
mov eax, dword [ebp - 0x1274]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x5054f1
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x1274]
mov dword [ebp - 0x1c], edx
jmp 0x5054fd
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x1274]
mov dword [ebp - 0x1c], eax
jmp 0x5054a3
mov dword [ebp - 0x1278], 0
jmp 0x50551a
mov ecx, dword [ebp - 0x1278]
add ecx, 1
mov dword [ebp - 0x1278], ecx
cmp dword [ebp - 0x1278], 3
jge 0x505531
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x1278]
mov dword [ebp - 0x1c], edx
jmp 0x50550b
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x505543
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 0x50555b
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x127c], 0
jmp 0x505576
mov edx, dword [ebp - 0x127c]
add edx, 1
mov dword [ebp - 0x127c], edx
cmp dword [ebp - 0x127c], 0
jge 0x5055b7
cmp dword [ebp - 0x1c], 0
jge 0x50558d
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 0x5055a3
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1478]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x505567
mov eax, 1
test eax, eax
je 0x5055f1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x147c], eax
mov eax, dword [ebp - 0x147c]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x5055e3
jmp 0x5055f1
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x147c]
mov dword [ebp - 0x1c], edx
jmp 0x5055b7
mov eax, dword [ebp - 0x1c]
add eax, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1480], 0
jmp 0x505615
mov ecx, dword [ebp - 0x1480]
add ecx, 1
mov dword [ebp - 0x1480], ecx
cmp dword [ebp - 0x1480], 7
jge 0x505662
cmp dword [ebp - 0x1c], 0
jge 0x50562c
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 0x505642
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x1484], 0xfa
lea edx, [ebp - 0x1484]
push edx
lea eax, [ebp - 0x1680]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x505606
mov dword [ebp - 4], 3
mov dword [ebp - 0x1684], 0xffffffff
mov dword [ebp - 0x1688], 0
jmp 0x50568e
mov ecx, dword [ebp - 0x1688]
add ecx, 1
mov dword [ebp - 0x1688], ecx
cmp dword [ebp - 0x1688], 4
jge 0x5056c0
mov eax, dword [ebp - 0x1688]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x5056b5
mov edx, dword [ebp - 0x1684]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x50567f
mov dword [ebp - 4], 0xfffffffe
jmp 0x5056e0
mov dword [ebp - 0x168c], 0
jmp 0x5056fb
mov edx, dword [ebp - 0x168c]
add edx, 1
mov dword [ebp - 0x168c], edx
cmp dword [ebp - 0x168c], 1
jge 0x505712
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x168c]
mov dword [ebp - 0x1c], eax
jmp 0x5056ec
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x505724
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 0x50573c
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1690], 0
jmp 0x505757
mov edx, dword [ebp - 0x1690]
add edx, 1
mov dword [ebp - 0x1690], edx
cmp dword [ebp - 0x1690], 0
jge 0x50576e
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x1690]
mov dword [ebp - 0x1c], eax
jmp 0x505748
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x505780
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 0x505798
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1694], 0
jmp 0x5057b3
mov edx, dword [ebp - 0x1694]
add edx, 1
mov dword [ebp - 0x1694], edx
cmp dword [ebp - 0x1694], 1
jge 0x5057f4
cmp dword [ebp - 0x1c], 0
jge 0x5057ca
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 0x5057e0
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1890]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x5057a4
mov dword [ebp - 0x1894], 0
jmp 0x50580f
mov eax, dword [ebp - 0x1894]
add eax, 1
mov dword [ebp - 0x1894], eax
cmp dword [ebp - 0x1894], 3
jge 0x505826
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0x1894]
mov dword [ebp - 0x1c], ecx
jmp 0x505800
cmp dword [ebp - 0x1c], 0
jge 0x505834
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 0x50584c
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1898], 0
jmp 0x505867
mov edx, dword [ebp - 0x1898]
add edx, 1
mov dword [ebp - 0x1898], edx
cmp dword [ebp - 0x1898], 2
jge 0x5058b4
cmp dword [ebp - 0x1c], 0
jge 0x50587e
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 0x505894
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x189c], 0xfa
lea edx, [ebp - 0x189c]
push edx
lea eax, [ebp - 0x1a98]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x505858
mov dword [ebp - 0x1a9c], 0
jmp 0x5058cf
mov ecx, dword [ebp - 0x1a9c]
add ecx, 1
mov dword [ebp - 0x1a9c], ecx
cmp dword [ebp - 0x1a9c], 3
jge 0x505910
cmp dword [ebp - 0x1c], 0
jge 0x5058e6
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 0x5058fc
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1c98]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x5058c0
mov dword [ebp - 0x1c9c], 0
jmp 0x50592b
mov eax, dword [ebp - 0x1c9c]
add eax, 1
mov dword [ebp - 0x1c9c], eax
cmp dword [ebp - 0x1c9c], 0
jge 0x505942
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x1c9c]
mov dword [ebp - 0x1c], ecx
jmp 0x50591c
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x505954
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 0x50596c
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x5059a6
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x1ca0], eax
mov eax, dword [ebp - 0x1ca0]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x505998
jmp 0x5059a6
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x1ca0]
mov dword [ebp - 0x1c], edx
jmp 0x50596c
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1ca4], 0
jmp 0x5059ca
mov ecx, dword [ebp - 0x1ca4]
add ecx, 1
mov dword [ebp - 0x1ca4], ecx
cmp dword [ebp - 0x1ca4], 4
jge 0x505a17
cmp dword [ebp - 0x1c], 0
jge 0x5059e1
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 0x5059f7
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x1ca8], 0xfa
lea edx, [ebp - 0x1ca8]
push edx
lea eax, [ebp - 0x1ea0]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x5059bb
mov dword [ebp - 0x1ea4], 0
jmp 0x505a32
mov ecx, dword [ebp - 0x1ea4]
add ecx, 1
mov dword [ebp - 0x1ea4], ecx
cmp dword [ebp - 0x1ea4], 4
jge 0x505a49
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x1ea4]
mov dword [ebp - 0x1c], edx
jmp 0x505a23
cmp dword [ebp - 0x1c], 0
jge 0x505a57
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 0x505a6f
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1ea8], 0
jmp 0x505a8a
mov edx, dword [ebp - 0x1ea8]
add edx, 1
mov dword [ebp - 0x1ea8], edx
cmp dword [ebp - 0x1ea8], 3
jge 0x505acb
cmp dword [ebp - 0x1c], 0
jge 0x505aa1
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 0x505ab7
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x20a0]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x505a7b
mov dword [ebp - 0x20a4], 0
jmp 0x505ae6
mov eax, dword [ebp - 0x20a4]
add eax, 1
mov dword [ebp - 0x20a4], eax
cmp dword [ebp - 0x20a4], 1
jge 0x505b33
cmp dword [ebp - 0x1c], 0
jge 0x505afd
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 0x505b13
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20a8], 0xfa
lea edx, [ebp - 0x20a8]
push edx
lea eax, [ebp - 0x22a0]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x505ad7
mov dword [ebp - 0x22a4], 0
jmp 0x505b4e
mov ecx, dword [ebp - 0x22a4]
add ecx, 1
mov dword [ebp - 0x22a4], ecx
cmp dword [ebp - 0x22a4], 3
jge 0x505b65
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x22a4]
mov dword [ebp - 0x1c], edx
jmp 0x505b3f
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x505b77
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 0x505b8f
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x22a8], 0
jmp 0x505baa
mov edx, dword [ebp - 0x22a8]
add edx, 1
mov dword [ebp - 0x22a8], edx
cmp dword [ebp - 0x22a8], 2
jge 0x505bc1
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x22a8]
mov dword [ebp - 0x1c], eax
jmp 0x505b9b
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x505bd3
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 0x505beb
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x505c25
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x22ac], eax
mov eax, dword [ebp - 0x22ac]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x505c17
jmp 0x505c25
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x22ac]
mov dword [ebp - 0x1c], edx
jmp 0x505beb
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x22b0], 0
jmp 0x505c46
cmp dword [ebp - 0x22b0], 3
jge 0x505c93
mov eax, dword [ebp - 0x22b0]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x505c75
mov eax, dword [ebp - 0x22b0]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x505c85
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x22b0]
mov dword [ebp - 0x1c], edx
jmp 0x505c91
mov ecx, 1
test ecx, ecx
je 0x505ccd
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x22b4], eax
mov eax, dword [ebp - 0x22b4]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x505cbf
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x22b8], 0
jmp 0x505cf1