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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46f87f
mov eax, dword fs:[0]
push eax
sub esp, 0x40
push esi
mov eax, dword [0x4a0b70]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x44], ecx
push str.DownloadArmUpdate...
lea ecx, [ebp - 0x34]
call fcn.00401ee0
mov dword [ebp - 4], 0
push 0
lea eax, [ebp - 0x34]
push eax
push 2
call fcn.00467240
add esp, 0xc
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x34]
call fcn.00405260
mov ecx, 0x4a4b78
call fcn.004067f0
mov ecx, eax
call fcn.00402a40
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x14], 0
cmp dword [ebp - 0x10], 0
je 0x456dc9
mov ecx, 0x4a4b78
call fcn.004030c0
mov dword [ebp - 0x1c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x2c], eax
mov edx, dword [ebp - 0x1c]
mov dword [edx + 0x50], 0
lea eax, [ebp - 0x18]
push eax
mov ecx, dword [ebp - 0x44]
call fcn.00401040
mov dword [ebp - 4], 1
mov ecx, dword [ebp - 0x10]
call fcn.00402de0
push eax
lea ecx, [ebp - 0x18]
call fcn.00401920
lea ecx, [ebp - 0x18]
push ecx
mov ecx, dword [ebp - 0x10]
call fcn.00406710
lea edx, [ebp - 0x18]
push edx
call fcn.00401020
add esp, 4
test eax, eax
je 0x456b25
mov ecx, dword [ebp - 0x10]
call fcn.00407b10
push eax
lea ecx, [ebp - 0x18]
call fcn.00401fc0
push eax
call fcn.00450d10
add esp, 8
test eax, eax
je 0x456b19
push 1
mov ecx, dword [ebp - 0x10]
call fcn.004066f0
mov dword [ebp - 0x14], 1
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x50], 1
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x38], 0
jmp 0x456b25
lea edx, [ebp - 0x18]
push edx
mov ecx, dword [ebp - 0x44]
call fcn.00454770
cmp dword [ebp - 0x14], 0
jne 0x456ca0
mov dword [ebp - 0x2c], 1
mov ecx, dword [ebp - 0x10]
call fcn.00406730
push eax
lea ecx, [ebp - 0x20]
call fcn.00401fa0
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x24]
call fcn.004051c0
mov byte [ebp - 4], 3
lea eax, [ebp - 0x24]
push eax
push str.ARM_Update
mov ecx, 0x4a4b5c
call fcn.00401fc0
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call fcn.00448820
add esp, 0x10
test eax, eax
jne 0x456b88
lea ecx, [ebp - 0x24]
push ecx
lea ecx, [ebp - 0x20]
call fcn.00402990
push 0x927c0
lea edx, [ebp - 0x2c]
push edx
mov ecx, dword [ebp - 0x10]
call fcn.00406730
mov ecx, eax
call fcn.00401fc0
push eax
mov ecx, dword [ebp - 0x10]
call fcn.00407ad0
push eax
call fcn.004561a0
add esp, 0x10
mov dword [ebp - 0x28], eax
cmp dword [ebp - 0x28], 6
jne 0x456c7f
push str.AdobeARM_Downloaded:
lea ecx, [ebp - 0x38]
call fcn.00401ee0
mov byte [ebp - 4], 4
push 0
mov ecx, dword [ebp - 0x10]
call fcn.00407ad0
push eax
lea eax, [ebp - 0x38]
push eax
push 2
call fcn.00466c70
add esp, 0x10
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x38]
call fcn.00405260
mov ecx, dword [ebp - 0x10]
call fcn.00407b10
push eax
lea ecx, [ebp - 0x18]
call fcn.00401fc0
push eax
call fcn.00450d10
add esp, 8
test eax, eax
je 0x456c30
push 1
mov ecx, dword [ebp - 0x10]
call fcn.004066f0
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x50], 1
mov dword [ebp - 0x14], 1
jmp 0x456c7f
lea edx, [ebp - 0x18]
push edx
push str.ARM_Update_signiture_validation_failed:
lea eax, [ebp - 0x3c]
push eax
call fcn.004015a0
add esp, 0xc
mov dword [ebp - 0x48], eax
mov ecx, dword [ebp - 0x48]
mov dword [ebp - 0x4c], ecx
mov byte [ebp - 4], 5
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
mov edx, dword [ebp - 0x4c]
push edx
push 0x516
mov ecx, 0x4a4b78
call fcn.00401100
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x3c]
call fcn.00405260
mov dword [ebp - 0x14], 0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x2c]
mov dword [eax + 0x38], ecx
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x24]
call fcn.00405260
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x20]
call fcn.00405260
cmp dword [ebp - 0x14], 0
jne 0x456d75
mov ecx, dword [ebp - 0x10]
call fcn.00406730
push eax
lea edx, [ebp - 0x18]
push edx
mov ecx, dword [ebp - 0x44]
call fcn.00454930
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x456d75
push str.BITs_failed__ARM_Update_downloaded_successfully_using_DownloadFileDirectly.
lea ecx, [ebp - 0x30]
call fcn.00401ee0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x10]
call fcn.00407b10
push eax
lea ecx, [ebp - 0x18]
call fcn.00401fc0
push eax
call fcn.00450d10
add esp, 8
test eax, eax
je 0x456d35
push 1
mov ecx, dword [ebp - 0x10]
call fcn.004066f0
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x50], 1
lea ecx, [ebp - 0x30]
call fcn.00401fc0
push eax
mov ecx, dword [ebp - 0x1c]
add ecx, 0x40
call fcn.00403920
push 0
lea ecx, [ebp - 0x30]
push ecx
push 2
call fcn.00467240
add esp, 0xc
jmp 0x456d69
mov dword [ebp - 0x14], 0
push str.ARM_Update_is_not_valid_after_DownloadFilesDirectly
lea ecx, [ebp - 0x40]
call fcn.00401ee0
mov byte [ebp - 4], 7
push 0
lea edx, [ebp - 0x40]
push edx
push 1
call fcn.00467240
add esp, 0xc
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x40]
call fcn.00405260
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x30]
call fcn.00405260
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x34], 1
mov ecx, dword [ebp - 0x10]
call fcn.00407b10
cdq
and edx, 0x3ff
add eax, edx
sar eax, 0xa
mov ecx, dword [ebp - 0x1c]
mov dword [ecx + 0x30], eax
mov edx, dword [ebp - 0x1c]
or esi, 0xffffffff
sub esi, dword [edx + 0x2c]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
add esi, eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x2c], esi
push 2
mov ecx, dword [ebp - 0x1c]
call fcn.00467b50
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x18]
call fcn.00405260
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov esp, ebp
pop ebp
ret