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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1020c788
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push esi
push edi
mov eax, dword [0x105520d0]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x18], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp byte [ebx + 0x6f], 0
mov dword [ebp - 0x2c], eax
mov byte [ebp - 0xd], 1
jne 0x100f5add
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 8], esp
push 0x5b
xor esi, esi
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], esi
push str.QpstServer::reset___QpstServer::connect_must_be_called_before_calling_this_member_function.
mov byte [ecx], 0
call fcn.10003320
lea ecx, [ebp - 0x50]
call fcn.100f4f90
push eax
lea ecx, [ebp - 0x38]
mov dword [ebp - 4], esi
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_class_std::exception_const__]
push 0x10431bb0
lea eax, [ebp - 0x38]
push eax
mov dword [ebp - 0x38], vtable.QpstServer::Exception.0
call sub.MSVCR100.dll__CxxThrowException
mov ecx, dword [ebx + 0x7c]
push 0xffffffffffffffff
push ecx
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov ecx, dword [ebx + 4]
push 0xffffffffffffffff
lea edx, [ebp - 0x14]
push edx
push ebx
mov dword [ebp - 0x14], 0x100f4640
call fcn.100e7fc0
mov ecx, ebx
call fcn.100f5230
cmp dword [ebp + 8], 0
jbe 0x100f5dd3
mov ecx, dword [ebx + 4]
push 0xffffffffffffffff
lea eax, [ebp - 0x14]
push eax
push ebx
mov dword [ebp - 0x14], 0x100f46c0
call fcn.100e7fc0
mov ecx, ebx
call fcn.100f5230
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebx + 0xb0]
mov ecx, dword [ebx + 0xb4]
mov dword [ebp - 0x28], eax
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 6
mov edi, edx
shr edi, 0x1f
add edi, edx
mov dword [ebp - 0x1c], 0
test edi, edi
jle 0x100f5be6
mov ecx, dword [ebx + 0x60]
mov edx, dword [ebx + 0x64]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], edx
mov ebx, esi
jmp 0x100f5b79
mov ecx, dword [ebp - 0x24]
cmp dword [ebp - 0x20], 0x10
jb 0x100f5b87
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x50]
jmp 0x100f5b8d
mov edx, dword [ebp - 0x18]
add edx, 0x50
mov esi, dword [ebx + 0x10]
mov eax, esi
cmp eax, esi
jae 0x100f5b96
cmp esi, ecx
jae 0x100f5b9c
mov ecx, esi
cmp dword [ebx + 0x14], 0x10
jb 0x100f5ba6
mov eax, dword [ebx]
jmp 0x100f5ba8
mov eax, ebx
push ecx
push edx
push eax
call fcn.10065f00
add esp, 0xc
test eax, eax
jne 0x100f5bce
mov eax, dword [ebp - 0x24]
cmp esi, eax
jae 0x100f5bc3
or eax, 0xffffffff
jmp 0x100f5bcc
xor ecx, ecx
cmp esi, eax
setne cl
mov eax, ecx
test eax, eax
sete al
test al, al
jne 0x100f5be3
mov eax, dword [ebp - 0x1c]
inc eax
add ebx, 0x70
mov dword [ebp - 0x1c], eax
cmp eax, edi
jl 0x100f5b76
mov ebx, dword [ebp - 0x18]
cmp dword [ebp - 0x1c], edi
je 0x100f5c13
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
cmp eax, ecx
jae 0x100f5bff
mov edx, eax
sub edx, ecx
dec edx
cmp edx, dword [ebp + 8]
ja 0x100f5c6f
sub eax, ecx
cmp eax, dword [ebp + 8]
ja 0x100f5c6f
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x100f5b10
mov byte [ebp - 0xd], 0
mov ecx, dword [ebx + 4]
push 0xffffffffffffffff
lea edx, [ebp - 0x14]
push edx
push ebx
mov dword [ebp - 0x14], 0x100f46c0
call fcn.100e7fc0
mov ecx, ebx
call fcn.100f5230
mov esi, dword [ebx + 0xb0]
mov ecx, dword [ebx + 0xb4]
sub ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x100f5d9c
mov edx, dword [ebx + 0x60]
mov ecx, dword [ebx + 0x64]
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x28], eax
jmp 0x100f5cd6
mov eax, dword [ebx + 0x7c]
push eax
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 8], esp
push 0x2a
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push str.QpstServer::reset___The_phone_never_reset.
mov byte [ecx], 0
call fcn.10003320
lea ecx, [ebp - 0x50]
call fcn.100f4f90
push eax
lea ecx, [ebp - 0x38]
mov dword [ebp - 4], 1
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_class_std::exception_const__]
push 0x10431bb0
lea ecx, [ebp - 0x38]
push ecx
mov dword [ebp - 0x38], vtable.QpstServer::Exception.0
call sub.MSVCR100.dll__CxxThrowException
lea esp, [esp]
mov edx, dword [ebp - 0x24]
mov esi, dword [ebp - 0x1c]
cmp dword [ebp - 0x20], 0x10
jb 0x100f5ce1
mov ecx, dword [ebx + 0x50]
jmp 0x100f5ce4
lea ecx, [ebx + 0x50]
mov edi, dword [esi + 0x10]
mov eax, edi
mov dword [ebp - 0x18], edi
cmp eax, edi
jae 0x100f5cf3
mov dword [ebp - 0x18], eax
cmp edi, edx
jae 0x100f5cf9
mov edx, edi
cmp dword [esi + 0x14], 0x10
jb 0x100f5d01
mov esi, dword [esi]
cmp edx, 4
jb 0x100f5d1a
mov eax, dword [esi]
cmp eax, dword [ecx]
jne 0x100f5d1e
sub edx, 4
add ecx, 4
add esi, 4
cmp edx, 4
jae 0x100f5d06
test edx, edx
je 0x100f5d67
movzx eax, byte [esi]
movzx edi, byte [ecx]
sub eax, edi
jne 0x100f5d59
cmp edx, 1
jbe 0x100f5d64
movzx eax, byte [esi + 1]
movzx edi, byte [ecx + 1]
sub eax, edi
jne 0x100f5d59
cmp edx, 2
jbe 0x100f5d64
movzx eax, byte [esi + 2]
movzx edi, byte [ecx + 2]
sub eax, edi
jne 0x100f5d59
cmp edx, 3
jbe 0x100f5d64
movzx eax, byte [esi + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
mov edi, dword [ebp - 0x18]
sar eax, 0x1f
or eax, 1
jmp 0x100f5d69
mov edi, dword [ebp - 0x18]
xor eax, eax
test eax, eax
jne 0x100f5d84
mov eax, dword [ebp - 0x24]
cmp edi, eax
jae 0x100f5d79
or eax, 0xffffffff
jmp 0x100f5d82
xor edx, edx
cmp edi, eax
setne dl
mov eax, edx
test eax, eax
sete al
test al, al
je 0x100f5d8f
mov byte [ebp - 0xd], 1
add dword [ebp - 0x1c], 0x70
dec dword [ebp - 0x28]
jne 0x100f5cd0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [ebp - 0x2c]
cmp eax, esi
jae 0x100f5db9
mov ecx, eax
sub ecx, esi
dec ecx
cmp ecx, dword [ebp + 8]
ja 0x100f5dd3
cmp byte [ebp - 0xd], 1
je 0x100f5dd3
sub eax, esi
cmp eax, dword [ebp + 8]
ja 0x100f5dd3
cmp byte [ebp - 0xd], 1
je 0x100f5dd3
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x100f5c17
mov edx, dword [ebx + 0x7c]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
cmp byte [ebp - 0xd], 0
jne 0x100f5e36
sub esp, 0x1c
mov ecx, esp
mov dword [ebp + 8], esp
push 0x3c
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push str.QpstServer::reset___The_phone_never_recovered_from_the_reset
mov byte [ecx], 0
call fcn.10003320
lea ecx, [ebp - 0x5c]
call fcn.100f4f90
push eax
lea ecx, [ebp - 0x44]
mov dword [ebp - 4], 2
call dword [sym.imp.MSVCR100.dll_public:_void___thiscall_std::exception::constructor_class_std::exception_const__]
push 0x10431bb0
lea eax, [ebp - 0x44]
push eax
mov dword [ebp - 0x44], vtable.QpstServer::Exception.0
call sub.MSVCR100.dll__CxxThrowException
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4