Function at 0x11011a50
Capabilities:
Get common file path
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6bc
mov eax, dword [0x11064c1c]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
push 0x4f
lea eax, [ebp - 0x77]
push 0
mov ecx, 9
mov esi, 0x110677b8
lea edi, [ebp - 0x698]
push eax
mov dword [ebp - 0x674], ebx
rep movsd dword es:[edi], dword [esi]
mov dword [0x110677dc], 0
mov byte [ebp - 0x78], 0
call fcn.110278e0
xor ecx, ecx
push 0x9e
push ecx
lea edx, [ebp - 0x316]
push edx
mov word [ebp - 0x318], cx
call fcn.110278e0
mov ecx, 0x29
mov esi, 0x11067688
lea edi, [ebp - 0x5c0]
rep movsd dword es:[edi], dword [esi]
add esp, 0x18
cmp word [0x110676a4], 0
movsw word es:[edi], word [esi]
je 0x11011b29
movzx eax, word [0x110676a0]
movzx edx, word [0x110676a2]
push eax
lea ecx, [ebp - 0x318]
push ecx
push edx
call fcn.1100c0c0
add esp, 8
push eax
movzx eax, word [0x110676a4]
push eax
lea ecx, [ebp - 0x664]
push str._02d__s__d
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
push 0
push 0x50
lea edx, [ebp - 0x78]
push edx
lea eax, [ebp - 0x664]
push eax
call fcn.11008340
add esp, 0x24
xor ecx, ecx
xor eax, eax
push str.Lic._MungeSerFile
mov dword [0x110676a0], ecx
mov word [0x110676a4], ax
mov dword [0x1106770c], ecx
mov word [0x11067710], ax
call fcn.1100bc80
push ebx
call fcn.11003590
push 0
call fcn.110279bb
add esp, 0xc
xor edi, edi
test ebx, ebx
je 0x11011b9a
mov eax, ebx
lea edx, [eax + 2]
lea ebx, [ebx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x11011b70
sub eax, edx
sar eax, 1
lea esi, [eax + eax + 1]
push esi
call fcn.11027a34
push 0xffffffffffffffff
push 0
mov edi, eax
push esi
push edi
push ebx
call fcn.11008260
add esp, 0x18
mov edx, 0x110676a6
mov eax, edi
sub edx, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x11011ba3
push edi
call fcn.110279bb
push 0
lea esi, [ebx + 0xa0]
call fcn.110279bb
add esp, 8
xor edi, edi
test esi, esi
je 0x11011c00
mov eax, esi
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x11011bd0
sub eax, edx
sar eax, 1
lea esi, [eax + eax + 1]
push esi
call fcn.11027a34
push 0xffffffffffffffff
push 0
mov edi, eax
push esi
lea eax, [ebx + 0xa0]
push edi
push eax
call fcn.11008260
add esp, 0x18
mov edx, 0x1106768a
mov eax, edi
sub edx, edi
lea esp, [esp]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x11011c10
push edi
call fcn.110279bb
lea ecx, [ebx + 0x1cc]
push ecx
call fcn.1100b440
lea edx, [ebx + 0x140]
push edx
mov dword [0x1106772a], eax
call fcn.1102b132
push eax
push 0x11067688
call fcn.1100b1f0
add esp, 0x14
cmp dword [ebx + 0x2cc], 0
je 0x11011c61
mov ax, word [ebx + 0x2cc]
mov word [0x110676fa], ax
lea ecx, [ebp - 0x318]
push ecx
push 0x110676a0
push 0x110676a2
push 0x110676a4
add ebx, 0x14c
push ebx
call fcn.1100e350
push 0x11053dcc
push 0x110676a6
call fcn.11029d21
neg eax
sbb esi, esi
push str.PENDING_REGISTRATION
inc esi
push 0x110676a6
mov dword [ebp - 0x66c], esi
call fcn.11029d21
add esp, 0x24
test eax, eax
jne 0x11011cbd
mov dword [0x110677e4], 1
mov al, byte [0x11067709]
mov edx, dword [0x110675c8]
mov dword [ebp - 0x670], edx
test al, al
je 0x11011e20
cmp word [ebp + 8], 0
je 0x11011e20
mov cx, word [ebp - 0x5a4]
mov dx, word [ebp - 0x5a8]
movzx ebx, al
mov ax, word [ebp - 0x5a6]
mov word [0x110676a2], ax
lea eax, [ebp - 0x6bc]
push 0x110677b8
push eax
mov word [0x110676a0], dx
mov word [0x110676a4], cx
call fcn.1100cb80
mov esi, eax
movzx eax, word [ebp - 0x5a6]
mov ecx, 9
lea edi, [ebp - 0x28]
rep movsd dword es:[edi], dword [esi]
movzx ecx, word [ebp - 0x5a4]
push ecx
movzx ecx, dx
push eax
push ecx
push str.Lic1._expiry_d__d__d
call fcn.1100bc80
add esp, 0x18
test ebx, ebx
je 0x11011e10
cmp ebx, 0xff
jge 0x11011e10
push ebx
lea edx, [ebp - 0x684]
push edx
lea eax, [ebp - 0x688]
push eax
lea ecx, [ebp - 0x68c]
push ecx
call fcn.1100b380
mov esi, dword [ebp - 0x684]
mov edi, dword [ebp - 0x688]
mov ebx, dword [ebp - 0x68c]
push esi
push edi
push ebx
push 0x11067688
call fcn.1100b160
add esp, 0x20
test eax, eax
jne 0x11011e10
mov dx, word [ebp - 0x14]
mov ax, word [ebp - 0x18]
mov cx, word [ebp - 0x1c]
mov word [0x1106770c], dx
movzx edx, bx
mov word [0x1106770e], ax
push edx
movzx eax, di
mov word [0x11067710], cx
movzx ecx, si
push eax
push ecx
push str.Lic2._expiry_d__d__d
mov word [0x110676a0], si
mov word [0x110676a2], di
mov word [0x110676a4], bx
call fcn.1100bc80
movzx edx, word [0x11067710]
movzx eax, word [0x1106770e]
movzx ecx, word [0x1106770c]
push edx
push eax
push ecx
push str.Lic3._start_d__d__d
call fcn.1100bc80
add esp, 0x20
mov dword [ebp - 0x66c], 0
mov esi, dword [ebp - 0x66c]
cmp dword [0x110677e4], 0
je 0x11011f85
cmp word [0x110676fe], 0
je 0x11011f85
push 0xa6
lea edx, [ebp - 0x668]
push 0
push edx
call fcn.110278e0
add esp, 0xc
cmp word [0x11067590], 0
je 0x11011e6c
push 0x11067590
call fcn.1100b440
add esp, 4
mov edi, eax
jmp 0x11011e72
mov edi, dword [0x1106772a]
xor eax, eax
push 0x1fe
push eax
lea ecx, [ebp - 0x276]
push ecx
mov word [ebp - 0x278], ax
call fcn.110278e0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
push 0x100
lea edx, [ebp - 0x278]
push edx
push str.TEMP
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
cmp word [ebp - 0x278], 0
jne 0x11011ec9
push 0x100
lea eax, [ebp - 0x278]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
lea eax, [ebp - 0x278]
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x11011ed2
mov ecx, dword [str._nsm.___]
mov edx, dword [0x11055bb8]
mov dword [eax], ecx
mov ecx, dword [0x11055bbc]
mov dword [eax + 4], edx
mov edx, dword [0x11055bc0]
mov dword [eax + 8], ecx
mov cx, word [0x11055bc4]
mov dword [eax + 0xc], edx
mov word [eax + 0x10], cx
lea edx, [ebp - 0x18]
push edx
lea eax, [ebp - 0x668]
push eax
lea ecx, [ebp - 0x278]
push ecx
call fcn.11011810
push 0x11067694
mov esi, eax
call fcn.1102b4c0
push eax
lea edx, [ebp - 0x668]
push edx
call fcn.1100b1f0
lea eax, [ebp - 0x668]
push eax
lea ecx, [ebp - 0x18]
push ecx
call fcn.1100bf10
lea edx, [ebp - 0x18]
push 0
push edx
call fcn.1100b100
add esp, 0x28
test esi, esi
jne 0x11011f6f
cmp dword [ebp - 0x10], edi
jne 0x11011f6f
mov dword [ebp - 0x66c], 1
jmp 0x11011f8d
pop edi
pop esi
mov eax, 2
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.110278cd
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x110121e4
movzx eax, word [ebp - 0x5a4]
mov dx, word [ebp - 0x5a8]
mov bx, word [ebp - 0x5a6]
lea ecx, [ebp - 0x6bc]
push 0x110677b8
push ecx
mov word [0x110676a0], dx
mov word [0x110676a2], bx
mov word [0x110676a4], ax
call fcn.1100cb80
mov esi, eax
mov ecx, 9
lea edi, [ebp - 0x28]
rep movsd dword es:[edi], dword [esi]
movzx eax, word [ebp - 0x14]
mov cx, word [ebp - 0x18]
mov word [0x1106770c], ax
movzx eax, word [ebp - 0x1c]
mov word [0x1106770e], cx
movzx ecx, word [ebp - 0x5a4]
push ecx
mov word [0x11067710], ax
movzx eax, bx
movzx ecx, dx
push eax
push ecx
push str.Lic5._expiry_d__d__d
call fcn.1100bc80
movzx edx, word [0x11067710]
movzx eax, word [0x1106770e]
movzx ecx, word [0x1106770c]
push edx
push eax
push ecx
push str.Lic6._start_d__d__d
call fcn.1100bc80
mov edx, dword [0x110677cc]
mov eax, dword [0x110677c8]
mov ecx, dword [0x110677c4]
push edx
push eax
push ecx
push 0x11067688
call fcn.1100b160
add esp, 0x38
test eax, eax
je 0x110120a3
mov eax, dword [0x110675dc]
mov esi, dword [sym.imp.USER32.dll_LoadStringW]
push 0x100
lea edx, [ebp - 0x518]
push edx
push 5
push eax
call esi
mov edx, dword [0x110675dc]
push 0x100
lea ecx, [ebp - 0x278]
push ecx
push 8
push edx
call esi
mov dword [0x110677dc], 1
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.110278cd
mov esp, ebp
pop ebp
ret
mov ax, word [0x110676fe]
test ax, ax
je 0x11012189
movzx eax, ax
push eax
lea ecx, [ebp - 0x684]
push ecx
lea edx, [ebp - 0x688]
push edx
lea eax, [ebp - 0x68c]
push eax
call fcn.1100b380
mov esi, dword [ebp - 0x684]
mov ebx, dword [ebp - 0x688]
mov edi, dword [ebp - 0x68c]
push esi
push ebx
push edi
push 0x11067688
call fcn.1100b160
add esp, 0x20
test eax, eax
jne 0x11012189
mov word [0x110676a0], si
mov word [0x110676a2], bx
mov word [0x110676a4], di
cmp word [0x11067710], ax
jne 0x11012138
mov cx, word [ebp - 0x14]
mov dx, word [ebp - 0x18]
mov ax, word [ebp - 0x1c]
mov word [0x1106770c], cx
mov word [0x1106770e], dx
mov word [0x11067710], ax
push 0x11067688
call fcn.11021ef0
movzx ecx, word [0x110676a4]
movzx edx, word [0x110676a2]
movzx eax, word [0x110676a0]
push ecx
push edx
push eax
push str.Lic7._expiry_d__d__d
call fcn.1100bc80
movzx ecx, word [0x11067710]
movzx edx, word [0x1106770e]
movzx eax, word [0x1106770c]
push ecx
push edx
push eax
push str.Lic8._start_d__d__d
call fcn.1100bc80
add esp, 0x24
cmp dword [0x110677e4], 0
jne 0x110121ac
lea ecx, [ebp - 0x5b4]
push ecx
call fcn.1102b4c0
push eax
push 0x11067688
call fcn.1100b1f0
add esp, 0xc
xor eax, eax
mov edi, edi
mov cl, byte [ebp + eax - 0x5be]
mov byte [eax + 0x1106768a], cl
inc eax
test cl, cl
jne 0x110121b0
xor eax, eax
jmp 0x110121d0
mov cl, byte [ebp + eax - 0x5a2]
mov byte [eax + 0x110676a6], cl
inc eax
test cl, cl
jne 0x110121d0
jmp 0x11012205
cmp word [0x110676fa], 0x14
sbb edx, edx
and edx, 0xfffffffe
add edx, 7
push edx
call fcn.11010c40
push 0
push eax
call fcn.110220e0
add esp, 0xc
xor eax, eax
mov word [0x110676fe], ax
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x11012223
mov dword [0x110675cc], eax
mov dword [0x110675d4], 1
push 0x11067688
push 0x110675c4
call fcn.1100bf10
add esp, 8
cmp dword [0x110675b8], 0
jne 0x11012286
cmp dword [ebp - 0x66c], 0
jne 0x11012286
mov ecx, dword [0x110675cc]
cmp ecx, dword [0x1106772a]
je 0x11012286
push str.Invalid_auth_code__freealways__n
call fcn.1100bc80
mov edx, dword [ebp - 0x670]
push edx
push 0x110675c4
call fcn.1100b100
add esp, 0xc
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.110278cd
mov esp, ebp
pop ebp
ret
xor eax, eax
push 0x1fe
push eax
lea ecx, [ebp - 0x276]
push ecx
mov dword [0x11068600], 1
mov word [ebp - 0x278], ax
call fcn.110278e0
add esp, 0xc
call dword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
push 0x100
lea edx, [ebp - 0x278]
push edx
push str.TEMP
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
cmp word [ebp - 0x278], 0
jne 0x110122e7
push 0x100
lea eax, [ebp - 0x278]
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryW]
mov esi, dword [ebp - 0x674]
mov eax, dword [esi + 0x2cc]
cmp eax, 0x39
jne 0x11012340
lea eax, [ebp - 0x278]
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x11012301
mov ecx, dword [str.NSW.LIC]
mov edx, dword [0x11055c24]
mov dword [eax], ecx
mov ecx, dword [0x11055c28]
mov dword [eax + 4], edx
mov edx, dword [0x11055c2c]
mov dword [eax + 8], ecx
mov cx, word [0x11055c30]
mov dword [eax + 0xc], edx
mov word [eax + 0x10], cx
jmp 0x1101240f
cmp eax, 0x3c
jne 0x11012388
lea eax, [ebp - 0x278]
add eax, 0xfffffffe
mov edi, edi
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x11012350
mov edx, dword [str.NSW.LIC]
mov ecx, dword [0x11055c24]
mov dword [eax], edx
mov edx, dword [0x11055c28]
mov dword [eax + 4], ecx
mov ecx, dword [0x11055c2c]
mov dword [eax + 8], edx
mov dx, word [0x11055c30]
jmp 0x11012408
cmp eax, 0x64
lea eax, [ebp - 0x278]
jne 0x110123d2
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x11012396
mov ecx, dword [str.NSN.LIC]
mov edx, dword [0x11055c10]
mov dword [eax], ecx
mov ecx, dword [0x11055c14]
mov dword [eax + 4], edx
mov edx, dword [0x11055c18]
mov dword [eax + 8], ecx
mov cx, word [0x11055c1c]
mov dword [eax + 0xc], edx
mov word [eax + 0x10], cx
jmp 0x1101240f
add eax, 0xfffffffe
mov cx, word [eax + 2]
add eax, 2
test cx, cx
jne 0x110123d5
mov edx, dword [str.NSM.LIC]
mov ecx, dword [0x11055bfc]
mov dword [eax], edx
mov edx, dword [0x11055c00]
mov dword [eax + 4], ecx
mov ecx, dword [0x11055c04]
mov dword [eax + 8], edx
mov dx, word [0x11055c08]
mov dword [eax + 0xc], ecx
mov word [eax + 0x10], dx
push 0
lea eax, [ebp - 0x278]
push 0
push eax
call fcn.11010cb0
add esp, 0xc
test ax, ax
je 0x11012090
movzx edx, word [0x110676a2]
lea ecx, [ebp - 0x14]
push ecx
push edx
call fcn.1100c0c0
mov ax, word [0x110676a4]
mov cx, word [0x110676a0]
add esp, 8
test ax, ax
jne 0x11012489
cmp word [0x110676a2], 0
jne 0x11012489
test cx, cx
jne 0x11012489
xor eax, eax
jmp 0x11012470
movzx ecx, word [eax + str.0_Jan_0]
mov word [ebp + eax - 0x518], cx
add eax, 2
test cx, cx
jne 0x11012470
jmp 0x110124aa
movzx ecx, cx
push ecx
lea edx, [ebp - 0x14]
push edx
movzx eax, ax
push eax
lea ecx, [ebp - 0x518]
push str._d__s__d
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
lea eax, [ebp - 0x518]
mov edx, eax
sub esi, edx
jmp 0x110124c0
movzx ecx, word [eax]
mov word [esi + eax + 0x24c], cx
add eax, 2
test cx, cx
jne 0x110124c0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov eax, 1
pop ebx
call fcn.110278cd
mov esp, ebp
pop ebp
ret