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

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
push dword [ebp + 0x1c]
mov esi, ecx
call sym.RTCore.dll_public:_int___thiscall_CLowLevelHwInterfaceATI::I2CIsBusDisconnected_unsigned_long_int_
test eax, eax
je 0x1000aa1c
xor eax, eax
jmp 0x1000abb6
push ebx
push edi
push 0x21c
push dword [ebp + 0x1c]
mov ecx, esi
call sym.RTCore.dll_public:_void___thiscall_CLowLevelHwInterfaceATI::RV8xx_I2CReset_unsigned_long_int__unsigned_long_int_
push 0x300000
push 0x100000
push 0x6064
mov ecx, esi
call sym.RTCore.dll_public:_void___thiscall_CLowLevelHwInterfaceATI::WriteRegisterUlongMasked_unsigned_long_int__unsigned_long_int__unsigned_long_int_
mov eax, dword [esi]
push 0x11100
push 0x60bc
mov ecx, esi
call dword [eax + 0x74]
mov eax, dword [esi]
push 0x13001
push 0x60c0
mov ecx, esi
call dword [eax + 0x74]
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
mov ecx, ebx
or ecx, 0xffc00000
shl ecx, 9
push ecx
mov edi, 0x60cc
push edi
mov ecx, esi
call dword [eax + 0x74]
mov ecx, dword [ebp + 0xc]
mov eax, dword [esi]
or ecx, 0xff800100
shl ecx, 8
push ecx
push edi
mov ecx, esi
call dword [eax + 0x74]
mov eax, dword [esi]
shl ebx, 9
add ebx, 0x100
or ebx, 0x80020000
push ebx
push edi
mov ecx, esi
call dword [eax + 0x74]
push 1
push 1
push 0x6064
mov ecx, esi
call sym.RTCore.dll_public:_void___thiscall_CLowLevelHwInterfaceATI::WriteRegisterUlongMasked_unsigned_long_int__unsigned_long_int__unsigned_long_int_
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov dword [ebp - 4], eax
mov dword [ebp + 8], 1
mov eax, dword [esi]
push 0x6070
mov ecx, esi
call dword [eax + 0x68]
mov dword [ebp + 0xc], eax
test al, 4
jne 0x1000ab08
call ebx
sub eax, dword [ebp - 4]
cmp eax, dword [esi + 0x78]
jb 0x1000aad0
mov eax, dword [ebp + 0xc]
test al, 4
jne 0x1000ab08
push dword [ebp + 0x1c]
mov ecx, esi
call sym.RTCore.dll_public:_void___thiscall_CLowLevelHwInterfaceATI::I2CDisconnectBus_unsigned_long_int_
mov eax, dword [ebp + 0xc]
xor ecx, ecx
mov dword [ebp + 8], ecx
jmp 0x1000ab0a
xor ecx, ecx
test al, 0x10
je 0x1000ab11
mov dword [ebp + 8], ecx
test al, 0x20
je 0x1000ab18
mov dword [ebp + 8], ecx
test al, 0x40
je 0x1000ab1f
mov dword [ebp + 8], ecx
test al, al
jns 0x1000ab26
mov dword [ebp + 8], ecx
test eax, 0x100
je 0x1000ab30
mov dword [ebp + 8], ecx
test eax, 0x1000
je 0x1000ab3a
mov dword [ebp + 8], ecx
test eax, 0x2000
je 0x1000ab44
mov dword [ebp + 8], ecx
mov ebx, dword [esi]
push 0x606c
mov ecx, esi
call dword [ebx + 0x68]
or eax, 0x2222
push eax
push 0x606c
mov ecx, esi
call dword [ebx + 0x74]
xor ebx, ebx
cmp dword [ebp + 8], ebx
je 0x1000ab90
mov eax, dword [esi]
push 0x80030001
push edi
mov ecx, esi
call dword [eax + 0x74]
cmp dword [ebp + 0x14], ebx
jbe 0x1000ab90
mov eax, dword [esi]
push edi
mov ecx, esi
call dword [eax + 0x68]
mov ecx, dword [ebp + 0x10]
shr eax, 8
mov byte [ebx + ecx], al
inc ebx
cmp ebx, dword [ebp + 0x14]
jb 0x1000ab79
mov eax, dword [esi]
push 2
mov edi, 0x6064
push edi
mov ecx, esi
call dword [eax + 0x7c]
push 1
call fcn.100147a2
mov eax, dword [esi]
pop ecx
push 0
push edi
mov ecx, esi
call dword [eax + 0x7c]
mov eax, dword [ebp + 8]
pop edi
pop ebx
pop esi
leave
ret 0x18