Function at 0x43bba0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
mov ebx, ecx
sub esp, 0x4c
mov eax, dword [ecx + 8]
mov esi, dword [ebp + 8]
test eax, eax
je 0x43bbd7
lea edi, [ebp - 0x30]
mov dword [ebp - 0x30], 0
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_GetExitCodeThread]
sub esp, 8
test eax, eax
jne 0x43bc70
cmp ebx, esi
je 0x43bbf4
mov eax, dword [esi]
mov edx, dword [esi + 4]
lock add dword [eax], 1
mov ecx, dword [ebx + 4]
mov esi, dword [ebx]
mov dword [ebx + 4], edx
mov dword [ebx], eax
lock sub dword [esi], 1
je 0x43bc48
lea eax, [ebx + 0xc]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0x43b970
mov eax, dword [ebx + 0x14]
mov dword [esp], 0
mov dword [esp + 4], eax
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov dword [ebx + 8], eax
sub esp, 0x18
test eax, eax
je 0x52181f
mov edx, dword [ebx + 0x10]
test edx, edx
jne 0x43bc88
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 4
test ecx, ecx
je 0x43bc51
mov eax, dword [ecx]
call dword [eax + 4]
test esi, esi
je 0x43bbf4
mov ecx, esi
call fcn.00408240
mov dword [esp + 4], 4
mov dword [esp], esi
call fcn.00513b70
jmp 0x43bbf4
cmp dword [ebp - 0x30], 0x103
jne 0x43bbd7
jmp 0x521752
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [sym.imp.KERNEL32.dll_SetThreadPriority]
sub esp, 8
test eax, eax
je 0x5217b7
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret 4
mov dword [esp], 0x24
call fcn.00513c50
mov dword [esp], str.thread_already_running
mov ecx, edi
mov esi, eax
call fcn.00521582
push eax
mov ecx, esi
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.00412360
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x28]
push edi
push edi
cmp edx, eax
je 0x52179f
mov eax, dword [ebp - 0x28]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.00513b70
mov dword [esp + 8], 0x40c850
mov dword [esp + 4], 0x5468b4
mov dword [esp], esi
call fcn.005142c0
mov dword [esp], 0x24
lea edi, [ebp - 0x30]
call fcn.00513c50
mov dword [esp], str.cannot_set_thread_priority
mov ecx, edi
mov esi, eax
call fcn.00521582
push edx
mov ecx, esi
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.00412360
mov edx, dword [ebp - 0x30]
push eax
push eax
lea eax, [ebp - 0x28]
cmp edx, eax
je 0x521807
mov eax, dword [ebp - 0x28]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.00513b70
mov dword [esp + 8], 0x40c850
mov dword [esp + 4], 0x5468b4
mov dword [esp], esi
call fcn.005142c0
mov dword [esp], 0x24
lea edi, [ebp - 0x30]
call fcn.00513c50
mov dword [esp], str.cannot_create_thread
mov ecx, edi
mov esi, eax
call fcn.00521582
push ebx
mov ecx, esi
mov dword [esp + 4], 0
mov dword [esp], edi
call fcn.00412360
mov edx, dword [ebp - 0x30]
lea eax, [ebp - 0x28]
push ecx
push ecx
cmp edx, eax
je 0x52186f
mov eax, dword [ebp - 0x28]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.00513b70
mov dword [esp + 8], 0x40c850
mov dword [esp + 4], 0x5468b4
mov dword [esp], esi
call fcn.005142c0
mov edx, dword [ebp - 0x30]
mov ebx, eax
lea eax, [ebp - 0x28]
cmp edx, eax
je 0x5218a5
mov eax, dword [ebp - 0x28]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.00513b70
mov dword [esp], esi
call fcn.00513f00
mov dword [esp], ebx
call fcn.00461820
mov ebx, eax
jmp 0x5218a5