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

Disassembly:
push ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x5138b8
push 0x40b390
mov eax, dword fs:[0]
push eax
sub esp, 8
mov eax, 0x2f08
call fcn.004149d0
mov eax, dword [0x517138]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x74], 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 0x4c9b69
mov eax, dword [ebp - 0x20]
add eax, 1
mov dword [ebp - 0x20], eax
cmp dword [ebp - 0x20], 0x2a
jge 0x4c9ba7
mov eax, dword [ebp - 0x20]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4c9b8f
mov eax, dword [ebp - 0x20]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4c9b9c
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x20]
mov dword [ebp - 0x1c], edx
jmp 0x4c9ba5
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x20]
mov dword [ebp - 0x1c], eax
jmp 0x4c9b60
mov dword [ebp - 0x24], 0
jmp 0x4c9bb9
mov ecx, dword [ebp - 0x24]
add ecx, 1
mov dword [ebp - 0x24], ecx
cmp dword [ebp - 0x24], 9
jge 0x4c9bca
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x24]
mov dword [ebp - 0x1c], edx
jmp 0x4c9bb0
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4c9bdc
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 0x4c9bf4
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x28], 0
jmp 0x4c9c06
mov edx, dword [ebp - 0x28]
add edx, 1
mov dword [ebp - 0x28], edx
cmp dword [ebp - 0x28], 0x12
jge 0x4c9c17
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x28]
mov dword [ebp - 0x1c], eax
jmp 0x4c9bfd
cmp dword [ebp - 0x1c], 0
jge 0x4c9c25
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 0x4c9c3d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], 0
jmp 0x4c9c4f
mov edx, dword [ebp - 0x2c]
add edx, 1
mov dword [ebp - 0x2c], edx
cmp dword [ebp - 0x2c], 0xe
jge 0x4c9c60
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x2c]
mov dword [ebp - 0x1c], eax
jmp 0x4c9c46
cmp dword [ebp - 0x1c], 0
jge 0x4c9c6e
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 0x4c9c86
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x30], 0
jmp 0x4c9c98
mov edx, dword [ebp - 0x30]
add edx, 1
mov dword [ebp - 0x30], edx
cmp dword [ebp - 0x30], 0xe
jge 0x4c9ca9
mov eax, dword [ebp - 0x1c]
xor eax, dword [ebp - 0x30]
mov dword [ebp - 0x1c], eax
jmp 0x4c9c8f
cmp dword [ebp - 0x1c], 0
jge 0x4c9cb7
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 0x4c9ccf
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x34], 0
jmp 0x4c9ce1
mov edx, dword [ebp - 0x34]
add edx, 1
mov dword [ebp - 0x34], edx
cmp dword [ebp - 0x34], 0x14
jge 0x4c9cf2
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x34]
mov dword [ebp - 0x1c], eax
jmp 0x4c9cd8
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4c9d04
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 0x4c9d1c
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 0
mov dword [ebp - 0x38], 0xffffffff
mov dword [ebp - 0x3c], 0
jmp 0x4c9d3c
mov edx, dword [ebp - 0x3c]
add edx, 1
mov dword [ebp - 0x3c], edx
cmp dword [ebp - 0x3c], 0x1b
jge 0x4c9d65
mov eax, dword [ebp - 0x3c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4c9d5a
mov edx, dword [ebp - 0x38]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4c9d33
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c9d85
mov dword [ebp - 4], 1
mov dword [ebp - 0x40], 0xffffffff
mov dword [ebp - 0x44], 0
jmp 0x4c9da5
mov edx, dword [ebp - 0x44]
add edx, 1
mov dword [ebp - 0x44], edx
cmp dword [ebp - 0x44], 3
jge 0x4c9dce
mov eax, dword [ebp - 0x44]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4c9dc3
mov edx, dword [ebp - 0x40]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4c9d9c
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c9dee
mov dword [ebp - 0x48], 0
jmp 0x4c9e00
mov edx, dword [ebp - 0x48]
add edx, 1
mov dword [ebp - 0x48], edx
cmp dword [ebp - 0x48], 0xd
jge 0x4c9e11
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x48]
mov dword [ebp - 0x1c], eax
jmp 0x4c9df7
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4c9e23
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 0x4c9e3b
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], 2
mov dword [ebp - 0x4c], 0xffffffff
mov dword [ebp - 0x50], 0
jmp 0x4c9e5b
mov edx, dword [ebp - 0x50]
add edx, 1
mov dword [ebp - 0x50], edx
cmp dword [ebp - 0x50], 3
jge 0x4c9e84
mov eax, dword [ebp - 0x50]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4c9e79
mov edx, dword [ebp - 0x4c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4c9e52
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c9ea4
mov dword [ebp - 0x54], 0
jmp 0x4c9eb6
mov edx, dword [ebp - 0x54]
add edx, 1
mov dword [ebp - 0x54], edx
cmp dword [ebp - 0x54], 6
jge 0x4c9ef4
mov eax, dword [ebp - 0x54]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4c9edc
mov eax, dword [ebp - 0x54]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4c9ee9
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x54]
mov dword [ebp - 0x1c], edx
jmp 0x4c9ef2
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x54]
mov dword [ebp - 0x1c], eax
jmp 0x4c9ead
mov dword [ebp - 4], 3
mov dword [ebp - 0x58], 0xffffffff
mov dword [ebp - 0x5c], 0
jmp 0x4c9f14
mov ecx, dword [ebp - 0x5c]
add ecx, 1
mov dword [ebp - 0x5c], ecx
cmp dword [ebp - 0x5c], 0x10
jge 0x4c9f3d
mov eax, dword [ebp - 0x5c]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4c9f32
mov edx, dword [ebp - 0x58]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4c9f0b
mov dword [ebp - 4], 0xfffffffe
jmp 0x4c9f5d
mov dword [ebp - 0x60], 0
jmp 0x4c9f6f
mov edx, dword [ebp - 0x60]
add edx, 1
mov dword [ebp - 0x60], edx
cmp dword [ebp - 0x60], 2
jge 0x4c9f80
mov eax, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x60]
mov dword [ebp - 0x1c], eax
jmp 0x4c9f66
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4c9f92
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 0x4c9faa
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x4c9fdb
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x64], eax
mov eax, dword [ebp - 0x64]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4c9fd0
jmp 0x4c9fdb
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x64]
mov dword [ebp - 0x1c], edx
jmp 0x4c9faa
mov eax, dword [ebp - 0x1c]
add eax, 2
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x68], 0
jmp 0x4c9ff6
mov ecx, dword [ebp - 0x68]
add ecx, 1
mov dword [ebp - 0x68], ecx
cmp dword [ebp - 0x68], 8
jge 0x4ca007
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x68]
mov dword [ebp - 0x1c], edx
jmp 0x4c9fed
cmp dword [ebp - 0x1c], 0
jge 0x4ca015
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 0x4ca02d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x6c], 0
jmp 0x4ca03f
mov edx, dword [ebp - 0x6c]
add edx, 1
mov dword [ebp - 0x6c], edx
cmp dword [ebp - 0x6c], 4
jge 0x4ca083
cmp dword [ebp - 0x1c], 0
jge 0x4ca053
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 0x4ca069
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x70], 0xfa
lea edx, [ebp - 0x70]
push edx
lea eax, [ebp - 0x270]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4ca036
mov dword [ebp - 0x274], 0
jmp 0x4ca09e
mov ecx, dword [ebp - 0x274]
add ecx, 1
mov dword [ebp - 0x274], ecx
cmp dword [ebp - 0x274], 5
jge 0x4ca0b5
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x274]
mov dword [ebp - 0x1c], edx
jmp 0x4ca08f
cmp dword [ebp - 0x1c], 0
jge 0x4ca0c3
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 0x4ca0db
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x278], 0
jmp 0x4ca0f6
mov edx, dword [ebp - 0x278]
add edx, 1
mov dword [ebp - 0x278], edx
cmp dword [ebp - 0x278], 0
jge 0x4ca143
cmp dword [ebp - 0x1c], 0
jge 0x4ca10d
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 0x4ca123
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x27c], 0xfa
lea edx, [ebp - 0x27c]
push edx
lea eax, [ebp - 0x478]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4ca0e7
mov dword [ebp - 0x47c], 0
jmp 0x4ca15e
mov ecx, dword [ebp - 0x47c]
add ecx, 1
mov dword [ebp - 0x47c], ecx
cmp dword [ebp - 0x47c], 5
jge 0x4ca175
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x47c]
mov dword [ebp - 0x1c], edx
jmp 0x4ca14f
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4ca187
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 0x4ca19f
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x480], 0
jmp 0x4ca1ba
mov edx, dword [ebp - 0x480]
add edx, 1
mov dword [ebp - 0x480], edx
cmp dword [ebp - 0x480], 8
jge 0x4ca1fb
cmp dword [ebp - 0x1c], 0
jge 0x4ca1d1
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 0x4ca1e7
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x678]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4ca1ab
mov dword [ebp - 0x67c], 0
jmp 0x4ca216
mov eax, dword [ebp - 0x67c]
add eax, 1
mov dword [ebp - 0x67c], eax
cmp dword [ebp - 0x67c], 1
jge 0x4ca263
cmp dword [ebp - 0x1c], 0
jge 0x4ca22d
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 0x4ca243
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x680], 0xfa
lea edx, [ebp - 0x680]
push edx
lea eax, [ebp - 0x878]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4ca207
mov dword [ebp - 0x87c], 0
jmp 0x4ca27e
mov ecx, dword [ebp - 0x87c]
add ecx, 1
mov dword [ebp - 0x87c], ecx
cmp dword [ebp - 0x87c], 8
jge 0x4ca2cb
mov eax, dword [ebp - 0x87c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4ca2ad
mov eax, dword [ebp - 0x87c]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4ca2bd
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x87c]
mov dword [ebp - 0x1c], edx
jmp 0x4ca2c9
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x87c]
mov dword [ebp - 0x1c], eax
jmp 0x4ca26f
mov ecx, 1
test ecx, ecx
je 0x4ca305
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x880], eax
mov eax, dword [ebp - 0x880]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4ca2f7
jmp 0x4ca305
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x880]
mov dword [ebp - 0x1c], edx
jmp 0x4ca2cb
mov eax, dword [ebp - 0x1c]
add eax, 5
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x884], 0
jmp 0x4ca329
mov ecx, dword [ebp - 0x884]
add ecx, 1
mov dword [ebp - 0x884], ecx
cmp dword [ebp - 0x884], 2
jge 0x4ca36a
cmp dword [ebp - 0x1c], 0
jge 0x4ca340
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 0x4ca356
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0xa80]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4ca31a
mov dword [ebp - 0xa84], 0
jmp 0x4ca385
mov eax, dword [ebp - 0xa84]
add eax, 1
mov dword [ebp - 0xa84], eax
cmp dword [ebp - 0xa84], 0
jge 0x4ca39c
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0xa84]
mov dword [ebp - 0x1c], ecx
jmp 0x4ca376
cmp dword [ebp - 0x1c], 0
jge 0x4ca3aa
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 0x4ca3c2
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xa88], 0
jmp 0x4ca3dd
mov edx, dword [ebp - 0xa88]
add edx, 1
mov dword [ebp - 0xa88], edx
cmp dword [ebp - 0xa88], 1
jge 0x4ca42a
cmp dword [ebp - 0x1c], 0
jge 0x4ca3f4
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 0x4ca40a
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0xa8c], 0xfa
lea edx, [ebp - 0xa8c]
push edx
lea eax, [ebp - 0xc88]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4ca3ce
mov dword [ebp - 0xc8c], 0
jmp 0x4ca445
mov ecx, dword [ebp - 0xc8c]
add ecx, 1
mov dword [ebp - 0xc8c], ecx
cmp dword [ebp - 0xc8c], 5
jge 0x4ca45c
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0xc8c]
mov dword [ebp - 0x1c], edx
jmp 0x4ca436
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4ca46e
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 0x4ca486
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xc90], 0
jmp 0x4ca4a1
mov edx, dword [ebp - 0xc90]
add edx, 1
mov dword [ebp - 0xc90], edx
cmp dword [ebp - 0xc90], 3
jge 0x4ca4ee
cmp dword [ebp - 0x1c], 0
jge 0x4ca4b8
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 0x4ca4ce
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 0x4ca492
mov dword [ebp - 0xe94], 0
jmp 0x4ca509
mov ecx, dword [ebp - 0xe94]
add ecx, 1
mov dword [ebp - 0xe94], ecx
cmp dword [ebp - 0xe94], 7
jge 0x4ca520
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0xe94]
mov dword [ebp - 0x1c], edx
jmp 0x4ca4fa
cmp dword [ebp - 0x1c], 0
jge 0x4ca52e
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 0x4ca546
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0xe98], 0
jmp 0x4ca561
mov edx, dword [ebp - 0xe98]
add edx, 1
mov dword [ebp - 0xe98], edx
cmp dword [ebp - 0xe98], 1
jge 0x4ca5a2
cmp dword [ebp - 0x1c], 0
jge 0x4ca578
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 0x4ca58e
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1090]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4ca552
mov dword [ebp - 0x1094], 0
jmp 0x4ca5bd
mov eax, dword [ebp - 0x1094]
add eax, 1
mov dword [ebp - 0x1094], eax
cmp dword [ebp - 0x1094], 0
jge 0x4ca60a
cmp dword [ebp - 0x1c], 0
jge 0x4ca5d4
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 0x4ca5ea
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x1098], 0xfa
lea edx, [ebp - 0x1098]
push edx
lea eax, [ebp - 0x1290]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4ca5ae
mov dword [ebp - 4], 4
mov dword [ebp - 0x1294], 0xffffffff
mov dword [ebp - 0x1298], 0
jmp 0x4ca636
mov ecx, dword [ebp - 0x1298]
add ecx, 1
mov dword [ebp - 0x1298], ecx
cmp dword [ebp - 0x1298], 2
jge 0x4ca668
mov eax, dword [ebp - 0x1298]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4ca65d
mov edx, dword [ebp - 0x1294]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4ca627
mov dword [ebp - 4], 0xfffffffe
jmp 0x4ca688
mov dword [ebp - 0x129c], 0
jmp 0x4ca6a3
mov edx, dword [ebp - 0x129c]
add edx, 1
mov dword [ebp - 0x129c], edx
cmp dword [ebp - 0x129c], 1
jge 0x4ca6f0
cmp dword [ebp - 0x1c], 0
jge 0x4ca6ba
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 0x4ca6d0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x12a0], 0xfa
lea edx, [ebp - 0x12a0]
push edx
lea eax, [ebp - 0x1498]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4ca694
mov dword [ebp - 0x149c], 0
jmp 0x4ca70b
mov ecx, dword [ebp - 0x149c]
add ecx, 1
mov dword [ebp - 0x149c], ecx
cmp dword [ebp - 0x149c], 2
jge 0x4ca74c
cmp dword [ebp - 0x1c], 0
jge 0x4ca722
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 0x4ca738
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1698]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4ca6fc
mov dword [ebp - 4], 5
mov dword [ebp - 0x169c], 0xffffffff
mov dword [ebp - 0x16a0], 0
jmp 0x4ca778
mov eax, dword [ebp - 0x16a0]
add eax, 1
mov dword [ebp - 0x16a0], eax
cmp dword [ebp - 0x16a0], 7
jge 0x4ca7aa
mov eax, dword [ebp - 0x16a0]
cdq
mov ecx, 0x25
idiv ecx
test edx, edx
jne 0x4ca79f
mov edx, dword [ebp - 0x169c]
movsx eax, byte [edx]
mov dword [ebp - 0x1c], eax
mov ecx, dword [ebp - 0x1c]
add ecx, 1
mov dword [ebp - 0x1c], ecx
jmp 0x4ca769
mov dword [ebp - 4], 0xfffffffe
jmp 0x4ca7ca
mov dword [ebp - 0x16a4], 0
jmp 0x4ca7e5
mov edx, dword [ebp - 0x16a4]
add edx, 1
mov dword [ebp - 0x16a4], edx
cmp dword [ebp - 0x16a4], 3
jge 0x4ca832
mov eax, dword [ebp - 0x16a4]
cdq
mov ecx, 5
idiv ecx
cmp edx, 1
je 0x4ca814
mov eax, dword [ebp - 0x16a4]
cdq
mov ecx, 5
idiv ecx
cmp edx, 4
jne 0x4ca824
nop
nop
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x16a4]
mov dword [ebp - 0x1c], edx
jmp 0x4ca830
mov eax, dword [ebp - 0x1c]
and eax, dword [ebp - 0x16a4]
mov dword [ebp - 0x1c], eax
jmp 0x4ca7d6
mov dword [ebp - 0x16a8], 0
jmp 0x4ca84d
mov ecx, dword [ebp - 0x16a8]
add ecx, 1
mov dword [ebp - 0x16a8], ecx
cmp dword [ebp - 0x16a8], 8
jge 0x4ca864
mov edx, dword [ebp - 0x1c]
sub edx, dword [ebp - 0x16a8]
mov dword [ebp - 0x1c], edx
jmp 0x4ca83e
cmp dword [ebp - 0x1c], 0xffff0001
jge 0x4ca876
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 0x4ca88e
call dword [sym.imp.KERNEL32.dll_GetVersion]
mov dword [ebp - 0x1c], eax
mov edx, 1
test edx, edx
je 0x4ca8c8
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x16ac], eax
mov eax, dword [ebp - 0x16ac]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4ca8ba
jmp 0x4ca8c8
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x16ac]
mov dword [ebp - 0x1c], edx
jmp 0x4ca88e
mov eax, dword [ebp - 0x1c]
add eax, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x16b0], 0
jmp 0x4ca8ec
mov ecx, dword [ebp - 0x16b0]
add ecx, 1
mov dword [ebp - 0x16b0], ecx
cmp dword [ebp - 0x16b0], 2
jge 0x4ca903
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x16b0]
mov dword [ebp - 0x1c], edx
jmp 0x4ca8dd
cmp dword [ebp - 0x1c], 0
jge 0x4ca911
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 0x4ca929
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x16b4], 0
jmp 0x4ca944
mov edx, dword [ebp - 0x16b4]
add edx, 1
mov dword [ebp - 0x16b4], edx
cmp dword [ebp - 0x16b4], 5
jge 0x4ca991
cmp dword [ebp - 0x1c], 0
jge 0x4ca95b
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 0x4ca971
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x16b8], 0xfa
lea edx, [ebp - 0x16b8]
push edx
lea eax, [ebp - 0x18b0]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
jmp 0x4ca935
mov dword [ebp - 0x18b4], 0
jmp 0x4ca9ac
mov ecx, dword [ebp - 0x18b4]
add ecx, 1
mov dword [ebp - 0x18b4], ecx
cmp dword [ebp - 0x18b4], 5
jge 0x4ca9c3
mov edx, dword [ebp - 0x1c]
xor edx, dword [ebp - 0x18b4]
mov dword [ebp - 0x1c], edx
jmp 0x4ca99d
cmp dword [ebp - 0x1c], 0
jge 0x4ca9d1
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 0x4ca9e9
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18b8], 0
jmp 0x4caa04
mov edx, dword [ebp - 0x18b8]
add edx, 1
mov dword [ebp - 0x18b8], edx
cmp dword [ebp - 0x18b8], 8
jge 0x4caa45
cmp dword [ebp - 0x1c], 0
jge 0x4caa1b
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 0x4caa31
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1ab0]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4ca9f5
mov dword [ebp - 0x1ab4], 0
jmp 0x4caa60
mov eax, dword [ebp - 0x1ab4]
add eax, 1
mov dword [ebp - 0x1ab4], eax
cmp dword [ebp - 0x1ab4], 8
jge 0x4caa77
mov ecx, dword [ebp - 0x1c]
xor ecx, dword [ebp - 0x1ab4]
mov dword [ebp - 0x1c], ecx
jmp 0x4caa51
cmp dword [ebp - 0x1c], 0
jge 0x4caa85
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 0x4caa9d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1ab8], 0
jmp 0x4caab8
mov edx, dword [ebp - 0x1ab8]
add edx, 1
mov dword [ebp - 0x1ab8], edx
cmp dword [ebp - 0x1ab8], 1
jge 0x4caaf9
cmp dword [ebp - 0x1c], 0
jge 0x4caacf
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 0x4caae5
mov dword [ebp - 0x1c], 0
push 0xfa
lea edx, [ebp - 0x1cb0]
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
jmp 0x4caaa9
mov eax, 1
test eax, eax
je 0x4cab33
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x1cb4], eax
mov eax, dword [ebp - 0x1cb4]
xor edx, edx
mov ecx, 7
div ecx
test edx, edx
jne 0x4cab25
jmp 0x4cab33
mov edx, dword [ebp - 0x1c]
add edx, dword [ebp - 0x1cb4]
mov dword [ebp - 0x1c], edx
jmp 0x4caaf9
mov eax, dword [ebp - 0x1c]
add eax, 3
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x1cb8], 0
jmp 0x4cab57
cmp dword [ebp - 0x1cb8], 3
jge 0x4cab98
cmp dword [ebp - 0x1c], 0
jge 0x4cab6e
mov dword [ebp - 4], 6
mov dword [ebp - 0x1eb4], 0xffffffff
mov dword [ebp - 0x1eb8], 0
jmp 0x4cabc4