Function at 0x476cb0
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6a0
mov eax, dword [0x5770a4]
xor eax, ebp
mov dword [ebp - 4], eax
push edi
mov dword [ebp - 0x620], ecx
mov dword [ebp - 0x624], 1
push dword [ebp + 0xc]
mov ecx, dword [ebp - 0x620]
add ecx, 0x68
call fcn.0047cfd0
test eax, eax
je 0x476cf0
and dword [ebp - 0x624], 0
push dword [ebp + 0xc]
push str._Launch__TCLS_Launcher::CreateCrossProcess__szCrossAbsPath___s
mov eax, dword [ebp - 0x620]
add eax, 0x69
push eax
call fcn.0047d5fa
add esp, 0xc
push 0x410
push 0
lea eax, [ebp - 0x61c]
push eax
call fcn.004b0090
add esp, 0xc
push 0x208
lea eax, [ebp - 0x61c]
push eax
push dword [ebp + 0xc]
mov ecx, dword [ebp - 0x620]
add ecx, 0x58
call fcn.0047b821
lea eax, [ebp - 0x61c]
push eax
push str._Launch__TCLS_Launcher::CreateCrossProcess__szWorkDirectory___s
mov eax, dword [ebp - 0x620]
add eax, 0x69
push eax
call fcn.0047d5fa
add esp, 0xc
push 0x208
push 0
lea eax, [ebp - 0x20c]
push eax
call fcn.004b0090
add esp, 0xc
mov eax, dword [ebp - 0x620]
mov eax, dword [eax + 0x3b0]
mov dword [ebp - 0x63c], eax
imul eax, dword [ebp - 0x63c], 0xba0
mov ecx, dword [ebp - 0x620]
mov eax, dword [ecx + eax + 0xe50]
mov dword [ebp - 0x630], eax
and dword [ebp - 0x628], 0
cmp dword [ebp + 0xc], 0
je 0x476ddd
push str.CrossCoreStable
push dword [ebp + 0xc]
call fcn.004b2766
pop ecx
pop ecx
test eax, eax
jne 0x476dd3
push str.crosscore_stable
push dword [ebp + 0xc]
call fcn.004b2766
pop ecx
pop ecx
test eax, eax
je 0x476ddd
mov dword [ebp - 0x628], 1
push dword [ebp - 0x628]
push str._Launch__TCLS_Launcher::CreateCrossProcess__bNewCross___d
mov eax, dword [ebp - 0x620]
add eax, 0x69
push eax
call fcn.0047d5fa
add esp, 0xc
cmp dword [ebp - 0x628], 0
jne 0x476eee
mov eax, dword [ebp - 0x620]
mov eax, dword [eax + 0x70]
mov ecx, dword [ebp - 0x620]
mov eax, dword [eax]
mov ecx, dword [ecx + 0x70]
call dword [eax + 0xc0]
cmp eax, 1
jne 0x476e43
push str._Launch__TCLS_Launcher::CreateCrossProcess__old_cross_not_support_wechat
mov eax, dword [ebp - 0x620]
add eax, 0x69
push eax
call fcn.0047d64c
pop ecx
pop ecx
xor eax, eax
jmp 0x4770d1
mov eax, dword [ebp - 0x620]
mov ecx, dword [eax + 0x6f740]
mov dword [ebp - 0x644], ecx
mov eax, dword [eax + 0x6f744]
mov dword [ebp - 0x640], eax
cmp dword [ebp - 0x644], 0x1d
jne 0x476e73
cmp dword [ebp - 0x640], 0
je 0x476e87
mov eax, dword [ebp - 0x620]
mov eax, dword [eax + 0x9c]
mov dword [ebp - 0x62c], eax
jmp 0x476e8e
and dword [ebp - 0x62c], 0
mov eax, dword [ebp - 0x620]
add eax, 0x5e3f4
push eax
mov eax, dword [ebp - 0x620]
push dword [eax + 0x61dc4]
push dword [ebp + 8]
push dword [ebp - 0x630]
mov eax, dword [ebp - 0x620]
push dword [eax + 0x61fe4]
push dword [ebp - 0x62c]
push dword [ebp + 0xc]
push str.__s___q__u__i__d__s__d__g__d__u__d__n__s
push 0
push 0x104
lea eax, [ebp - 0x20c]
push eax
mov eax, dword [ebp - 0x620]
add eax, 0x68
push eax
call fcn.0047e608
add esp, 0x30
jmp 0x476fa6
mov eax, dword [ebp - 0x620]
mov ecx, dword [eax + 0x6f740]
mov dword [ebp - 0x64c], ecx
mov eax, dword [eax + 0x6f744]
mov dword [ebp - 0x648], eax
cmp dword [ebp - 0x64c], 0x1d
jne 0x476f1e
cmp dword [ebp - 0x648], 0
je 0x476f32
mov eax, dword [ebp - 0x620]
mov eax, dword [eax + 0x9c]
mov dword [ebp - 0x634], eax
jmp 0x476f39
and dword [ebp - 0x634], 0
mov eax, dword [ebp - 0x620]
push dword [eax + 0x94]
push dword [eax + 0x90]
mov eax, dword [ebp - 0x620]
add eax, 0x5e3f4
push eax
mov eax, dword [ebp - 0x620]
push dword [eax + 0x61dc4]
push dword [ebp + 8]
push dword [ebp - 0x630]
mov eax, dword [ebp - 0x620]
push dword [eax + 0x61fe4]
push dword [ebp - 0x634]
push dword [ebp + 0xc]
push str.__s___q__u__i__d__s__d__g__d__u__d__n__s__session_id__I64u
push 0
push 0x104
lea eax, [ebp - 0x20c]
push eax
mov eax, dword [ebp - 0x620]
add eax, 0x68
push eax
call fcn.0047e608
add esp, 0x38
cmp dword [ebp + 0x10], 0
jne 0x476fcb
push str.__m__1
push 0x104
lea eax, [ebp - 0x20c]
push eax
mov ecx, dword [ebp - 0x620]
add ecx, 0x68
call fcn.0047ecf9
lea eax, [ebp - 0x20c]
push eax
push str._Launch__TCLS_Launcher::CreateCrossProcess__szCommand___s
mov eax, dword [ebp - 0x620]
add eax, 0x69
push eax
call fcn.0047d64c
add esp, 0xc
push 0x44
push 0
lea eax, [ebp - 0x6a0]
push eax
call fcn.004b0090
add esp, 0xc
xor eax, eax
lea edi, [ebp - 0x65c]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x6a0], 0x44
cmp dword [ebp - 0x624], 0
je 0x47705a
lea eax, [ebp - 0x65c]
push eax
lea eax, [ebp - 0x6a0]
push eax
lea eax, [ebp - 0x61c]
push eax
push 0
push 0
push 1
push 0
push 0
lea eax, [ebp - 0x20c]
push eax
push dword [ebp + 0xc]
call dword [sym.imp.KERNEL32.dll_CreateProcessW]
test eax, eax
je 0x47705a
mov dword [ebp - 0x638], 1
jmp 0x477061
and dword [ebp - 0x638], 0
mov eax, dword [ebp - 0x638]
mov dword [ebp - 0x624], eax
cmp dword [ebp - 0x624], 0
je 0x4770ad
mov eax, dword [ebp - 0x620]
and dword [eax + 0x61fe8], 0
mov eax, dword [ebp - 0x620]
mov ecx, dword [ebp - 0x65c]
mov dword [eax + 0x61ff0], ecx
push str._Launch__TCLS_Launcher::CreateCrossProcess__Success__
mov eax, dword [ebp - 0x620]
add eax, 0x69
push eax
call fcn.0047d64c
pop ecx
pop ecx
jmp 0x4770cb
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push str._Launch__TCLS_Launcher::CreateCrossProcess__Faild:_d
mov eax, dword [ebp - 0x620]
add eax, 0x69
push eax
call fcn.0047d64c
add esp, 0xc
mov eax, dword [ebp - 0x624]
pop edi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004ad99f
leave
ret 0xc