Function at 0x402551
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x3ec
mov eax, dword [0x438070]
xor eax, esp
mov dword [esp + 0x3e8], eax
mov eax, dword [ebp + 8]
and dword [esp + 8], 0
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
mov dword [esp + 0x24], eax
lea edi, [esp + 0x64]
mov eax, dword [ebp + 0xc]
push 9
mov dword [esp + 0x24], eax
xor eax, eax
pop ecx
rep stosd dword es:[edi], eax
and dword [esp + 0x98], eax
mov word [esp + 0x88], ax
lea eax, [esp + 0x64]
push eax
mov dword [esp + 0xa0], 7
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
or dword [esp + 0x84], 0xffffffff
test esi, esi
je 0x4025e6
push str.__type
push esi
call fcn.0041096e
pop ecx
pop ecx
test eax, eax
jne 0x4025e6
push str.__crashable
push esi
call fcn.0041096e
pop ecx
pop ecx
test eax, eax
jne 0x4025e6
mov bl, 1
jmp 0x4025e8
xor bl, bl
mov byte [esp + 0x1c], bl
test esi, esi
je 0x402606
push str.__typerenderer
push esi
call fcn.0041096e
mov byte [esp + 0x20], 1
pop ecx
pop ecx
test eax, eax
jne 0x40260b
mov byte [esp + 0x18], 0
test esi, esi
je 0x402634
push str.__perload_dll
push esi
call fcn.0041096e
pop ecx
pop ecx
test eax, eax
je 0x402634
mov byte [esp + 0x13], 1
call fcn.0040235d
test al, al
je 0x402737
jmp 0x402639
mov byte [esp + 0x13], 0
push 0x208
lea eax, [esp + 0x1ec]
push 0
push eax
call fcn.004123f0
add esp, 0xc
lea eax, [esp + 0x1e8]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov edi, eax
test bl, bl
je 0x40269e
lea eax, [esp + 0x1e8]
push eax
lea ecx, [esp + 0xa4]
call fcn.00402879
lea ecx, [esp + 0xa0]
mov dword [esp + 0x14], 1
call fcn.0040ad70
test al, al
je 0x40269e
xor eax, eax
mov bh, 1
inc eax
jmp 0x4026a4
mov eax, dword [esp + 0x14]
xor bh, bh
test al, 1
je 0x4026b8
push 0
push 1
lea ecx, [esp + 0xa8]
call fcn.00403f50
test bh, bh
je 0x402709
push 0x38
lea eax, [esp + 0x30]
push 0
push eax
call fcn.004123f0
add esp, 0xc
mov dword [esp + 0x28], 0x3c
lea eax, [esp + 0x1e8]
mov dword [esp + 0x44], 1
mov dword [esp + 0x38], eax
lea eax, [esp + 0x28]
mov dword [esp + 0x2c], 0x800100
push eax
mov dword [esp + 0x38], 0x434370
mov dword [esp + 0x40], esi
call dword [sym.imp.SHELL32.dll_ShellExecuteExW]
jmp 0x402737
push 0x80
lea eax, [esp + 0x16c]
push 0
push eax
call fcn.004123f0
add esp, 0xc
lea edx, [esp + 0x168]
lea ecx, [esp + 0x1e8]
call fcn.00401c8e
test al, al
jne 0x40273e
xor ebx, ebx
jmp 0x402831
lea eax, [esp + 0x168]
push eax
lea ecx, [esp + 0xbc]
call fcn.00402879
lea eax, [esp + 0xb8]
push eax
lea ecx, [esp + 0xd4]
call fcn.00407470
mov byte [esp + 0x12], 0
test bl, bl
je 0x402797
lea eax, [esp + 0x12]
push eax
lea ecx, [esp + 0xd4]
call fcn.004078c0
test al, al
je 0x402790
lea ecx, [esp + 0xd0]
call fcn.00408080
cmp byte [esp + 0x12], 0
jne 0x4027dc
push edi
lea eax, [esp + 0x16c]
push eax
lea eax, [esp + 0x1f0]
push eax
push dword [esp + 0x24]
lea edx, [esp + 0x74]
push dword [esp + 0x2c]
call fcn.00402199
add esp, 0x14
mov edi, eax
lea eax, [esp + 0x7c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
xor ebx, ebx
cmp byte [esp + 0x13], bl
je 0x4027e0
test edi, edi
je 0x4027dc
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
xor ebx, ebx
jmp 0x402815
test edi, edi
je 0x402815
push str.KugouMain
push edi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea ecx, [esp + 0x64]
push ecx
push dword [ebp + 0x14]
push esi
push dword [esp + 0x2c]
push dword [esp + 0x34]
call eax
mov ebx, eax
call fcn.00401c4f
test al, al
je 0x402815
push edi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
lea ecx, [esp + 0xd0]
call fcn.00407830
push 0
push 1
lea ecx, [esp + 0xc0]
call fcn.00403f50
push 0
push 1
lea ecx, [esp + 0x90]
call fcn.00403f50
mov ecx, dword [esp + 0x3f4]
mov eax, ebx
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0040f284
mov esp, ebp
pop ebp
ret 0x10