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

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x514c78
push 0x40b390
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, 0x3128
call fcn.004149d0
mov eax, dword [0x517138]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x54], 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 0x502cb7
mov eax, dword [ebp - 0x24]
add eax, 1
mov dword [ebp - 0x24], eax
cmp dword [ebp - 0x24], 0x1f
jge 0x502ce0
mov eax, dword [ebp - 0x24]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x502cd5
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 0x502cae
mov dword [ebp - 4], 0xfffffffe
jmp 0x502d00
mov dword [ebp - 4], 1
mov dword [ebp - 0x28], 0xffffffff
mov dword [ebp - 0x2c], 0
jmp 0x502d20
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0x40
jge 0x502d49
mov eax, dword [ebp - 0x2c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x502d3e
mov edx, dword [ebp - 0x28]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x502d17
mov dword [ebp - 4], 0xfffffffe
jmp 0x502d69
mov edx, 1
test edx, edx
je 0x502d9a
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 0x502d8f
jmp 0x502d9a
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x30]
mov dword [ebp - 0x1c], edx
jmp 0x502d69
mov eax, dword [ebp - 0x1c]
add eax, 0x1e
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 2
mov dword [ebp - 0x34], 0xffffffff
mov dword [ebp - 0x38], 0
jmp 0x502dc3
mov ecx, dword [ebp - 0x38]
add ecx, 1
mov dword [ebp - 0x38], ecx
cmp dword [ebp - 0x38], 0x31
jge 0x502dec
mov eax, dword [ebp - 0x38]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x502de1
mov edx, dword [ebp - 0x34]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x502dba
mov dword [ebp - 4], 0xfffffffe
jmp 0x502e0c
mov dword [ebp - 4], 3
mov dword [ebp - 0x3c], 0xffffffff
mov dword [ebp - 0x40], 0
jmp 0x502e2c
mov edx, dword [ebp - 0x40]
add edx, 1
mov dword [ebp - 0x40], edx
cmp dword [ebp - 0x40], 0x13
jge 0x502e55
mov eax, dword [ebp - 0x40]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x502e4a
mov edx, dword [ebp - 0x3c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x502e23
mov dword [ebp - 4], 0xfffffffe
jmp 0x502e75
mov dword [ebp - 0x44], 0
jmp 0x502e87
mov edx, dword [ebp - 0x44]
add edx, 1
mov dword [ebp - 0x44], edx
cmp dword [ebp - 0x44], 0x10
jge 0x502ec5
mov eax, dword [ebp - 0x44]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x502ead
mov eax, dword [ebp - 0x44]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x502eba
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x44]
mov dword [ebp - 0x1c], edx
jmp 0x502ec3
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x44]
mov dword [ebp - 0x1c], eax
jmp 0x502e7e
mov dword [ebp - 0x48], 0
jmp 0x502ed7
mov ecx, dword [ebp - 0x48]
add ecx, 1
mov dword [ebp - 0x48], ecx
cmp dword [ebp - 0x48], 0
jge 0x502f15
mov eax, dword [ebp - 0x48]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x502efd
mov eax, dword [ebp - 0x48]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x502f0a
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x48]
mov dword [ebp - 0x1c], edx
jmp 0x502f13
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x48]
mov dword [ebp - 0x1c], eax
jmp 0x502ece
mov dword [ebp - 0x4c], 0
jmp 0x502f27
mov ecx, dword [ebp - 0x4c]
add ecx, 1
mov dword [ebp - 0x4c], ecx
cmp dword [ebp - 0x4c], 0xc
jge 0x502f6b
cmp dword [ebp - 0x1c], 0
jge 0x502f3b
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 0x502f51
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x50], 0xfa
lea edx, [ebp - 0x50]
push edx
lea eax, [ebp - 0x250]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x502f1e
mov dword [ebp - 0x254], 0
jmp 0x502f86
mov ecx, dword [ebp - 0x254]
add ecx, 1
mov dword [ebp - 0x254], ecx
cmp dword [ebp - 0x254], 0x10
jge 0x502fc7
cmp dword [ebp - 0x1c], 0
jge 0x502f9d
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 0x502fb3
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x450]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x502f77
mov dword [ebp - 0x454], 0
jmp 0x502fe2
mov eax, dword [ebp - 0x454]
add eax, 1
mov dword [ebp - 0x454], eax
cmp dword [ebp - 0x454], 0xa
jge 0x503023
cmp dword [ebp - 0x1c], 0
jge 0x502ff9
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
je 0x50300f
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x650]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x502fd3
mov dword [ebp - 0x654], 0
jmp 0x50303e
mov eax, dword [ebp - 0x654]
add eax, 1
mov dword [ebp - 0x654], eax
cmp dword [ebp - 0x654], 5
jge 0x503055
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp - 0x654]
mov dword [ebp - 0x1c], ecx
jmp 0x50302f
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x503067
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 0x50307f
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x658], 0
jmp 0x50309a
mov edx, dword [ebp - 0x658]
add edx, 1
mov dword [ebp - 0x658], edx
cmp dword [ebp - 0x658], 5
jge 0x5030db
cmp dword [ebp - 0x1c], 0
jge 0x5030b1
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 0x5030c7
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x850]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x50308b
mov dword [ebp - 0x854], 0
jmp 0x5030f6
mov eax, dword [ebp - 0x854]
add eax, 1
mov dword [ebp - 0x854], eax
cmp dword [ebp - 0x854], 0xf
jge 0x50310d
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0x854]
mov dword [ebp - 0x1c], ecx
jmp 0x5030e7
cmp dword [ebp - 0x1c], 0
jge 0x50311b
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 0x503133
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x858], 0
jmp 0x50314e
mov edx, dword [ebp - 0x858]
add edx, 1
mov dword [ebp - 0x858], edx
cmp dword [ebp - 0x858], 3
jge 0x503165
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x858]
mov dword [ebp - 0x1c], eax
jmp 0x50313f
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x503177
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 0x50318f
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x85c], 0
jmp 0x5031aa
mov edx, dword [ebp - 0x85c]
add edx, 1
mov dword [ebp - 0x85c], edx
cmp dword [ebp - 0x85c], 4
jge 0x5031f7
cmp dword [ebp - 0x1c], 0
jge 0x5031c1
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 0x5031d7
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x860], 0xfa
lea edx, [ebp - 0x860]
push edx
lea eax, [ebp - 0xa58]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x50319b
mov ecx, 1
test ecx, ecx
je 0x503231
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xa5c], eax
mov eax, dword [ebp - 0xa5c]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x503223
jmp 0x503231
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0xa5c]
mov dword [ebp - 0x1c], edx
jmp 0x5031f7
mov eax, dword [ebp - 0x1c]
add eax, 0xd
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xa60], 0
jmp 0x503255
mov ecx, dword [ebp - 0xa60]
add ecx, 1
mov dword [ebp - 0xa60], ecx
cmp dword [ebp - 0xa60], 3
jge 0x50326c
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xa60]
mov dword [ebp - 0x1c], edx
jmp 0x503246
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x50327e
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 0x503296
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x5032d0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xa64], eax
mov eax, dword [ebp - 0xa64]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x5032c2
jmp 0x5032d0
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0xa64]
mov dword [ebp - 0x1c], edx
jmp 0x503296
mov eax, dword [ebp - 0x1c]
add eax, 0x10
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xa68], 0
jmp 0x5032f4
mov ecx, dword [ebp - 0xa68]
add ecx, 1
mov dword [ebp - 0xa68], ecx
cmp dword [ebp - 0xa68], 9
jge 0x503335
cmp dword [ebp - 0x1c], 0
jge 0x50330b
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 0x503321
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0xc60]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x5032e5
mov dword [ebp - 0xc64], 0
jmp 0x503350
mov eax, dword [ebp - 0xc64]
add eax, 1
mov dword [ebp - 0xc64], eax
cmp dword [ebp - 0xc64], 0xe
jge 0x503367
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0xc64]
mov dword [ebp - 0x1c], ecx
jmp 0x503341
cmp dword [ebp - 0x1c], 0
jge 0x503375
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 0x50338d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc68], 0
jmp 0x5033a8
mov edx, dword [ebp - 0xc68]
add edx, 1
mov dword [ebp - 0xc68], edx
cmp dword [ebp - 0xc68], 9
jge 0x5033f5
cmp dword [ebp - 0x1c], 0
jge 0x5033bf
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 0x5033d5
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xc6c], 0xfa
lea edx, [ebp - 0xc6c]
push edx
lea eax, [ebp - 0xe68]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x503399
mov ecx, 1
test ecx, ecx
je 0x50342f
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xe6c], eax
mov eax, dword [ebp - 0xe6c]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x503421
jmp 0x50342f
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0xe6c]
mov dword [ebp - 0x1c], edx
jmp 0x5033f5
mov eax, dword [ebp - 0x1c]
add eax, 3
mov dword [ebp - 0x1c], eax
mov ecx, 1
test ecx, ecx
je 0x503472
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0xe70], eax
mov eax, dword [ebp - 0xe70]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x503464
jmp 0x503472
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0xe70]
mov dword [ebp - 0x1c], edx
jmp 0x503438
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xe74], 0
jmp 0x503496
mov ecx, dword [ebp - 0xe74]
add ecx, 1
mov dword [ebp - 0xe74], ecx
cmp dword [ebp - 0xe74], 5
jge 0x5034ad
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0xe74]
mov dword [ebp - 0x1c], edx
jmp 0x503487
cmp dword [ebp - 0x1c], 0
jge 0x5034bb
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 0x5034d3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xe78], 0
jmp 0x5034ee
mov edx, dword [ebp - 0xe78]
add edx, 1
mov dword [ebp - 0xe78], edx
cmp dword [ebp - 0xe78], 7
jge 0x50352f
cmp dword [ebp - 0x1c], 0
jge 0x503505
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 0x50351b
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1070]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x5034df
mov dword [ebp - 0x1074], 0
jmp 0x50354a
mov eax, dword [ebp - 0x1074]
add eax, 1
mov dword [ebp - 0x1074], eax
cmp dword [ebp - 0x1074], 5
jge 0x50358b
cmp dword [ebp - 0x1c], 0
jge 0x503561
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
je 0x503577
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1270]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x50353b
mov dword [ebp - 0x1274], 0
jmp 0x5035a6
mov eax, dword [ebp - 0x1274]
add eax, 1
mov dword [ebp - 0x1274], eax
cmp dword [ebp - 0x1274], 1
jge 0x5035bd
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0x1274]
mov dword [ebp - 0x1c], ecx
jmp 0x503597
cmp dword [ebp - 0x1c], 0
jge 0x5035cb
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 0x5035e3
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1278], 0
jmp 0x5035fe
mov edx, dword [ebp - 0x1278]
add edx, 1
mov dword [ebp - 0x1278], edx
cmp dword [ebp - 0x1278], 3
jge 0x503615
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x1278]
mov dword [ebp - 0x1c], eax
jmp 0x5035ef
cmp dword [ebp - 0x1c], 0
jge 0x503623
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 0x50363b
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 4
mov dword [ebp - 0x127c], 0xffffffff
mov dword [ebp - 0x1280], 0
jmp 0x503667
mov edx, dword [ebp - 0x1280]
add edx, 1
mov dword [ebp - 0x1280], edx
cmp dword [ebp - 0x1280], 2
jge 0x503699
mov eax, dword [ebp - 0x1280]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x50368e
mov edx, dword [ebp - 0x127c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x503658
mov dword [ebp - 4], 0xfffffffe
jmp 0x5036b9
mov edx, 1
test edx, edx
je 0x5036f3
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x1284], eax
mov eax, dword [ebp - 0x1284]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x5036e5
jmp 0x5036f3
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x1284]
mov dword [ebp - 0x1c], edx
jmp 0x5036b9
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
mov ecx, 1
test ecx, ecx
je 0x503736
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x1288], eax
mov eax, dword [ebp - 0x1288]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x503728
jmp 0x503736
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x1288]
mov dword [ebp - 0x1c], edx
jmp 0x5036fc
mov eax, dword [ebp - 0x1c]
add eax, 7
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x128c], 0
jmp 0x50375a
mov ecx, dword [ebp - 0x128c]
add ecx, 1
mov dword [ebp - 0x128c], ecx
cmp dword [ebp - 0x128c], 1
jge 0x503771
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x128c]
mov dword [ebp - 0x1c], edx
jmp 0x50374b
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x503783
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 0x50379b
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x5037d5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x1290], eax
mov eax, dword [ebp - 0x1290]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x5037c7
jmp 0x5037d5
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x1290]
mov dword [ebp - 0x1c], edx
jmp 0x50379b
mov eax, dword [ebp - 0x1c]
add eax, 7
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1294], 0
jmp 0x5037f9
mov ecx, dword [ebp - 0x1294]
add ecx, 1
mov dword [ebp - 0x1294], ecx
cmp dword [ebp - 0x1294], 7
jge 0x503846
mov eax, dword [ebp - 0x1294]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x503828
mov eax, dword [ebp - 0x1294]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x503838
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x1294]
mov dword [ebp - 0x1c], edx
jmp 0x503844
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x1294]
mov dword [ebp - 0x1c], eax
jmp 0x5037ea
mov ecx, 1
test ecx, ecx
je 0x503880
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x1298], eax
mov eax, dword [ebp - 0x1298]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x503872
jmp 0x503880
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x1298]
mov dword [ebp - 0x1c], edx
jmp 0x503846
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x129c], 0
jmp 0x5038a1
mov ecx, dword [ebp - 0x129c]
add ecx, 1
mov dword [ebp - 0x129c], ecx
cmp dword [ebp - 0x129c], 2
jge 0x5038b8
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x129c]
mov dword [ebp - 0x1c], edx
jmp 0x503892
cmp dword [ebp - 0x1c], 0
jge 0x5038c6
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 0x5038de
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x12a0], 0
jmp 0x5038f9
mov edx, dword [ebp - 0x12a0]
add edx, 1
mov dword [ebp - 0x12a0], edx
cmp dword [ebp - 0x12a0], 4
jge 0x503910
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x12a0]
mov dword [ebp - 0x1c], eax
jmp 0x5038ea
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x503922
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 0x50393a
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x12a4], 0
jmp 0x503955
mov edx, dword [ebp - 0x12a4]
add edx, 1
mov dword [ebp - 0x12a4], edx
cmp dword [ebp - 0x12a4], 2
jge 0x50396c
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x12a4]
mov dword [ebp - 0x1c], eax
jmp 0x503946
cmp dword [ebp - 0x1c], 0
jge 0x50397a
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 0x503992
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x12a8], 0
jmp 0x5039ad
mov edx, dword [ebp - 0x12a8]
add edx, 1
mov dword [ebp - 0x12a8], edx
cmp dword [ebp - 0x12a8], 5
jge 0x5039c4
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x12a8]
mov dword [ebp - 0x1c], eax
jmp 0x50399e
cmp dword [ebp - 0x1c], 0
jge 0x5039d2
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 0x5039ea
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 5
mov dword [ebp - 0x12ac], 0xffffffff
mov dword [ebp - 0x12b0], 0
jmp 0x503a16
mov edx, dword [ebp - 0x12b0]
add edx, 1
mov dword [ebp - 0x12b0], edx
cmp dword [ebp - 0x12b0], 5
jge 0x503a48
mov eax, dword [ebp - 0x12b0]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x503a3d
mov edx, dword [ebp - 0x12ac]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x503a07
mov dword [ebp - 4], 0xfffffffe
jmp 0x503a68
mov dword [ebp - 0x12b4], 0
jmp 0x503a83
mov edx, dword [ebp - 0x12b4]
add edx, 1
mov dword [ebp - 0x12b4], edx
cmp dword [ebp - 0x12b4], 4
jge 0x503a9a
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x12b4]
mov dword [ebp - 0x1c], eax
jmp 0x503a74
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x503aac
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 0x503ac4
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x503afe
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x12b8], eax
mov eax, dword [ebp - 0x12b8]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x503af0
jmp 0x503afe
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x12b8]
mov dword [ebp - 0x1c], edx
jmp 0x503ac4
mov eax, dword [ebp - 0x1c]
add eax, 1
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x12bc], 0
jmp 0x503b22
mov ecx, dword [ebp - 0x12bc]
add ecx, 1
mov dword [ebp - 0x12bc], ecx
cmp dword [ebp - 0x12bc], 2
jge 0x503b6f
cmp dword [ebp - 0x1c], 0
jge 0x503b39
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 0x503b4f
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x12c0], 0xfa
lea edx, [ebp - 0x12c0]
push edx
lea eax, [ebp - 0x14b8]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x503b13
mov dword [ebp - 4], 6
mov dword [ebp - 0x14bc], 0xffffffff
mov dword [ebp - 0x14c0], 0
jmp 0x503b9b
mov ecx, dword [ebp - 0x14c0]
add ecx, 1
mov dword [ebp - 0x14c0], ecx
cmp dword [ebp - 0x14c0], 3
jge 0x503bcd
mov eax, dword [ebp - 0x14c0]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x503bc2
mov edx, dword [ebp - 0x14bc]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x503b8c
mov dword [ebp - 4], 0xfffffffe
jmp 0x503bed
mov dword [ebp - 0x14c4], 0
jmp 0x503c08
mov edx, dword [ebp - 0x14c4]
add edx, 1
mov dword [ebp - 0x14c4], edx
cmp dword [ebp - 0x14c4], 3
jge 0x503c55
cmp dword [ebp - 0x1c], 0
jge 0x503c1f
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 0x503c35
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x14c8], 0xfa
lea edx, [ebp - 0x14c8]
push edx
lea eax, [ebp - 0x16c0]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x503bf9
mov dword [ebp - 0x16c4], 0
jmp 0x503c70
mov ecx, dword [ebp - 0x16c4]
add ecx, 1
mov dword [ebp - 0x16c4], ecx
cmp dword [ebp - 0x16c4], 7
jge 0x503c87
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x16c4]
mov dword [ebp - 0x1c], edx
jmp 0x503c61
cmp dword [ebp - 0x1c], 0
jge 0x503c95
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 0x503cad
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 7
mov dword [ebp - 0x16c8], 0xffffffff
mov dword [ebp - 0x16cc], 0
jmp 0x503cd9
mov edx, dword [ebp - 0x16cc]
add edx, 1
mov dword [ebp - 0x16cc], edx
cmp dword [ebp - 0x16cc], 5
jge 0x503d0b
mov eax, dword [ebp - 0x16cc]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x503d00
mov edx, dword [ebp - 0x16c8]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x503cca
mov dword [ebp - 4], 0xfffffffe
jmp 0x503d2b
mov dword [ebp - 0x16d0], 0
jmp 0x503d46
mov edx, dword [ebp - 0x16d0]
add edx, 1
mov dword [ebp - 0x16d0], edx
cmp dword [ebp - 0x16d0], 7
jge 0x503d5d
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x16d0]
mov dword [ebp - 0x1c], eax
jmp 0x503d37
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x503d6f
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 0x503d87
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x16d4], 0
jmp 0x503da2
cmp dword [ebp - 0x16d4], 7
jge 0x503de3
cmp dword [ebp - 0x1c], 0
jge 0x503db9
mov eax, 1
test eax, eax
je 0x503e1d