Function at 0x10016fd0
Capabilities:
Terminate thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword [esi + 0x59754]
sub esp, 8
test eax, eax
push ebx
push edi
je 0x10017239
call fcn.1007fa00
mov ecx, dword [esi + 0x59758]
mov eax, 2
push 0xffffffffffffffff
mov dword [0x100bb2dc], eax
push ecx
mov dword [esi + 0x59754], eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [esi + 0x59758]
push 1
push edx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov eax, dword [esi + 0x597bc]
mov edi, dword [eax]
lea ebx, [esi + 0x597b8]
lea ebx, [ebx]
cmp ebx, ebx
mov ecx, dword [ebx + 4]
mov dword [esp + 0xc], ecx
je 0x10017040
call fcn.10080d40
cmp edi, dword [esp + 0xc]
je 0x1001706d
cmp edi, dword [ebx + 4]
jne 0x10017050
call fcn.10080d40
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x1001705f
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
cmp edi, dword [ebx + 4]
jne 0x10017069
call fcn.10080d40
mov edi, dword [edi]
jmp 0x10017030
mov ecx, dword [ebx + 4]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [ebx + 4]
mov dword [ecx + 4], ecx
cmp eax, dword [ebx + 4]
mov dword [ebx + 8], 0
je 0x10017098
mov edi, dword [eax]
push eax
call fcn.10080a47
add esp, 4
cmp edi, dword [ebx + 4]
mov eax, edi
jne 0x10017086
lea ebx, [esi + 0x59760]
call fcn.1001d830
mov ecx, dword [esi + 0x5977c]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esi + 0x5977c]
mov dword [ecx + 4], ecx
cmp eax, dword [esi + 0x5977c]
mov dword [esi + 0x59780], 0
mov edi, vtable.CGameObject.0
je 0x100170e8
lea ecx, [ecx]
mov ebx, dword [eax]
push eax
mov dword [eax + 8], edi
call fcn.10080a47
add esp, 4
cmp ebx, dword [esi + 0x5977c]
mov eax, ebx
jne 0x100170d0
lea ebx, [esi + 0x5976c]
call fcn.1001d830
mov ecx, dword [esi + 0x59788]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esi + 0x59788]
mov dword [ecx + 4], ecx
cmp eax, dword [esi + 0x59788]
mov dword [esi + 0x5978c], 0
je 0x10017130
mov ebx, dword [eax]
push eax
mov dword [eax + 8], edi
call fcn.10080a47
add esp, 4
cmp ebx, dword [esi + 0x59788]
mov eax, ebx
jne 0x10017118
lea ebx, [esi + 0x59790]
call fcn.1001d830
mov ecx, dword [esi + 0x597ac]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esi + 0x597ac]
mov dword [ecx + 4], ecx
xor edi, edi
cmp eax, dword [esi + 0x597ac]
mov dword [esi + 0x597b0], edi
je 0x10017175
mov edi, edi
mov ebx, dword [eax]
push eax
call fcn.10080a47
add esp, 4
cmp ebx, dword [esi + 0x597ac]
mov eax, ebx
jne 0x10017160
mov ecx, dword [esi + 0x597fc]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esi + 0x597fc]
mov dword [ecx + 4], ecx
cmp eax, dword [esi + 0x597fc]
mov dword [esi + 0x59800], edi
je 0x100171ab
mov ebx, dword [eax]
push eax
call fcn.10080a47
add esp, 4
cmp ebx, dword [esi + 0x597fc]
mov eax, ebx
jne 0x10017196
mov ecx, dword [esi + 0x597e0]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esi + 0x597e0]
mov dword [ecx + 4], ecx
cmp eax, dword [esi + 0x597e0]
mov dword [esi + 0x597e4], edi
je 0x100171e5
lea esp, [esp]
mov ebx, dword [eax]
push eax
call fcn.10080a47
add esp, 4
cmp ebx, dword [esi + 0x597e0]
mov eax, ebx
jne 0x100171d0
mov ecx, dword [esi + 0x597f0]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esi + 0x597f0]
mov dword [ecx + 4], ecx
cmp eax, dword [esi + 0x597f0]
mov dword [esi + 0x597f4], edi
je 0x1001721b
mov ebx, dword [eax]
push eax
call fcn.10080a47
add esp, 4
cmp ebx, dword [esi + 0x597f0]
mov eax, ebx
jne 0x10017206
mov ecx, dword [esi + 0x5975c]
cmp ecx, edi
je 0x1001722d
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [esi + 0x5975c], edi
mov dword [esi + 0x59754], edi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret