Function at 0x10017f70
Capabilities:
Terminate thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, dword [esi + 0x5976c]
sub esp, 8
test eax, eax
push ebx
push edi
je 0x100181d9
call fcn.100661d0
mov ecx, dword [esi + 0x59770]
mov eax, 2
push 0xffffffffffffffff
mov dword [0x1009a218], eax
push ecx
mov dword [esi + 0x5976c], eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov edx, dword [esi + 0x59770]
push 1
push edx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov eax, dword [esi + 0x597d4]
mov edi, dword [eax]
lea ebx, [esi + 0x597d0]
lea ebx, [ebx]
cmp ebx, ebx
mov ecx, dword [ebx + 4]
mov dword [esp + 0xc], ecx
je 0x10017fe0
call fcn.10067664
cmp edi, dword [esp + 0xc]
je 0x1001800d
cmp edi, dword [ebx + 4]
jne 0x10017ff0
call fcn.10067664
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x10017fff
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
cmp edi, dword [ebx + 4]
jne 0x10018009
call fcn.10067664
mov edi, dword [edi]
jmp 0x10017fd0
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 0x10018038
mov edi, dword [eax]
push eax
call fcn.10067257
add esp, 4
cmp edi, dword [ebx + 4]
mov eax, edi
jne 0x10018026
lea ebx, [esi + 0x59778]
call fcn.1001f090
mov ecx, dword [esi + 0x59794]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esi + 0x59794]
mov dword [ecx + 4], ecx
cmp eax, dword [esi + 0x59794]
mov dword [esi + 0x59798], 0
mov edi, vtable.CGameObject.0
je 0x10018088
lea ecx, [ecx]
mov ebx, dword [eax]
push eax
mov dword [eax + 8], edi
call fcn.10067257
add esp, 4
cmp ebx, dword [esi + 0x59794]
mov eax, ebx
jne 0x10018070
lea ebx, [esi + 0x59784]
call fcn.1001f090
mov ecx, dword [esi + 0x597a0]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esi + 0x597a0]
mov dword [ecx + 4], ecx
cmp eax, dword [esi + 0x597a0]
mov dword [esi + 0x597a4], 0
je 0x100180d0
mov ebx, dword [eax]
push eax
mov dword [eax + 8], edi
call fcn.10067257
add esp, 4
cmp ebx, dword [esi + 0x597a0]
mov eax, ebx
jne 0x100180b8
lea ebx, [esi + 0x597a8]
call fcn.1001f090
mov ecx, dword [esi + 0x597c4]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esi + 0x597c4]
mov dword [ecx + 4], ecx
xor edi, edi
cmp eax, dword [esi + 0x597c4]
mov dword [esi + 0x597c8], edi
je 0x10018115
mov edi, edi
mov ebx, dword [eax]
push eax
call fcn.10067257
add esp, 4
cmp ebx, dword [esi + 0x597c4]
mov eax, ebx
jne 0x10018100
mov ecx, dword [esi + 0x59814]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esi + 0x59814]
mov dword [ecx + 4], ecx
cmp eax, dword [esi + 0x59814]
mov dword [esi + 0x59818], edi
je 0x1001814b
mov ebx, dword [eax]
push eax
call fcn.10067257
add esp, 4
cmp ebx, dword [esi + 0x59814]
mov eax, ebx
jne 0x10018136
mov ecx, dword [esi + 0x597f8]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esi + 0x597f8]
mov dword [ecx + 4], ecx
cmp eax, dword [esi + 0x597f8]
mov dword [esi + 0x597fc], edi
je 0x10018185
lea esp, [esp]
mov ebx, dword [eax]
push eax
call fcn.10067257
add esp, 4
cmp ebx, dword [esi + 0x597f8]
mov eax, ebx
jne 0x10018170
mov ecx, dword [esi + 0x59808]
mov eax, dword [ecx]
mov dword [ecx], ecx
mov ecx, dword [esi + 0x59808]
mov dword [ecx + 4], ecx
cmp eax, dword [esi + 0x59808]
mov dword [esi + 0x5980c], edi
je 0x100181bb
mov ebx, dword [eax]
push eax
call fcn.10067257
add esp, 4
cmp ebx, dword [esi + 0x59808]
mov eax, ebx
jne 0x100181a6
mov ecx, dword [esi + 0x59774]
cmp ecx, edi
je 0x100181cd
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [esi + 0x59774], edi
mov dword [esi + 0x5976c], edi
pop edi
pop ebx
mov esp, ebp
pop ebp
ret