Function at 0x100f5e50
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 edi, eax
mov dword [ebp - 0x24], edi
mov byte [ebp - 0xd], 1
jne 0x100f5edf
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 0x100f6024
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 - 0x2c], 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 0x100f5ff0
mov ecx, dword [ebx + 0x60]
mov edx, dword [ebx + 0x64]
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x20], edx
mov ebx, esi
jmp 0x100f5f83
mov ecx, dword [ebp - 0x28]
cmp dword [ebp - 0x20], 0x10
jb 0x100f5f91
mov eax, dword [ebp - 0x18]
mov edx, dword [eax + 0x50]
jmp 0x100f5f97
mov edx, dword [ebp - 0x18]
add edx, 0x50
mov esi, dword [ebx + 0x10]
mov eax, esi
cmp eax, esi
jae 0x100f5fa0
cmp esi, ecx
jae 0x100f5fa6
mov ecx, esi
cmp dword [ebx + 0x14], 0x10
jb 0x100f5fb0
mov eax, dword [ebx]
jmp 0x100f5fb2
mov eax, ebx
push ecx
push edx
push eax
call fcn.10065f00
add esp, 0xc
test eax, eax
jne 0x100f5fd8
mov eax, dword [ebp - 0x28]
cmp esi, eax
jae 0x100f5fcd
or eax, 0xffffffff
jmp 0x100f5fd6
xor ecx, ecx
cmp esi, eax
setne cl
mov eax, ecx
test eax, eax
sete al
test al, al
jne 0x100f5fed
mov eax, dword [ebp - 0x1c]
inc eax
add ebx, 0x70
mov dword [ebp - 0x1c], eax
cmp eax, edi
jl 0x100f5f80
mov ebx, dword [ebp - 0x18]
cmp dword [ebp - 0x1c], edi
je 0x100f601d
mov eax, dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x24]
cmp eax, ecx
jae 0x100f6009
mov edx, eax
sub edx, ecx
dec edx
cmp edx, dword [ebp + 8]
ja 0x100f6086
sub eax, ecx
cmp eax, dword [ebp + 8]
ja 0x100f6086
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x100f5f12
mov edi, dword [ebp - 0x24]
mov byte [ebp - 0xd], 0
cmp dword [ebp + 0xc], 0
jbe 0x100f6253
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 0x100f61b9
mov edx, dword [ebx + 0x60]
mov ecx, dword [ebx + 0x64]
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x20], ecx
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x18], eax
jmp 0x100f60e9
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
mov edx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x1c]
cmp dword [ebp - 0x20], 0x10
jb 0x100f60f4
mov ecx, dword [ebx + 0x50]
jmp 0x100f60f7
lea ecx, [ebx + 0x50]
mov edi, dword [esi + 0x10]
mov eax, edi
mov dword [ebp + 8], edi
cmp eax, edi
jae 0x100f6106
mov dword [ebp + 8], eax
cmp edi, edx
jae 0x100f610c
mov edx, edi
cmp dword [esi + 0x14], 0x10
jb 0x100f6114
mov esi, dword [esi]
cmp edx, 4
jb 0x100f6134
lea esp, [esp]
mov eax, dword [esi]
cmp eax, dword [ecx]
jne 0x100f6138
sub edx, 4
add ecx, 4
add esi, 4
cmp edx, 4
jae 0x100f6120
test edx, edx
je 0x100f6181
movzx eax, byte [esi]
movzx edi, byte [ecx]
sub eax, edi
jne 0x100f6173
cmp edx, 1
jbe 0x100f617e
movzx eax, byte [esi + 1]
movzx edi, byte [ecx + 1]
sub eax, edi
jne 0x100f6173
cmp edx, 2
jbe 0x100f617e
movzx eax, byte [esi + 2]
movzx edi, byte [ecx + 2]
sub eax, edi
jne 0x100f6173
cmp edx, 3
jbe 0x100f617e
movzx eax, byte [esi + 3]
movzx ecx, byte [ecx + 3]
sub eax, ecx
mov edi, dword [ebp + 8]
sar eax, 0x1f
or eax, 1
jmp 0x100f6183
mov edi, dword [ebp + 8]
xor eax, eax
test eax, eax
jne 0x100f619e
mov eax, dword [ebp - 0x28]
cmp edi, eax
jae 0x100f6193
or eax, 0xffffffff
jmp 0x100f619c
xor edx, edx
cmp edi, eax
setne dl
mov eax, edx
test eax, eax
sete al
test al, al
je 0x100f61a9
mov byte [ebp - 0xd], 1
add dword [ebp - 0x1c], 0x70
dec dword [ebp - 0x18]
jne 0x100f60e3
mov edi, dword [ebp - 0x24]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp eax, edi
jae 0x100f61d7
mov ecx, eax
sub ecx, edi
dec ecx
cmp ecx, dword [ebp + 0xc]
ja 0x100f6253
cmp byte [ebp - 0xd], 1
je 0x100f6253
sub eax, edi
cmp eax, dword [ebp + 0xc]
ja 0x100f6253
cmp byte [ebp - 0xd], 1
je 0x100f6253
push 0x14
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [ebp - 0xd], 0
jne 0x100f602e
mov edx, dword [ebx + 0x7c]
push edx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
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 [ebx + 0x7c]
push ecx
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8