Function at 0x300023b9
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x74
push ebx
push esi
push edi
push dword [ebp + 0xc]
call fcn.30001b1f
mov edx, eax
mov eax, dword [ebp + 0x18]
xor esi, esi
cmp eax, esi
mov dword [ebp - 0x18], edx
je 0x300023e9
cmp word [eax], si
je 0x300023e9
push eax
call fcn.30001b1f
mov edi, eax
inc edi
inc edi
jmp 0x300023eb
xor edi, edi
mov ecx, dword [ebp + 0x14]
lea eax, [edi + edx]
lea eax, [eax + ecx + 4]
mov dword [ebp - 0xc], eax
lea eax, [eax + eax + 2]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov ebx, eax
mov eax, dword [ebp + 0x1c]
cmp eax, esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x14], esi
mov dword [ebp - 0x20], esi
je 0x30002422
cmp word [eax], si
mov dword [ebp - 0x1c], 1
jne 0x30002425
mov dword [ebp - 0x1c], esi
cmp ebx, esi
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x10], eax
mov dword [ebp - 8], esi
je 0x300025f0
push 0x44
pop esi
push esi
lea eax, [ebp - 0x74]
push eax
call fcn.30001cf1
xor eax, eax
inc eax
mov dword [ebp - 0x48], eax
mov word [ebp - 0x44], ax
mov eax, dword [ebp - 0xc]
inc eax
push eax
push dword [ebp + 0xc]
mov dword [ebp - 0x74], esi
push ebx
call fcn.30001f51
push 0x30001590
push ebx
call fcn.30001e7f
mov esi, eax
test esi, esi
jne 0x30002496
push 0x30001588
push ebx
call fcn.30001e7f
mov esi, eax
test esi, esi
jne 0x30002496
mov eax, dword [ebp - 0x18]
lea esi, [ebx + eax*2]
cmp word [esi - 2], 0x20
je 0x300024a6
mov word [esi], 0x20
inc esi
inc esi
jmp 0x300024a6
xor eax, eax
cmp word [esi], 0x22
sete al
lea eax, [eax + eax + 2]
mov dword [ebp - 0x14], eax
test edi, edi
je 0x30002517
mov eax, dword [ebp + 0x14]
add eax, 8
push eax
push dword [ebp + 0x18]
call fcn.30001fd6
test eax, eax
mov dword [ebp - 4], eax
je 0x30002517
mov eax, dword [ebp + 0x18]
cmp word [eax], 0x22
jne 0x300024da
cmp word [eax + edi*2 - 6], 0x22
jne 0x300024da
mov dword [ebp - 8], 1
jmp 0x300024de
and dword [ebp - 8], 0
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x30002511
lea edi, [edi + eax + 4]
push edi
push 0x30001580
push dword [ebp - 4]
call fcn.30001f9a
push edi
push dword [ebp + 0x10]
push dword [ebp - 4]
call fcn.30001f9a
push edi
push 0x3000157c
push dword [ebp - 4]
call fcn.30001f9a
mov eax, dword [ebp - 4]
mov dword [ebp - 0x10], eax
push dword [ebp - 8]
push dword [ebp - 0x10]
push dword [ebp - 0x14]
push esi
push dword [ebp - 0xc]
push dword [ebp - 0x18]
push ebx
call fcn.300022cb
test eax, eax
je 0x300025db
push ebx
call fcn.30001b1f
lea eax, [ebx + eax*2]
jmp 0x3000254d
add eax, 0xfffffffe
cmp word [eax], 0x20
jne 0x30002551
and word [eax], 0
cmp eax, ebx
ja 0x30002540
xor esi, esi
cmp dword [ebp - 0x1c], esi
je 0x300025a5
mov edi, dword [ebp + 0x1c]
cmp edi, esi
je 0x300025a5
jmp 0x30002563
xor esi, esi
cmp word [edi], si
je 0x300025a5
push 0x20
push edi
call fcn.30001c96
mov esi, eax
sub esi, edi
sar esi, 1
test esi, esi
jle 0x300025a3
push 0
push 0
push esi
push edi
push ebx
call fcn.30001e7f
push eax
push dword [ebp - 0xc]
push ebx
call fcn.30001b1f
push eax
push ebx
call fcn.300022cb
test eax, eax
je 0x300025db
lea edi, [edi + esi*2 + 2]
test edi, edi
jne 0x30002561
xor esi, esi
push 0xffffffffffffffff
call dword [sym.imp.USER32.dll_AllowSetForegroundWindow]
cmp dword [ebp + 8], esi
je 0x300025dd
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x74]
push eax
push esi
push esi
push 0x400
push esi
push esi
push esi
push ebx
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
cmp eax, esi
je 0x300025dd
mov dword [ebp - 0x20], 1
jmp 0x300025dd
xor esi, esi
push ebx
call fcn.300032f7
cmp dword [ebp - 4], esi
je 0x300025f0
push dword [ebp - 4]
call fcn.300032f7
mov eax, dword [ebp - 0x20]
pop edi
pop esi
pop ebx
leave
ret 0x1c