Function at 0x4010f0
Capabilities:
Contain obfuscated stackstrings
Delete file
Get common file path
Resolve function by parsing pe exports

Disassembly:
mov eax, 0x2b44
call fcn.004035e0
push ebx
push ebp
push esi
mov esi, dword [sym.imp.KERNEL32.dll_lstrcmpA]
push edi
mov edi, dword [esp + 0x2b60]
push str.LicenseGen
push edi
call esi
xor ebx, ebx
mov ebp, 1
test eax, eax
jne 0x401129
mov dword [0x40e344], ebx
jmp 0x40121d
push str.LoadRunner
push edi
call esi
test eax, eax
jne 0x401140
mov dword [0x40e344], ebp
jmp 0x40121d
push str.Astra_LoadTest
push edi
call esi
test eax, eax
je 0x401213
push str.Astra_Application
push edi
call esi
test eax, eax
je 0x401213
push str.Astra_QuickTest
push edi
call esi
test eax, eax
jne 0x40117b
mov dword [0x40e344], 4
jmp 0x40121d
push str.QuickTest_Professional
push edi
call esi
test eax, eax
jne 0x401196
mov dword [0x40e344], 7
jmp 0x40121d
push str.Astra_QuickTest
push edi
call esi
test eax, eax
jne 0x4011ae
mov dword [0x40e344], 6
jmp 0x40121d
push str.Topaz
push edi
call esi
test eax, eax
jne 0x4011c6
mov dword [0x40e344], 3
jmp 0x40121d
push str.TestDirector
push edi
call esi
test eax, eax
jne 0x4011de
mov dword [0x40e344], 8
jmp 0x40121d
push 0x40024
push str.Deleting_License
push str.No_product_was_mentioned_in_the_command_line._Defaulting_to_LoadRunner__OK_
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x401201
mov dword [0x40e344], ebp
jmp 0x40121d
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0x2b44
ret 0x10
mov dword [0x40e344], 2
mov al, byte [esp + 0x13]
lea ecx, [esp + 0x23c]
push 0x104
push ecx
mov byte [esp + 0x8c], al
mov dword [esp + 0x90], ebx
mov dword [esp + 0x94], ebx
mov dword [esp + 0x98], ebx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea edi, [esp + 0x23c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x138]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov bl, 0x86
mov eax, ecx
mov esi, edi
mov edi, edx
mov byte [esp + 0x14], 0x76
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov byte [esp + 0x15], 0x7d
and ecx, 3
mov byte [esp + 0x16], 0x80
rep movsb byte es:[edi], byte [esi]
mov byte [esp + 0x17], 0x81
mov byte [esp + 0x18], 0x7b
mov byte [esp + 0x19], 0x87
mov byte [esp + 0x1a], 0x8a
mov byte [esp + 0x1b], 0x4d
mov byte [esp + 0x1c], 0x4c
mov byte [esp + 0x1d], 0x48
mov byte [esp + 0x1e], 0x7e
mov byte [esp + 0x1f], bl
mov byte [esp + 0x20], bl
mov byte [esp + 0x21], 0
mov byte [esp + 0x74], 0x76
mov byte [esp + 0x75], 0x7d
mov byte [esp + 0x76], 0x80
mov byte [esp + 0x77], 0x81
mov byte [esp + 0x78], 0x7b
mov byte [esp + 0x79], 0x87
mov byte [esp + 0x7a], 0x8c
mov byte [esp + 0x7b], 0x4d
mov byte [esp + 0x7c], 0x4c
mov byte [esp + 0x7d], 0x48
mov byte [esp + 0x7e], 0x7e
mov byte [esp + 0x7f], bl
mov byte [esp + 0x80], bl
mov byte [esp + 0x81], 0
mov byte [esp + 0x64], 0x76
mov byte [esp + 0x65], 0x7d
mov byte [esp + 0x66], 0x80
mov byte [esp + 0x67], 0x81
mov byte [esp + 0x68], 0x7b
mov byte [esp + 0x69], 0x87
mov byte [esp + 0x6a], 0x92
mov byte [esp + 0x6b], 0x4d
mov byte [esp + 0x6c], 0x4c
mov byte [esp + 0x6d], 0x48
mov byte [esp + 0x6e], 0x7e
mov byte [esp + 0x6f], bl
mov byte [esp + 0x70], bl
mov byte [esp + 0x71], 0
mov byte [esp + 0x44], 0x76
mov byte [esp + 0x45], 0x7d
mov byte [esp + 0x46], 0x80
mov byte [esp + 0x47], 0x81
mov byte [esp + 0x48], 0x7b
mov byte [esp + 0x49], 0x87
mov byte [esp + 0x4a], 0x93
mov byte [esp + 0x4b], 0x4d
mov byte [esp + 0x4c], 0x4c
mov byte [esp + 0x4d], 0x48
mov byte [esp + 0x4e], 0x7e
mov byte [esp + 0x4f], bl
mov byte [esp + 0x50], bl
mov byte [esp + 0x51], 0
mov eax, dword [0x40e344]
mov byte [esp + 0x24], 0x76
cmp eax, 3
mov byte [esp + 0x25], 0x7d
mov byte [esp + 0x26], 0x80
mov byte [esp + 0x27], 0x81
mov byte [esp + 0x28], 0x7b
mov byte [esp + 0x29], 0x87
mov byte [esp + 0x2a], 0x84
mov byte [esp + 0x2b], 0x4d
mov byte [esp + 0x2c], 0x4c
mov byte [esp + 0x2d], 0x48
mov byte [esp + 0x2e], 0x7e
mov byte [esp + 0x2f], bl
mov byte [esp + 0x30], bl
mov byte [esp + 0x31], 0
mov byte [esp + 0x34], 0x76
mov byte [esp + 0x35], 0x7d
mov byte [esp + 0x36], 0x80
mov byte [esp + 0x37], 0x81
mov byte [esp + 0x38], 0x7b
mov byte [esp + 0x39], 0x87
mov byte [esp + 0x3a], 0x94
mov byte [esp + 0x3b], 0x4d
mov byte [esp + 0x3c], 0x4c
mov byte [esp + 0x3d], 0x48
mov byte [esp + 0x3e], 0x7e
mov byte [esp + 0x3f], bl
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], 0
mov byte [esp + 0x54], 0x76
mov byte [esp + 0x55], 0x7d
mov byte [esp + 0x56], 0x80
mov byte [esp + 0x57], 0x81
mov byte [esp + 0x58], 0x7b
mov byte [esp + 0x59], 0x87
mov byte [esp + 0x5a], bl
mov byte [esp + 0x5b], 0x4d
mov byte [esp + 0x5c], 0x4c
mov byte [esp + 0x5d], 0x48
mov byte [esp + 0x5e], 0x7e
mov byte [esp + 0x5f], bl
mov byte [esp + 0x60], bl
mov byte [esp + 0x61], 0
jne 0x40146e
lea ecx, [esp + 0x74]
jmp 0x4014ad
cmp eax, 2
jne 0x40147a
lea edx, [esp + 0x64]
push edx
jmp 0x4014ae
cmp eax, 4
jne 0x401486
lea eax, [esp + 0x44]
push eax
jmp 0x4014ae
cmp eax, 7
jne 0x401491
lea ecx, [esp + 0x24]
jmp 0x4014ad
cmp eax, 6
jne 0x40149d
lea edx, [esp + 0x34]
push edx
jmp 0x4014ae
cmp eax, 8
jne 0x4014a9
lea eax, [esp + 0x54]
push eax
jmp 0x4014ae
lea ecx, [esp + 0x14]
push ecx
mov ebp, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push str.cfgamp32.dll
call ebp
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push str.cfgamp32.dll
xor esi, esi
call edi
test eax, eax
jle 0x4014e9
mov cl, byte [esi + str.cfgamp32.dll]
push str.cfgamp32.dll
add cl, 0xe6
mov byte [esi + str.cfgamp32.dll], cl
inc esi
call edi
cmp esi, eax
jl 0x4014ce
mov edi, str.cfgamp32.dll
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x138]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x138]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x40159b
lea ecx, [esp + 0x94]
push str.Sentinel_stage_failed
push ecx
call fcn.00403587
mov dl, byte [esp + 0x1b]
add esp, 8
lea ecx, [esp + 0x14]
mov byte [esp + 0x14], dl
push 0
call fcn.004025e0
lea edi, [esp + 0x94]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x94]
push ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.00402830
lea ecx, [esp + 0x14]
mov edx, dword [esp + 0x8c]
push ecx
push edx
lea ecx, [esp + 0x8c]
call fcn.00402650
push 1
lea ecx, [esp + 0x18]
call fcn.004025e0
lea edi, [esp + 0x23c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x138]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov byte [esp + 0x74], 0x76
mov eax, ecx
mov esi, edi
mov edi, edx
mov byte [esp + 0x75], 0x7d
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov al, 0x50
and ecx, 3
mov byte [esp + 0x76], 0x80
rep movsb byte es:[edi], byte [esi]
mov cl, 0x4b
mov byte [esp + 0x77], 0x81
mov byte [esp + 0x78], 0x7b
mov byte [esp + 0x79], 0x87
mov byte [esp + 0x7a], 0x8a
mov byte [esp + 0x7b], cl
mov byte [esp + 0x7c], al
mov byte [esp + 0x7d], 0x48
mov byte [esp + 0x7e], 0x7e
mov byte [esp + 0x7f], bl
mov byte [esp + 0x80], bl
mov byte [esp + 0x81], 0
mov byte [esp + 0x14], 0x76
mov byte [esp + 0x15], 0x7d
mov byte [esp + 0x16], 0x80
mov byte [esp + 0x17], 0x81
mov byte [esp + 0x18], 0x7b
mov byte [esp + 0x19], 0x87
mov byte [esp + 0x1a], 0x8c
mov byte [esp + 0x1b], cl
mov byte [esp + 0x1c], al
mov byte [esp + 0x1d], 0x48
mov byte [esp + 0x1e], 0x7e
mov byte [esp + 0x1f], bl
mov byte [esp + 0x20], bl
mov byte [esp + 0x21], 0
mov byte [esp + 0x54], 0x76
mov byte [esp + 0x55], 0x7d
mov byte [esp + 0x56], 0x80
mov byte [esp + 0x57], 0x81
mov byte [esp + 0x58], 0x7b
mov byte [esp + 0x59], 0x87
mov byte [esp + 0x5a], 0x92
mov byte [esp + 0x5b], cl
mov byte [esp + 0x5c], al
mov byte [esp + 0x5d], 0x48
mov byte [esp + 0x5e], 0x7e
mov byte [esp + 0x5f], bl
mov byte [esp + 0x60], bl
mov byte [esp + 0x61], 0
mov byte [esp + 0x34], 0x76
mov byte [esp + 0x35], 0x7d
mov byte [esp + 0x36], 0x80
mov byte [esp + 0x37], 0x81
mov byte [esp + 0x38], 0x7b
mov byte [esp + 0x39], 0x87
mov byte [esp + 0x3a], 0x93
mov byte [esp + 0x3b], cl
mov byte [esp + 0x3c], al
mov byte [esp + 0x3d], 0x48
mov byte [esp + 0x3e], 0x7e
mov byte [esp + 0x3f], bl
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], 0
mov byte [esp + 0x24], 0x76
mov byte [esp + 0x25], 0x7d
mov byte [esp + 0x26], 0x80
mov byte [esp + 0x27], 0x81
mov byte [esp + 0x28], 0x7b
mov byte [esp + 0x29], 0x87
mov byte [esp + 0x2a], 0x84
mov byte [esp + 0x2b], cl
mov byte [esp + 0x2c], al
mov byte [esp + 0x4c], al
mov byte [esp + 0x6c], al
mov eax, dword [0x40e344]
cmp eax, 3
mov byte [esp + 0x2d], 0x48
mov byte [esp + 0x2e], 0x7e
mov byte [esp + 0x2f], bl
mov byte [esp + 0x30], bl
mov byte [esp + 0x31], 0
mov byte [esp + 0x44], 0x76
mov byte [esp + 0x45], 0x7d
mov byte [esp + 0x46], 0x80
mov byte [esp + 0x47], 0x81
mov byte [esp + 0x48], 0x7b
mov byte [esp + 0x49], 0x87
mov byte [esp + 0x4a], 0x94
mov byte [esp + 0x4b], cl
mov byte [esp + 0x4d], 0x48
mov byte [esp + 0x4e], 0x7e
mov byte [esp + 0x4f], bl
mov byte [esp + 0x50], bl
mov byte [esp + 0x51], 0
mov byte [esp + 0x64], 0x76
mov byte [esp + 0x65], 0x7d
mov byte [esp + 0x66], 0x80
mov byte [esp + 0x67], 0x81
mov byte [esp + 0x68], 0x7b
mov byte [esp + 0x69], 0x87
mov byte [esp + 0x6a], bl
mov byte [esp + 0x6b], cl
mov byte [esp + 0x6d], 0x48
mov byte [esp + 0x6e], 0x7e
mov byte [esp + 0x6f], bl
mov byte [esp + 0x70], bl
mov byte [esp + 0x71], 0
jne 0x4017ad
lea ecx, [esp + 0x14]
jmp 0x4017ec
cmp eax, 2
jne 0x4017b9
lea edx, [esp + 0x54]
push edx
jmp 0x4017ed
cmp eax, 4
jne 0x4017c5
lea eax, [esp + 0x34]
push eax
jmp 0x4017ed
cmp eax, 7
jne 0x4017d0
lea ecx, [esp + 0x24]
jmp 0x4017ec
cmp eax, 6
jne 0x4017dc
lea edx, [esp + 0x44]
push edx
jmp 0x4017ed
cmp eax, 8
jne 0x4017e8
lea eax, [esp + 0x64]
push eax
jmp 0x4017ed
lea ecx, [esp + 0x74]
push ecx
push str.cfgamp16.dll
call ebp
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push str.cfgamp16.dll
xor esi, esi
call edi
test eax, eax
jle 0x401822
mov cl, byte [esi + str.cfgamp16.dll]
push str.cfgamp16.dll
add cl, 0xe6
mov byte [esi + str.cfgamp16.dll], cl
inc esi
call edi
cmp esi, eax
jl 0x401807
mov edi, str.cfgamp16.dll
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x138]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, edx
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, edx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
lea eax, [esp + 0x138]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x4018d4
lea ecx, [esp + 0x94]
push str.Temporary_sentinel_stage_failed
push ecx
call fcn.00403587
mov dl, byte [esp + 0x1b]
add esp, 8
lea ecx, [esp + 0x14]
mov byte [esp + 0x14], dl
push 0
call fcn.004025e0
lea edi, [esp + 0x94]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x94]
push ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.00402830
lea ecx, [esp + 0x14]
mov edx, dword [esp + 0x8c]
push ecx
push edx
lea ecx, [esp + 0x8c]
call fcn.00402650
push 1
lea ecx, [esp + 0x18]
call fcn.004025e0
lea edi, [esp + 0x23c]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x138]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov byte [esp + 0x44], 0x76
mov eax, ecx
mov esi, edi
mov edi, edx
mov byte [esp + 0x45], 0x7d
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov byte [esp + 0x46], 0x80
and ecx, 3
mov byte [esp + 0x47], 0x81
rep movsb byte es:[edi], byte [esi]
mov byte [esp + 0x48], 0x7b
mov byte [esp + 0x49], 0x87
mov byte [esp + 0x4a], 0x8d
mov byte [esp + 0x4b], 0x4d
mov byte [esp + 0x4c], 0x4c
mov byte [esp + 0x4d], 0x48
mov byte [esp + 0x4e], 0x7e
mov byte [esp + 0x4f], bl
mov byte [esp + 0x50], bl
mov byte [esp + 0x51], 0
mov byte [esp + 0x14], 0x76
mov byte [esp + 0x15], 0x7d
mov byte [esp + 0x16], 0x80
mov byte [esp + 0x17], 0x81
mov byte [esp + 0x18], 0x7b
mov byte [esp + 0x19], 0x87
mov byte [esp + 0x1a], 0x8e
mov byte [esp + 0x1b], 0x4d
mov byte [esp + 0x1c], 0x4c
mov byte [esp + 0x1d], 0x48
mov byte [esp + 0x1e], 0x7e
mov byte [esp + 0x1f], bl
mov byte [esp + 0x20], bl
mov byte [esp + 0x21], 0
mov byte [esp + 0x54], 0x76
mov byte [esp + 0x55], 0x7d
mov byte [esp + 0x56], 0x80
mov byte [esp + 0x57], 0x81
mov byte [esp + 0x58], 0x7b
mov byte [esp + 0x59], 0x87
mov byte [esp + 0x5a], 0x7d
mov byte [esp + 0x5b], 0x4d
mov byte [esp + 0x5c], 0x4c
mov byte [esp + 0x5d], 0x48
mov byte [esp + 0x5e], 0x7e
mov byte [esp + 0x5f], bl
mov byte [esp + 0x60], bl
mov byte [esp + 0x61], 0
mov byte [esp + 0x34], 0x76
mov byte [esp + 0x35], 0x7d
mov byte [esp + 0x36], 0x80
mov byte [esp + 0x37], 0x81
mov byte [esp + 0x38], 0x7b
mov byte [esp + 0x39], 0x87
mov byte [esp + 0x3a], 0x7e
mov byte [esp + 0x3b], 0x4d
mov byte [esp + 0x3c], 0x4c
mov byte [esp + 0x3d], 0x48
mov byte [esp + 0x3e], 0x7e
mov byte [esp + 0x3f], bl
mov byte [esp + 0x40], bl
mov byte [esp + 0x41], 0
mov byte [esp + 0x24], 0x76
mov byte [esp + 0x25], 0x7d
mov byte [esp + 0x26], 0x80
mov byte [esp + 0x27], 0x81
mov byte [esp + 0x28], 0x7b
mov byte [esp + 0x29], 0x87
mov byte [esp + 0x2a], 0x7f
mov byte [esp + 0x2b], 0x4d
mov byte [esp + 0x2c], 0x4c
mov byte [esp + 0x2d], 0x48
mov eax, dword [0x40e344]
mov byte [esp + 0x2e], 0x7e
cmp eax, 2
mov byte [esp + 0x2f], bl
mov byte [esp + 0x30], bl
mov byte [esp + 0x31], 0
jne 0x401a64
lea ecx, [esp + 0x14]
push ecx
jmp 0x401a8c
cmp eax, 4
jne 0x401a6f
lea edx, [esp + 0x54]
jmp 0x401a8b
cmp eax, 7
jne 0x401a7b
lea eax, [esp + 0x34]
push eax
jmp 0x401a8c
cmp eax, 3
jne 0x401a87
lea ecx, [esp + 0x24]
push ecx
jmp 0x401a8c
lea edx, [esp + 0x44]
push edx
push str.cfgams32.dll
call ebp
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push str.cfgams32.dll
xor esi, esi
call edi
test eax, eax
jle 0x401ac0
mov al, byte [esi + str.cfgams32.dll]
push str.cfgams32.dll
add al, 0xe6
mov byte [esi + str.cfgams32.dll], al
inc esi
call edi
cmp esi, eax
jl 0x401aa6
mov edi, str.cfgams32.dll
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x138]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebx
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
lea eax, [esp + 0x138]
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
test eax, eax
jne 0x401b72
lea ecx, [esp + 0x94]
push str.License_db_stage_failed
push ecx
call fcn.00403587
mov dl, byte [esp + 0x1b]
add esp, 8
lea ecx, [esp + 0x14]
mov byte [esp + 0x14], dl
push 0
call fcn.004025e0
lea edi, [esp + 0x94]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x94]
push ecx
push eax
lea ecx, [esp + 0x1c]
call fcn.00402830
lea ecx, [esp + 0x14]
mov edx, dword [esp + 0x8c]
push ecx
push edx
lea ecx, [esp + 0x8c]
call fcn.00402650
push 1
lea ecx, [esp + 0x18]
call fcn.004025e0
mov eax, dword [0x40e344]
cmp eax, 3
jne 0x401b83
mov eax, str.SOFTWAREMercury_InteractiveTopazLicense2PermanentLicense
jmp 0x401bc2
cmp eax, 2
jne 0x401b8f
mov eax, str.SOFTWAREMercury_InteractiveAstra_LoadTestLicense2PermanentLicense
jmp 0x401bc2
cmp eax, 4
jne 0x401b9b
mov eax, str.SOFTWAREMercury_InteractiveAstra_QuickTestLicense2PermanentLicense
jmp 0x401bc2
cmp eax, 7
jne 0x401ba7
mov eax, str.SOFTWAREMercury_InteractiveQuickTest_ProfessionalLicense2PermanentLicense
jmp 0x401bc2
cmp eax, 6
jne 0x401bb3
mov eax, str.SOFTWAREMercury_InteractiveWinRunner_iLicense2PermanentLicense
jmp 0x401bc2
cmp eax, 8
mov eax, str.SOFTWAREMercury_InteractiveTestDirectorLicense2PermanentLicense
je 0x401bc2
mov eax, str.SOFTWAREMercury_InteractiveLoadRunnerLicense2PermanentLicense
push 0x80000002
push eax
call section..text
add esp, 8
test eax, eax
je 0x401c23
lea eax, [esp + 0x94]
push str.License_stage_failed
push eax
call fcn.00403587
add esp, 8
lea ecx, [esp + 0x13]
lea edx, [esp + 0x94]
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.004024c0
lea eax, [esp + 0x14]
mov ecx, dword [esp + 0x8c]
push eax
push ecx
lea ecx, [esp + 0x8c]
call fcn.00402650
push 1
lea ecx, [esp + 0x18]
call fcn.004025e0
push 0x80000002
call fcn.004020a0
push eax
call section..text
add esp, 8
test eax, eax
je 0x401c89
lea edx, [esp + 0x94]
push str.Temporary_lock_stage_failed
push edx
call fcn.00403587
add esp, 8
lea eax, [esp + 0x13]
lea ecx, [esp + 0x94]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.004024c0
lea edx, [esp + 0x14]
lea ecx, [esp + 0x84]
mov eax, dword [esp + 0x8c]
push edx
push eax
call fcn.00402650
push 1
lea ecx, [esp + 0x18]
call fcn.004025e0
push 0x80000000
call fcn.00402140
push eax
call section..text
add esp, 8
test eax, eax
je 0x401cef
lea ecx, [esp + 0x94]
push str.Flag_stage_failed
push ecx
call fcn.00403587
add esp, 8
lea edx, [esp + 0x13]
lea eax, [esp + 0x94]
lea ecx, [esp + 0x14]
push edx
push eax
call fcn.004024c0
lea ecx, [esp + 0x14]
mov edx, dword [esp + 0x8c]
push ecx
push edx
lea ecx, [esp + 0x8c]
call fcn.00402650
push 1
lea ecx, [esp + 0x18]
call fcn.004025e0
push 0x80000000
call fcn.00402300
push eax
call section..text
add esp, 8
test eax, eax
je 0x401d55
lea eax, [esp + 0x94]
push str.Version_stage_failed
push eax
call fcn.00403587
add esp, 8
lea ecx, [esp + 0x13]
lea edx, [esp + 0x94]
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.004024c0
lea eax, [esp + 0x14]
mov ecx, dword [esp + 0x8c]
push eax
push ecx
lea ecx, [esp + 0x8c]
call fcn.00402650
push 1
lea ecx, [esp + 0x18]
call fcn.004025e0
push 0x80000001
call fcn.00402050
push eax
call section..text
add esp, 8
test eax, eax
je 0x401dbb
lea edx, [esp + 0x94]
push str.Warnings_stage_failed
push edx
call fcn.00403587
add esp, 8
lea eax, [esp + 0x13]
lea ecx, [esp + 0x94]
push eax
push ecx
lea ecx, [esp + 0x1c]
call fcn.004024c0
lea edx, [esp + 0x14]
lea ecx, [esp + 0x84]
mov eax, dword [esp + 0x8c]
push edx
push eax
call fcn.00402650
push 1
lea ecx, [esp + 0x18]
call fcn.004025e0
push 0x80000002
call fcn.004020f0
push eax
call section..text
add esp, 8
test eax, eax
je 0x401e21
lea ecx, [esp + 0x94]
push str.History_stage_failed
push ecx
call fcn.00403587
add esp, 8
lea edx, [esp + 0x13]
lea eax, [esp + 0x94]
lea ecx, [esp + 0x14]
push edx
push eax
call fcn.004024c0
lea ecx, [esp + 0x14]
mov edx, dword [esp + 0x8c]
push ecx
push edx
lea ecx, [esp + 0x8c]
call fcn.00402650
push 1
lea ecx, [esp + 0x18]
call fcn.004025e0
call fcn.00402000
mov edi, eax
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x340]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push 0x5c
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x344]
push ecx
call fcn.00403560
lea edx, [esp + 0x348]
push 0x80000002
push edx
mov byte [eax], 0
call section..text
add esp, 0x10
test eax, eax
je 0x401ec6
lea eax, [esp + 0x94]
push str.Temporary_license_stage_failed
push eax
call fcn.00403587
add esp, 8
lea ecx, [esp + 0x13]
lea edx, [esp + 0x94]
push ecx
push edx
lea ecx, [esp + 0x1c]
call fcn.004024c0
lea eax, [esp + 0x14]
mov ecx, dword [esp + 0x8c]
push eax
push ecx
lea ecx, [esp + 0x8c]
call fcn.00402650
push 1
lea ecx, [esp + 0x18]
call fcn.004025e0
cmp dword [0x40e344], 1
jne 0x401ee3
push str.LoadRunner
lea edx, [esp + 0xfc]
push str.Deleting_License_for__s
push edx
jmp 0x401ef8
mov eax, dword [esp + 0x2b60]
lea ecx, [esp + 0xf8]
push eax
push str.Deleting_License_for__s
push ecx
call fcn.00403587
add esp, 0xc
lea ecx, [esp + 0x84]
call fcn.00402630
test eax, eax
je 0x401fbe
mov ebx, dword [esp + 0x8c]
mov edx, dword [esp + 0x88]
cmp edx, ebx
mov byte [esp + 0x444], 0
je 0x401fa1
add edx, 4
mov edi, dword [edx]
test edi, edi
jne 0x401f3c
mov edi, 0x40a0f8
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea ebp, [esp + 0x444]
mov esi, edi
mov edi, ebp
mov ebp, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea ebp, [esp + 0x444]
and ecx, 3
add edx, 0x10
rep movsb byte es:[edi], byte [esi]
mov edi, 0x40b0d4
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov edi, ebp
mov ebp, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov ecx, ebp
dec edi
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebp
lea eax, [edx - 4]
and ecx, 3
cmp eax, ebx
rep movsb byte es:[edi], byte [esi]
jne 0x401f31
lea ecx, [esp + 0xf8]
push 0x40030
lea edx, [esp + 0x448]
push ecx
push edx
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea eax, [esp + 0xf8]
push 0x40040
push eax
push str.Performed_successfully
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 0x84]
call fcn.00402580
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x2b44
ret 0x10