Function at 0x403c16
Capabilities:
Create process on windows

Disassembly:
add dword [eax], eax
add byte [esi + 0x57], dl
mov dword [ebp - 8], ebx
jne 0x403d51
mov edi, dword [ebp + 0x14]
mov eax, dword [edi + 0x30]
cmp eax, ebx
jge 0x403c3f
mov ecx, dword [0x7e6da8]
lea eax, [eax*4 + 4]
sub ecx, eax
mov eax, dword [ecx]
mov ecx, dword [0x7eedf8]
lea eax, [ecx + eax*2]
movzx ecx, word [eax]
inc eax
inc eax
mov dword [ebp + 0xc], ecx
mov dword [0x7d4a7c], ebx
mov dword [ebp + 0x14], eax
test cl, 0x10
je 0x403c67
mov dword [ebp - 4], 0x403bc8
jmp 0x403c7f
push eax
mov dword [ebp - 4], 0x403b5e
call fcn.00403b1b
pop ecx
mov dword [0x7b8a28], 1
push dword [edi + 0x34]
mov dword [ebp - 0xc], eax
mov eax, dword [edi + 0x14]
mov esi, eax
shr esi, 5
not esi
push 0x22
push dword [ebp + 8]
or esi, eax
and esi, 1
call fcn.004038b1
push dword [edi + 0x38]
push 0x23
push dword [ebp + 8]
call fcn.004038b1
xor eax, eax
cmp esi, ebx
sete al
push 1
add eax, 0x40a
push eax
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_CheckDlgButton]
push esi
call fcn.004038f7
push 0x3e8
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov edi, eax
push edi
call fcn.0040390a
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
push ebx
push 1
push 0x45b
push edi
call esi
mov eax, dword [0x7eeddc]
mov eax, dword [eax + 0x68]
cmp eax, ebx
jge 0x403d05
neg eax
push eax
call dword [sym.imp.USER32.dll_GetSysColor]
push eax
push ebx
push 0x443
push edi
call esi
push 0x4010000
push ebx
push 0x445
push edi
call esi
push dword [ebp + 0x14]
mov dword [0x7b4a10], ebx
call fcn.00405ab8
push eax
push ebx
push 0x435
push edi
call esi
lea eax, [ebp - 0xc]
push eax
push dword [ebp + 0xc]
push 0x449
push edi
call esi
mov dword [0x7d4a84], ebx
xor eax, eax
jmp 0x403eac
cmp dword [ebp + 0xc], 0x111
mov esi, dword [sym.imp.USER32.dll_SendMessageW]
jne 0x403dbc
mov eax, dword [ebp + 0x10]
shr eax, 0x10
test ax, ax
jne 0x403e9d
cmp dword [0x7d4a84], ebx
jne 0x403e9d
mov edi, dword [0x7d4a78]
add edi, 0x14
test byte [edi], 0x20
je 0x403e9d
push ebx
push ebx
push 0xf0
push 0x40a
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetDlgItem]
push eax
call esi
mov ecx, dword [edi]
and eax, 1
and ecx, 0xfffffffe
or ecx, eax
push eax
mov dword [edi], ecx
call fcn.004038f7
call fcn.004038d3
cmp dword [ebp + 0xc], 0x4e
jne 0x403e8e
push 0x3e8
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_GetDlgItem]
mov edi, dword [ebp + 0x14]
cmp dword [edi + 8], 0x70b
jne 0x403e4f
cmp dword [edi + 0xc], 0x201
jne 0x403e4f
mov ecx, dword [edi + 0x1c]
mov edx, dword [edi + 0x18]
mov dword [ebp - 0x14], ecx
sub ecx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x10], 0x7ded40
cmp ecx, 0x8010
jae 0x403e4f
lea ecx, [ebp - 0x18]
push ecx
push ebx
push 0x44b
push eax
call esi
mov edi, dword [sym.imp.USER32.dll_LoadCursorW]
push 0x7f02
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_SetCursor]
push 1
push ebx
push ebx
push dword [ebp - 0x10]
push str.open
push dword [ebp + 8]
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
push 0x7f00
push ebx
call edi
push eax
call dword [sym.imp.USER32.dll_SetCursor]
mov edi, dword [ebp + 0x14]
cmp dword [edi + 8], 0x700
jne 0x403ea0
cmp dword [edi + 0xc], 0x100
jne 0x403ea0
cmp dword [edi + 0x10], 0xd
jne 0x403e77
push ebx
push 1
push 0x111
push dword [0x7eedd4]
call esi
cmp dword [edi + 0x10], 0x1b
jne 0x403e89
push ebx
push ebx
push 0x10
push dword [0x7eedd4]
call esi
xor eax, eax
inc eax
jmp 0x403eac
cmp dword [ebp + 0xc], 0x40b
jne 0x403e9d
inc dword [0x7d4a84]
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0xc]
push edi
push dword [ebp + 0x10]
call fcn.0040393c
pop edi
pop esi
pop ebx
leave
ret 0x10