Function at 0x4d7070
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x51712d
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
push ebx
push esi
push edi
mov eax, dword [0x550144]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
lea ecx, [ebp - 0x10]
mov dword [ebp - 0x14], 0
call fcn.0047d1f0
lea ecx, [ebp - 0x48]
mov dword [ebp - 4], 0
call fcn.004ce160
push str.StartInstall...
push 0x550bb8
mov byte [ebp - 4], 1
call fcn.0048d540
mov eax, dword [edi + 0x104]
add esp, 8
test eax, eax
je 0x4d70e1
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp dword [edi + 0x40], 0
jne 0x4d70f1
cmp dword [edi + 0x48], 0
jne 0x4d77ab
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x18], esp
push 0x535d90
call fcn.0044c020
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov byte [ebp - 4], 2
call ebx
sub eax, dword [edi + 0x1b8]
push eax
push 0x3a9c
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1c], esp
push str.costLoadImageToMem
call fcn.0044c020
mov byte [ebp - 4], 3
call fcn.00479f00
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.0047aae0
call ebx
push 0
push 0x1b59
mov ecx, edi
mov dword [edi + 0x1b8], eax
call fcn.004d5f00
call fcn.004ca4a0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x535d90
call fcn.0044c020
push 0x2ee5
sub esp, 0x18
mov byte [ebp - 4], 4
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.actionEnterLoadPackageConfig
call fcn.0044c020
mov byte [ebp - 4], 5
call fcn.00479f00
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.0047a6e0
lea eax, [ebp - 0x48]
mov ecx, edi
push eax
call fcn.004d19c0
lea ecx, [ebp - 0x48]
push ecx
lea ecx, [edi + 0x1b0]
call fcn.004dba00
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x535d90
call fcn.0044c020
mov byte [ebp - 4], 6
call ebx
sub eax, dword [edi + 0x1b8]
push eax
push 0x3a9d
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.costLoadPackageConfig
call fcn.0044c020
mov byte [ebp - 4], 7
call fcn.00479f00
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.0047aae0
call ebx
mov dword [edi + 0x1b8], eax
push 0x522c6c
push 5
mov ecx, edi
call fcn.004d5ec0
mov ecx, edi
call fcn.004d34b0
test eax, eax
jne 0x4d7247
mov esi, dword [edi]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x6a
mov ecx, edi
call dword [esi + 0x20]
push 0x522c78
push 0xa
push 3
mov ecx, edi
call fcn.004d5e80
jmp 0x4d77c6
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x535d90
call fcn.0044c020
mov byte [ebp - 4], 8
call ebx
sub eax, dword [edi + 0x1b8]
push eax
push 0x3a9e
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.costPrepareInstall
call fcn.0044c020
mov byte [ebp - 4], 9
call fcn.00479f00
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.0047aae0
call ebx
push 0
push 0x1b5a
mov ecx, edi
mov dword [edi + 0x1b8], eax
call fcn.004d5f00
cmp dword [edi + 0x40], 0
jne 0x4d72b7
cmp dword [edi + 0x48], 0
jne 0x4d77ab
push str.ck_W_e
push 0x19
mov ecx, edi
call fcn.004d5ec0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x535d90
call fcn.0044c020
push 0x2ee6
sub esp, 0x18
mov byte [ebp - 4], 0xa
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.actionEnterExtractProductFiles
call fcn.0044c020
mov byte [ebp - 4], 0xb
call fcn.00479f00
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.0047a6e0
push str.ExtractProductFiles_begin...
push 0x550bb8
call fcn.0048d540
add esp, 8
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
call fcn.004d16a0
test eax, eax
jne 0x4d7344
push 0x522cc0
push 0x23
push dword [ebp - 0x14]
mov ecx, edi
call fcn.004d5e80
mov ecx, edi
call fcn.004d3b00
jmp 0x4d77c6
push str.ExtractProductFiles_end...
push 0x550bb8
call fcn.0048d540
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x535d90
call fcn.0044c020
mov byte [ebp - 4], 0xc
call ebx
sub eax, dword [edi + 0x1b8]
push eax
push 0x3aa3
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.costExtractProductFiles
call fcn.0044c020
mov byte [ebp - 4], 0xd
call fcn.00479f00
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.0047aae0
cmp dword [edi + 0x40], 0
jne 0x4d73ad
cmp dword [edi + 0x48], 0
jne 0x4d77ab
push 0
push 0x1b5b
mov ecx, edi
call fcn.004d5f00
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
call fcn.004d1ef0
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 0xe
call fcn.0048d300
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 1
call fcn.0044c080
cmp dword [edi + 0x10], 0
je 0x4d743a
lea ecx, [ebp - 0x10]
call fcn.0044f760
test eax, eax
jle 0x4d743a
lea ecx, [edi + 0x4c]
call fcn.0048d370
test al, al
je 0x4d7401
xor eax, eax
jmp 0x4d7409
lea ecx, [edi + 0x4c]
call fcn.0044c0a0
push eax
lea ecx, [ebp - 0x10]
call fcn.0044c0a0
push eax
lea ecx, [edi + 0x5c]
call fcn.0044c0a0
push eax
lea ecx, [edi + 0x60]
call fcn.0044c0a0
push eax
call fcn.004b5650
add esp, 0x10
mov ecx, edi
push eax
push 0x213e
call fcn.004d5f00
push str.ck_W_h
push 0x28
mov ecx, edi
call fcn.004d5ec0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x535d90
call fcn.0044c020
push 0x2ee8
sub esp, 0x18
mov byte [ebp - 4], 0xf
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.actionEnterCrcValidate
call fcn.0044c020
mov byte [ebp - 4], 0x10
call fcn.00479f00
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.0047a6e0
call ebx
push str.CRC_setup_files_begin...
push 0x550bb8
mov dword [edi + 0x1b8], eax
call fcn.0048d540
add esp, 8
mov ecx, edi
call fcn.004d7d80
test eax, eax
jne 0x4d75a8
push 0x522d20
push 0x2d
mov ecx, edi
call fcn.004d5ec0
push str.Fix_files_begin...
push 0x550bb8
call fcn.0048d540
sub esp, 0x10
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x535d90
call fcn.0044c020
push 0x2ee9
sub esp, 0x18
mov byte [ebp - 4], 0x11
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.actionEnterFixFile
call fcn.0044c020
mov byte [ebp - 4], 0x12
call fcn.00479f00
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.0047a6e0
call ebx
mov ecx, edi
mov esi, eax
call fcn.004d17b0
sub esp, 0x18
mov dword [ebp - 0x14], eax
mov ecx, esp
mov dword [ebp - 0x1c], esp
push eax
push ecx
call fcn.00469300
add esp, 8
mov byte [ebp - 4], 0x13
call ebx
sub eax, esi
push eax
push 0x3aa5
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.costFixFiles
call fcn.0044c020
mov byte [ebp - 4], 0x14
call fcn.00479f00
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.0047aae0
push str.Fix_files_end...
push 0x550bb8
call fcn.0048d540
add esp, 8
cmp dword [edi + 0x40], 0
jne 0x4d7586
cmp dword [edi + 0x48], 0
jne 0x4d77ab
cmp dword [ebp - 0x14], 0
jne 0x4d75a8
push 0x522d68
push 0x32
push 0xd
mov ecx, edi
call fcn.004d5e80
mov ecx, edi
call fcn.004d3b00
jmp 0x4d77c6
sub esp, 0x18
mov eax, esp
mov dword [ebp - 0x1c], esp
push dword [edi + 0x40]
push eax
call fcn.00469300
add esp, 8
mov byte [ebp - 4], 0x15
call ebx
sub eax, dword [edi + 0x1b8]
push eax
push 0x3aa4
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.costCrcValidateFiles
call fcn.0044c020
mov byte [ebp - 4], 0x16
call fcn.00479f00
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.0047aae0
push 0
push 0x1b5c
mov ecx, edi
call fcn.004d5f00
push str.CRC_setup_files_end...
push 0x550bb8
call fcn.0048d540
add esp, 8
cmp dword [edi + 0x40], 0
jne 0x4d7624
cmp dword [edi + 0x48], 0
jne 0x4d77ab
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
call fcn.004d38a0
mov ecx, edi
test eax, eax
jne 0x4d7648
push 0x522cc0
push 0x37
push 0x11
call fcn.004d5e80
jmp 0x4d77c6
push 0
push 0x1b5d
call fcn.004d5f00
cmp dword [edi + 0x40], 0
jne 0x4d7664
cmp dword [edi + 0x48], 0
jne 0x4d77ab
push 0x522da8
push 0x3c
mov ecx, edi
call fcn.004d5ec0
cmp dword [edi + 0x18], 0
je 0x4d7698
mov ecx, edi
call fcn.004d36a0
test eax, eax
jne 0x4d7698
push 0x522dbc
push 0x41
push 0xa
mov ecx, edi
call fcn.004d5e80
jmp 0x4d77c6
call ebx
push 0x522dcc
push 0x550bb8
mov esi, eax
call fcn.0048d880
mov ecx, dword [edi + 8]
add esp, 8
test ecx, ecx
je 0x4d76d8
push 0x7530
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
je 0x4d76d8
push dword [edi + 8]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 8], 0
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x535d90
call fcn.0044c020
mov byte [ebp - 4], 0x17
call ebx
sub eax, esi
push eax
push 0x3aa2
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.costWaitUninstRun
call fcn.0044c020
mov byte [ebp - 4], 0x18
call fcn.00479f00
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.0047aae0
call ebx
sub eax, esi
push eax
push 0x522dec
push 0x550bb8
call fcn.0048d880
sub esp, 0xc
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x535d90
call fcn.0044c020
push 0x2eeb
sub esp, 0x18
mov byte [ebp - 4], 0x19
mov ecx, esp
mov dword [ebp - 0x18], esp
push str.actionEnterInstallAfter
call fcn.0044c020
mov byte [ebp - 4], 0x1a
call fcn.00479f00
mov ecx, eax
mov byte [ebp - 4], 1
call fcn.0047a6e0
mov ecx, edi
call fcn.004d80a0
mov ecx, edi
call fcn.004d8230
lea ecx, [edi + 0x1b0]
call fcn.004db9e0
cmp dword [edi + 0x40], 0
jne 0x4d7798
cmp dword [edi + 0x48], 0
jne 0x4d77ab
mov ecx, edi
call fcn.004d3410
cmp dword [edi + 0x40], 0
jne 0x4d77bd
cmp dword [edi + 0x48], 0
je 0x4d77bd
mov eax, dword [edi]
mov ecx, edi
push 0x10
call dword [eax + 0x1c]
mov ecx, edi
call fcn.004d12c0
jmp 0x4d77c6
mov eax, dword [edi]
mov ecx, edi
push 0
call dword [eax + 0x1c]
mov ecx, edi
call fcn.004d37e0
lea ecx, [ebp - 0x48]
call fcn.004ce490
lea ecx, [ebp - 0x10]
call fcn.0044c080
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret