Function at 0x10005e40
Capabilities:
Print debug messages

Disassembly:
push esi
sub esp, 0x48
test ecx, ecx
je 0x10005e5d
mov esi, ecx
mov dword [esp], ecx
call fcn.10003e40
cmp eax, 1
je 0x10005e62
mov dword [esi], 0xffffffff
add esp, 0x48
pop esi
ret
xorps xmm0, xmm0
movsd qword [esp + 0x3d], xmm0
xorps xmm0, xmm0
movups xmmword [esp + 0x30], xmm0
movups xmmword [esp + 0x20], xmm0
movups xmmword [esp + 0x10], xmm0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esp + 0xc], eax
lea esi, [esp + 0x10]
mov dword [esp], esi
call fcn.10006790
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
sub esp, 4
call sub.msvcrt.dll_abort
nop word cs:[eax + eax]
push ebx
push edi
push esi
sub esp, 0x3c
mov ebx, dword [esp + 0x4c]
mov esi, 3
test ebx, ebx
je 0x10005f2c
push 0x1003a014
call fcn.10002f90
add esp, 4
mov eax, dword [0x10044e3c]
test eax, eax
je 0x10005f1f
cmp eax, 1
jne 0x10005eea
mov eax, dword [0x10044e40]
cmp dword [eax + 4], ebx
jne 0x10005f1f
jmp 0x10005f38
dec eax
xor edx, edx
mov ecx, dword [0x10044e40]
jmp 0x10005f07
inc edi
mov edx, edi
cmp edx, eax
ja 0x10005f1f
lea edi, [edx + eax]
shr edi, 1
cmp dword [ecx + edi*8 + 4], ebx
je 0x10005f35
jbe 0x10005f00
cmp edi, edx
je 0x10005f1f
dec edi
mov eax, edi
cmp edx, eax
jbe 0x10005f07
push 0x1003a014
call fcn.100030f0
add esp, 4
mov eax, esi
add esp, 0x3c
pop esi
pop edi
pop ebx
ret
lea eax, [ecx + edi*8]
mov edi, dword [eax]
push 0x1003a014
call fcn.100030f0
add esp, 4
test edi, edi
je 0x10005f2c
mov eax, dword [edi + 0x14]
test eax, eax
je 0x10005f2c
mov ecx, esp
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x10005f2c
mov esi, 0x16
test byte [edi + 0x24], 4
jne 0x10005f2c
call fcn.100043f0
test eax, eax
je 0x10005f7c
mov eax, dword [eax + 0xb4]
jmp 0x10005f7e
xor eax, eax
mov esi, 0x24
cmp eax, ebx
je 0x10005f2c
cmp dword [edi + 0x68], 0
mov eax, dword [edi + 0x14]
je 0x10005f98
lea ecx, [eax + 1]
cmp ecx, 2
jb 0x10005fa4
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov eax, dword [edi + 0x14]
mov esi, dword [esp + 0x50]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [edi + 0x18]
test eax, eax
je 0x10005fbd
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x18], 0
test esi, esi
je 0x10005fcd
mov eax, dword [edi + 4]
mov dword [esi], eax
lea eax, [edi + 0x1c]
push eax
call fcn.10003280
add esp, 4
lea eax, [edi + 0x38]
push eax
call fcn.10003e40
add esp, 4
cmp eax, 1
je 0x10005fff
mov dword [edi + 0x38], 0xffffffff
mov ecx, edi
call fcn.10004f70
xor esi, esi
jmp 0x10005f2c
xorps xmm0, xmm0
movsd qword [esp + 0x31], xmm0
xorps xmm0, xmm0
movups xmmword [esp + 0x24], xmm0
movups xmmword [esp + 0x14], xmm0
movups xmmword [esp + 4], xmm0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
sub esp, 0x10
mov dword [esp + 0xc], eax
lea esi, [esp + 0x14]
mov dword [esp], esi
call fcn.10006790
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
call sub.msvcrt.dll_abort
nop word cs:[eax + eax]
push ebx
push edi
push esi
sub esp, 0x3c
push 0x1003a014
call fcn.10002f90
add esp, 4
mov esi, 3
mov eax, dword [0x10044e3c]
test eax, eax
je 0x10006174
mov ebx, dword [esp + 0x4c]
cmp eax, 1
jne 0x1000608d
mov eax, dword [0x10044e40]
cmp dword [eax + 4], ebx
je 0x100060c8
jmp 0x10006174
dec eax
xor edx, edx
mov ecx, dword [0x10044e40]
jmp 0x100060ab
inc edi
mov edx, edi
cmp edx, eax
ja 0x10006174
lea edi, [edx + eax]
shr edi, 1
cmp dword [ecx + edi*8 + 4], ebx
je 0x100060c5
jbe 0x100060a0
cmp edi, edx
je 0x10006174
dec edi
mov eax, edi
jmp 0x100060a3
lea eax, [ecx + edi*8]
mov edi, dword [eax]
test edi, edi
je 0x10006174
mov eax, dword [edi + 0x14]
test eax, eax
je 0x10006174
mov ecx, esp
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetHandleInformation]
test eax, eax
je 0x10006174
mov esi, 0x16
test byte [edi + 0x24], 4
jne 0x10006174
call fcn.100043f0
test eax, eax
je 0x1000610b
mov eax, dword [eax + 0xb4]
jmp 0x1000610d
xor eax, eax
mov esi, 0x24
cmp eax, ebx
je 0x10006174
cmp dword [edi + 0x68], 0
je 0x1000618a
mov esi, dword [esp + 0x50]
push dword [edi + 0x14]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [edi + 0x18]
test eax, eax
je 0x10006137
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [edi + 0x18], 0
test esi, esi
je 0x10006147
mov eax, dword [edi + 4]
mov dword [esi], eax
lea eax, [edi + 0x1c]
push eax
call fcn.10003280
add esp, 4
lea eax, [edi + 0x38]
push eax
call fcn.10003e40
add esp, 4
cmp eax, 1
je 0x100061aa
mov dword [edi + 0x38], 0xffffffff
mov ecx, edi
call fcn.10004f70
xor esi, esi
push 0x1003a014
call fcn.100030f0
add esp, 4
mov eax, esi
add esp, 0x3c
pop esi
pop edi
pop ebx
ret
push 0
push dword [edi + 0x14]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x1000611c
cmp dword [edi + 0x68], 0
jne 0x1000611c
mov esi, 0x10
jmp 0x10006174
xorps xmm0, xmm0
movsd qword [esp + 0x31], xmm0
xorps xmm0, xmm0
movups xmmword [esp + 0x24], xmm0
movups xmmword [esp + 0x14], xmm0
movups xmmword [esp + 4], xmm0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
sub esp, 0x10
mov dword [esp + 0xc], eax
lea esi, [esp + 0x14]
mov dword [esp], esi
call fcn.10006790
add esp, 0x10
push esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
call sub.msvcrt.dll_abort
nop dword [eax]
push ebx
push edi
push esi
sub esp, 0x4c
mov ebx, dword [esp + 0x5c]
mov dword [esp], 0x1003a014
call fcn.10002f90
mov esi, 3
test ebx, ebx
je 0x10006323
xor edi, edi
mov eax, dword [0x10044e3c]
test eax, eax
je 0x10006268
cmp eax, 1
jne 0x1000622f
mov eax, dword [0x10044e40]
cmp dword [eax + 4], ebx
je 0x10006266
jmp 0x10006268
dec eax
xor edx, edx
mov ecx, dword [0x10044e40]
jmp 0x10006247
inc edi
mov edx, edi
cmp edx, eax
ja 0x1000625f
lea edi, [edx + eax]
shr edi, 1
cmp dword [ecx + edi*8 + 4], ebx
je 0x10006263
jbe 0x10006240
cmp edi, edx
je 0x1000625f
dec edi
mov eax, edi
cmp edx, eax
jbe 0x10006247
xor edi, edi
jmp 0x10006268
lea eax, [ecx + edi*8]
mov edi, dword [eax]
mov dword [esp], 0x1003a014
call fcn.100030f0
mov dword [esp], 0x1003a014
call fcn.10002f90
test edi, edi
je 0x10006323
mov eax, dword [edi + 0x14]
test eax, eax
je 0x10006323
lea ecx, [esp + 0x10]
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetHandleInformation]
sub esp, 8
test eax, eax
je 0x10006323
mov ecx, dword [edi + 0x24]
mov esi, 0x16
test cl, 4
jne 0x10006323
mov eax, dword [edi + 0x14]
mov dword [edi + 0x14], 0
or ecx, 4
mov dword [edi + 0x24], ecx
xor esi, esi
test eax, eax
je 0x10006323
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
cmp dword [edi + 0x68], 0
je 0x10006323
mov eax, dword [edi + 0x18]
test eax, eax
je 0x100062f3
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
sub esp, 4
mov dword [edi + 0x18], 0
lea eax, [edi + 0x1c]
mov dword [esp], eax
call fcn.10003280
lea eax, [edi + 0x38]
mov dword [esp], eax
call fcn.10003e40
cmp eax, 1
je 0x10006338
mov dword [edi + 0x38], 0xffffffff
mov ecx, edi
call fcn.10004f70
mov dword [esp], 0x1003a014
call fcn.100030f0
mov eax, esi
add esp, 0x4c
pop esi
pop edi
pop ebx
ret
xorps xmm0, xmm0
movsd qword [esp + 0x41], xmm0
xorps xmm0, xmm0
movups xmmword [esp + 0x34], xmm0
movups xmmword [esp + 0x24], xmm0
movups xmmword [esp + 0x14], xmm0
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [esp + 0xc], eax
lea esi, [esp + 0x14]
mov dword [esp], esi
call fcn.10006790
mov dword [esp], esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
sub esp, 4
call sub.msvcrt.dll_abort
nop word [eax + eax]
mov eax, dword [0x10044e38]
ret