Function at 0x410cb0
Capabilities:
Create thread
Resume thread

Disassembly:
sub esp, 8
push ebx
push esi
push edi
push 0x1c
call dword [sym.imp.ole32.dll_CoTaskMemAlloc]
mov edi, eax
xor ebx, ebx
cmp edi, ebx
je 0x410d6c
mov eax, dword [esp + 0x18]
push ebp
push 0xc
mov dword [edi], 0x430884
mov dword [edi + 4], eax
call fcn.004254d7
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x410d13
mov ebp, dword [esp + 0x20]
mov dword [esi + 4], ebx
push ebp
mov dword [esi + 8], 1
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
cmp eax, ebx
mov dword [esi], eax
jne 0x410d15
cmp ebp, ebx
je 0x410d15
push 0x8007000e
call fcn.0042dd70
jmp 0x410d15
xor esi, esi
cmp esi, ebx
mov dword [edi + 8], esi
jne 0x410d26
push 0x8007000e
call fcn.0042dd70
mov cl, byte [esp + 0x24]
mov edx, dword [esp + 0x28]
lea ebp, [edi + 0x18]
mov byte [edi + 0xc], cl
push ebp
push 0x435738
push 1
push ebx
push 0x4356c8
mov dword [edi + 0x10], edx
mov dword [edi + 0x14], ebx
mov dword [ebp], ebx
mov dword [edi], 0x430878
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov esi, eax
cmp esi, ebx
jl 0x410f53
mov eax, dword [edi + 8]
cmp eax, ebx
je 0x410d82
mov ecx, dword [eax]
jmp 0x410d84
mov edx, dword [esp + 0x28]
xor ecx, ecx
pop edi
pop esi
mov eax, 0x8007000e
mov dword [edx], ecx
pop ebx
add esp, 8
ret 0x14
xor ecx, ecx
mov eax, dword [ebp]
push ebx
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x34]
mov esi, eax
cmp esi, ebx
jl 0x410f45
push edi
call fcn.00411140
mov esi, eax
cmp esi, ebx
jl 0x410f45
mov al, byte [edi + 0xc]
test al, al
je 0x410f92
mov eax, dword [ebp]
lea edx, [esp + 0x24]
mov dword [esp + 0x24], ebx
push edx
mov ecx, dword [eax]
push 0x4356e8
push eax
call dword [ecx]
mov esi, eax
cmp esi, ebx
jl 0x410f45
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ebx
push edx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
mov esi, eax
mov eax, dword [esp + 0x24]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
cmp esi, ebx
mov dword [esp + 0x24], ebx
jl 0x410f45
mov esi, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
push 2
push ebx
lea edx, [esp + 0x28]
push ebx
push edx
mov dword [esp + 0x30], ebx
call esi
push eax
mov eax, dword [esp + 0x3c]
push eax
call esi
push eax
call dword [sym.imp.KERNEL32.dll_DuplicateHandle]
test eax, eax
je 0x410f6e
push ebx
push ebx
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventA]
mov ebx, eax
test ebx, ebx
je 0x410f06
mov esi, dword [esp + 0x20]
mov ebp, dword [ebp]
push 0x14
call dword [sym.imp.ole32.dll_CoTaskMemAlloc]
test eax, eax
je 0x410eb0
push ebx
push esi
push ebp
push edi
mov ecx, eax
call fcn.00410fb0
test eax, eax
mov dword [esp + 0x1c], eax
je 0x410eb8
lea ecx, [esp + 0x10]
xor ebp, ebp
push ecx
push 4
push eax
push 0x410ff0
push ebp
push ebp
mov dword [esp + 0x28], ebp
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov esi, eax
cmp esi, ebp
je 0x410ec6
mov eax, dword [esp + 0x1c]
lea edx, [esp + 0x14]
push edx
push eax
push eax
mov dword [esp + 0x20], ebp
call fcn.00412320
add esp, 0xc
push esi
call dword [sym.imp.KERNEL32.dll_ResumeThread]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor esi, esi
jmp 0x410ee8
mov dword [esp + 0x1c], 0
mov esi, 0x8007000e
test esi, esi
jl 0x410efd
mov dword [edi + 0x14], ebx
jmp 0x410f3f
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jg 0x410ed8
call esi
mov esi, eax
jmp 0x410ee8
call esi
mov esi, eax
and esi, 0xffff
or esi, 0x80070000
lea eax, [esp + 0x1c]
push eax
mov eax, dword [esp + 0x20]
push eax
push eax
call fcn.004122f0
add esp, 0xc
jmp 0x410ebd
push ebx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x410f28
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jg 0x410f18
call esi
mov esi, eax
jmp 0x410f28
call esi
mov esi, eax
and esi, 0xffff
or esi, 0x80070000
test esi, esi
jge 0x410f3f
mov eax, dword [esp + 0x20]
mov dword [esp + 0x20], 0
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor ebx, ebx
cmp esi, ebx
jge 0x410f53
mov eax, dword [edi + 0x18]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov dword [edi + 0x18], ebx
cmp esi, ebx
pop ebp
jge 0x410f99
mov edx, dword [edi]
push edi
call dword [edx]
xor eax, eax
pop edi
mov ecx, dword [esp + 0x24]
mov dword [ecx], eax
mov eax, esi
pop esi
pop ebx
add esp, 8
ret 0x14
mov esi, dword [sym.imp.KERNEL32.dll_GetLastError]
call esi
test eax, eax
jg 0x410f80
call esi
mov esi, eax
jmp 0x410f41
call esi
mov esi, eax
and esi, 0xffff
or esi, 0x80070000
jmp 0x410f41
mov esi, 1
jmp 0x410f41
mov eax, dword [esp + 0x28]
mov dword [eax], edi
mov eax, esi
pop edi
pop esi
pop ebx
add esp, 8
ret 0x14