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

Disassembly:
push 0xb4
mov eax, 0x46fa80
call fcn.00454b83
mov esi, ecx
and dword [ebp - 0xc0], 0
mov ebx, dword [ebp + 8]
mov eax, dword [esi]
mov edi, dword [ebp + 0xc]
lea ecx, [ebp - 0x70]
push ecx
mov ecx, esi
mov dword [ebp - 0xbc], ebx
call dword [eax + 0x24]
and dword [ebp - 4], 0
push ebx
lea ecx, [ebp - 0x70]
call fcn.00407ec0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x68]
cmp dword [ebp - 0x5c], 0x10
push 0
push eax
lea ecx, [ebp - 0x70]
cmovae ecx, dword [ebp - 0x70]
push edi
push ecx
mov ecx, esi
call fcn.0041c6c3
push edi
lea ecx, [ebp - 0x70]
call fcn.00407ec0
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x28]
call fcn.0042f884
mov ecx, eax
xor ebx, ebx
inc ebx
mov byte [ebp - 4], bl
cmp dword [ecx + 0x14], 8
jb 0x41ca85
mov ecx, dword [ecx]
mov eax, dword [esi]
push ecx
mov ecx, esi
call dword [eax + 0xa8]
lea ecx, [ebp - 0x28]
call fcn.00408690
lea ecx, [ebp - 0xa0]
call fcn.0041b1c9
push dword [ebp - 0xbc]
lea ecx, [ebp - 0x20]
call fcn.0042695e
push str.Category
lea ecx, [ebp - 0xb8]
mov byte [ebp - 4], 3
call fcn.00407d70
push ecx
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0xb8]
push eax
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 4
call fcn.00443b0b
lea ecx, [ebp - 0xb8]
call fcn.00404060
push edi
lea ecx, [ebp - 0x20]
call fcn.0042695e
push str.Result
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 5
call fcn.00407d70
push ecx
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 6
call fcn.00443b0b
lea ecx, [ebp - 0x40]
call fcn.00404060
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x68]
mov dword [ebp - 0x14], 0x4206
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x489b10]
cvtpd2ps xmm0, xmm0
divss xmm0, dword [0x489af0]
cvtps2pd xmm0, xmm0
movsd qword [ebp - 0x20], xmm0
push str.Duration
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 7
call fcn.00407d70
push ecx
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0xa0]
mov byte [ebp - 4], 8
call fcn.00443b0b
lea ecx, [ebp - 0x40]
call fcn.00404060
push str.BootstrapperDuration
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 2
call fcn.00407d70
mov byte [ebp - 4], 9
push ebx
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 0x5c]
push eax
lea eax, [ebp - 0x40]
push eax
lea ecx, [ebp - 0xa0]
call fcn.00443b5e
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 2
call fcn.00404060
cmp edi, str.Success
je 0x41cbf4
mov eax, dword [esi]
lea ecx, [ebp - 0x40]
push ecx
mov ecx, esi
call dword [eax + 0x24]
mov byte [ebp - 4], 0xa
mov edx, str.Client
mov ecx, eax
mov dword [ebp - 0xc0], ebx
call fcn.00414210
test al, al
jne 0x41cbf6
xor bl, bl
mov dword [ebp - 4], 2
test byte [ebp - 0xc0], 1
je 0x41cc0e
lea ecx, [ebp - 0x40]
call fcn.00404060
test bl, bl
je 0x41ccbe
mov edx, esi
lea ecx, [ebp - 0x58]
call fcn.00432289
mov byte [ebp - 4], 0xb
cmp dword [ebp - 0x48], 0
jne 0x41cc55
mov edx, esi
lea ecx, [ebp - 0x40]
call fcn.004320d6
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0xc
cmp ecx, eax
je 0x41cc49
push 0xffffffffffffffff
push 0
push eax
call fcn.00408b70
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 0xb
call fcn.00404060
push dword [ebp - 0xbc]
lea ecx, [ebp - 0x28]
call fcn.00407d70
push edi
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0xd
call fcn.00407ec0
cmp dword [ebp - 0x48], 0
jne 0x41cc86
lea ecx, [esi + 0xbc]
cmp dword [ecx + 0x14], 0x10
jb 0x41cc91
mov ecx, dword [ecx]
jmp 0x41cc91
cmp dword [ebp - 0x44], 0x10
lea ecx, [ebp - 0x58]
cmovae ecx, dword [ebp - 0x58]
cmp dword [ebp - 0x14], 0x10
push 0
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push ecx
push eax
lea ecx, [esi + 0x160]
call fcn.00440e61
add esp, 0xc
lea ecx, [ebp - 0x28]
call fcn.00404060
lea ecx, [ebp - 0x58]
call fcn.00404060
lea ecx, [ebp - 0x88]
call fcn.00404060
lea ecx, [ebp - 0xa0]
call fcn.00429759
lea ecx, [ebp - 0x70]
call fcn.00404060
call fcn.00454b32
ret 8