Function at 0x454991
Capabilities:
Terminate thread

Disassembly:
push ecx
push esi
mov esi, ecx
push edi
xor edi, edi
mov eax, dword [esi + 0x28]
cmp dword [eax + 0x1c00], edi
je 0x454a6c
mov eax, dword [eax + 0x18ec]
push edi
add eax, 0x120
push edi
push 0x1004
mov eax, dword [eax + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, edi
jle 0x4549d4
mov ecx, dword [esi + 0x28]
push 1
push edi
mov ecx, dword [ecx + 0x18ec]
jmp 0x4549df
mov edx, dword [esi + 0x28]
push edi
push edi
mov ecx, dword [edx + 0x18ec]
add ecx, 0x1ebc
call fcn.00401120
mov eax, dword [esi + 0x28]
cmp dword [eax + 0x1bf4], edi
jne 0x454a2a
mov eax, dword [esi + 0x68]
cmp eax, edi
je 0x454bb8
mov edx, dword [eax + 0x28]
lea ecx, [esp + 8]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
je 0x454b4b
cmp dword [esp + 8], 0x103
jne 0x454b4b
jmp 0x454b39
mov ecx, dword [eax + 0x18ec]
push 0xffffffffffffffff
add ecx, 0x120
call fcn.00455200
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x4b61a0
call fcn.0047c161
mov ecx, dword [esi + 0x28]
call fcn.0040ae30
mov eax, dword [esi + 0x28]
push 0x10
mov ecx, dword [eax + 0x18ec]
call fcn.00435900
jmp 0x454b66
mov ecx, dword [eax + 0x18d4]
push 0x64
add ecx, 0x994
call fcn.00457780
mov ecx, dword [esi + 0x28]
push edi
push edi
push 0x1004
mov eax, dword [ecx + 0x18d4]
add eax, 0xa2c
mov edx, dword [eax + 0x1c]
push edx
call dword [sym.imp.USER32.dll_SendMessageA]
cmp eax, edi
jle 0x454ab0
mov eax, dword [esi + 0x28]
push 1
push edi
mov ecx, dword [eax + 0x18d4]
jmp 0x454abb
mov ecx, dword [esi + 0x28]
push edi
push edi
mov ecx, dword [ecx + 0x18d4]
add ecx, 0xf10
call fcn.00401120
mov edx, dword [esi + 0x28]
push 0xffffffffffffffff
mov ecx, dword [edx + 0x18d4]
add ecx, 0xa2c
call fcn.00455200
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x14], esp
push 0x4b61a0
call fcn.0047c161
mov ecx, dword [esi + 0x28]
call fcn.0040ae30
mov eax, dword [esi + 0x28]
push 2
mov ecx, dword [eax + 0x18d4]
call fcn.004460f0
mov eax, dword [esi + 0x28]
cmp dword [eax + 0x1bf4], edi
jne 0x454b60
mov eax, dword [esi + 0x68]
cmp eax, edi
je 0x454bb8
mov edx, dword [eax + 0x28]
lea ecx, [esp + 8]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
je 0x454b4b
cmp dword [esp + 8], 0x103
jne 0x454b4b
mov eax, dword [esi + 0x68]
push 0x103
mov ecx, dword [eax + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov ecx, dword [esi + 0x68]
cmp ecx, edi
je 0x454bb8
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov dword [esi + 0x68], edi
pop edi
pop esi
pop ecx
ret
mov dword [eax + 0x1bf4], edi
mov eax, dword [esi + 0x28]
cmp dword [eax + 0x1bf4], edi
jne 0x454bb8
mov eax, dword [esi + 0x68]
cmp eax, edi
je 0x454bb8
mov edx, dword [eax + 0x28]
lea ecx, [esp + 8]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
test eax, eax
je 0x454ba7
cmp dword [esp + 8], 0x103
jne 0x454ba7
mov eax, dword [esi + 0x68]
push 0x103
mov ecx, dword [eax + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov ecx, dword [esi + 0x68]
cmp ecx, edi
je 0x454bb8
mov edx, dword [ecx]
push 1
call dword [edx + 4]
mov dword [esi + 0x68], edi
pop edi
pop esi
pop ecx
ret