Function at 0x100291a0
Capabilities:
Terminate thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1003ef34
mov eax, dword fs:[0]
push eax
sub esp, 0x48
mov eax, dword [0x1004f0d0]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x44], ecx
mov eax, dword [ebp - 0x44]
mov dword [eax], vtable.CDeviceCopyPolicy.0
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 4], vtable.CDeviceCopyPolicy.1.0
mov edx, dword [ebp - 0x44]
mov dword [edx + 8], vtable.CDeviceCopyPolicy.2.0
mov dword [ebp - 4], 8
cmp dword [ebp - 0x44], 0
je 0x10029200
mov eax, dword [ebp - 0x44]
add eax, 4
mov dword [ebp - 0x54], eax
jmp 0x10029207
mov dword [ebp - 0x54], 0
push str.modcopyp2pprivateobserver
lea ecx, [ebp - 0x28]
call fcn.10001d10
mov byte [ebp - 4], 9
call dword [sym.imp.KwMusicCore.dll_AfxGetMessageManager]
mov dword [ebp - 0x4c], eax
mov ecx, dword [ebp - 0x54]
push ecx
lea edx, [ebp - 0x28]
push edx
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x4c]
mov eax, dword [edx + 8]
call eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x28]
call fcn.100033c0
cmp dword [ebp - 0x44], 0
je 0x10029253
mov ecx, dword [ebp - 0x44]
add ecx, 8
mov dword [ebp - 0x48], ecx
jmp 0x1002925a
mov dword [ebp - 0x48], 0
push str.modlyric_2
lea ecx, [ebp - 0x40]
call fcn.10001d10
mov byte [ebp - 4], 0xa
call dword [sym.imp.KwMusicCore.dll_AfxGetMessageManager]
mov dword [ebp - 0x50], eax
mov edx, dword [ebp - 0x48]
push edx
lea eax, [ebp - 0x40]
push eax
mov ecx, dword [ebp - 0x50]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x50]
mov eax, dword [edx + 8]
call eax
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x40]
call fcn.100033c0
mov ecx, dword [ebp - 0x44]
add ecx, 0x10
call dword [sym.imp.KwLib.dll_public:_void____thiscall_KwLib::Thread::KwThread::ThreadHandle_void_const]
test eax, eax
je 0x100292d9
push 0x3e8
mov ecx, dword [ebp - 0x44]
add ecx, 0x10
call dword [sym.imp.KwLib.dll_public:_void____thiscall_KwLib::Thread::KwThread::ThreadHandle_void_const]
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x100292d9
push 1
mov ecx, dword [ebp - 0x44]
add ecx, 0x10
call dword [sym.imp.KwLib.dll_public:_void____thiscall_KwLib::Thread::KwThread::ThreadHandle_void_const]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateThread]
mov byte [ebp - 4], 7
mov ecx, dword [ebp - 0x44]
add ecx, 0x338
call fcn.100033c0
mov byte [ebp - 4], 6
mov ecx, dword [ebp - 0x44]
add ecx, 0x31c
call fcn.100033c0
mov byte [ebp - 4], 5
mov ecx, dword [ebp - 0x44]
add ecx, 0x318
call dword [sym.imp.KwLib.dll_public:_void___thiscall_KwLib::Thread::CBaseEvent::destructor_void_]
mov byte [ebp - 4], 4
mov ecx, dword [ebp - 0x44]
add ecx, 0x314
call dword [sym.imp.KwLib.dll_public:_void___thiscall_KwLib::Thread::CBaseEvent::destructor_void_]
mov byte [ebp - 4], 3
mov ecx, dword [ebp - 0x44]
add ecx, 0x310
call dword [sym.imp.KwLib.dll_public:_void___thiscall_KwLib::Thread::CBaseEvent::destructor_void_]
mov byte [ebp - 4], 2
mov ecx, dword [ebp - 0x44]
add ecx, 0x10
call dword [sym.imp.KwLib.dll_public:_void___thiscall_KwLib::Thread::KwThread::destructor_void_]
mov byte [ebp - 4], 1
mov ecx, dword [ebp - 0x44]
add ecx, 8
call fcn.100303a0
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x44]
add ecx, 4
call fcn.100303c0
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x44]
call fcn.10015070
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1003b334
mov esp, ebp
pop ebp
ret