Function at 0x477700
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x60]
cmp eax, dword [ecx + 8]
jbe 0x477f88
sub esp, 0xe0
mov edx, dword [esp + 0xe8]
mov eax, dword [esp + 0xf8]
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
xor ebx, ebx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x108], ebx
xor ebx, ebx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x108], ebx
mov dword [esp + 0x100], 0
mov dword [esp + 0xfc], 0
cmp edx, 0
jne 0x4777fa
mov dword [esp + 0x40], 0x20000082
mov dword [esp], 0x533de0
mov dword [esp + 4], 0x524ae0
mov dword [esp + 8], 0xb3d998
lea ebx, [esp + 0x40]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 0
call dbg.runtime.convT2I
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x88], edx
mov dword [esp + 0x104], edx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x108], ecx
nop
call dbg.runtime.deferreturn
add esp, 0xe0
ret
xor ebp, ebp
cmp eax, ebp
jne 0x477805
mov eax, 0xb2d420
mov ebx, dword [eax + 0x20]
mov dword [esp + 0x58], ebx
xor ebp, ebp
cmp ebx, ebp
jne 0x47781b
mov ebx, 0xb2d360
mov dword [esp + 0x58], ebx
mov dword [esp + 0xf8], eax
mov ebp, dword [eax + 0x18]
cmp ebp, 3
jle 0x4778a5
mov dword [esp + 0x40], 0x20000082
mov dword [esp], 0x533de0
mov dword [esp + 4], 0x524ae0
mov dword [esp + 8], 0xb3d998
lea ebx, [esp + 0x40]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 0
call dbg.runtime.convT2I
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x88], edx
mov dword [esp + 0x104], edx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x108], ecx
nop
call dbg.runtime.deferreturn
add esp, 0xe0
ret
mov ebp, dword [eax + 0x18]
cmp ebp, 3
jge 0x477928
mov dword [esp + 0x40], 0x20000027
mov dword [esp], 0x533de0
mov dword [esp + 4], 0x524ae0
mov dword [esp + 8], 0xb3d998
lea ebx, [esp + 0x40]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 0
call dbg.runtime.convT2I
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x88], edx
mov dword [esp + 0x104], edx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x108], ecx
nop
call dbg.runtime.deferreturn
add esp, 0xe0
ret
mov ebp, dword [eax + 4]
cmp ebp, 0
je 0x4779bb
xor ebx, ebx
mov dword [esp + 0x78], ebx
mov dword [esp + 0x7c], ebx
cld
mov ecx, dword [eax]
mov dword [esp], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 4], ecx
mov ebx, dword [esp + 0xe4]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
call dbg.syscall.joinExeDirAndFName
mov ebx, dword [esp + 0x10]
mov dword [esp + 0xe4], ebx
mov edx, dword [esp + 0x14]
mov dword [esp + 0xe8], edx
mov ecx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x78], ecx
cmp ecx, 0
je 0x4779bb
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], ecx
mov dword [esp + 0x108], ebp
nop
call dbg.runtime.deferreturn
add esp, 0xe0
ret
mov ebx, dword [esp + 0xe4]
mov dword [esp], ebx
mov dword [esp + 4], edx
call dbg.syscall.UTF16PtrFromString
mov ecx, dword [esp + 0x58]
mov ebx, dword [esp + 8]
mov dword [esp + 0x6c], ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x104], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x108], ebx
mov ebx, dword [esp + 0x104]
cmp ebx, 0
je 0x477a1f
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
nop
call dbg.runtime.deferreturn
add esp, 0xe0
ret
xor ebx, ebx
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ebx
mov ebp, dword [ecx + 8]
cmp ebp, 0
je 0x477f4f
mov edx, dword [ecx + 4]
mov dword [esp + 0x80], edx
mov eax, dword [ecx + 8]
mov dword [esp + 0x68], 0
mov dword [esp + 0x84], eax
cmp eax, 0
je 0x477ab5
mov dword [esp], edx
mov dword [esp + 4], eax
call dbg.syscall.UTF16PtrFromString
mov ebx, dword [esp + 8]
mov dword [esp + 0x68], ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x104], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x108], ebx
mov ebx, dword [esp + 0x104]
cmp ebx, 0
je 0x477ab5
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
nop
call dbg.runtime.deferreturn
add esp, 0xe0
ret
mov dword [esp + 0x64], 0
mov ebx, dword [esp + 0xf8]
mov ebp, dword [ebx + 4]
cmp ebp, 0
je 0x477b32
mov ebx, dword [esp + 0xf8]
cld
mov ecx, dword [ebx]
mov dword [esp], ecx
mov ecx, dword [ebx + 4]
mov dword [esp + 4], ecx
call dbg.syscall.UTF16PtrFromString
mov ebx, dword [esp + 8]
mov dword [esp + 0x64], ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x104], ebx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x108], ebx
mov ebx, dword [esp + 0x104]
cmp ebx, 0
je 0x477b32
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
nop
call dbg.runtime.deferreturn
add esp, 0xe0
ret
mov ebx, 0xb3db40
mov dword [esp], ebx
call dbg.sync.(*RWMutex).Lock
mov ebx, 0xb3db40
mov dword [esp + 8], ebx
mov dword [esp], 4
mov eax, 0x586330
mov dword [esp + 4], eax
call dbg.runtime.deferproc
cmp eax, 0
jne 0x477f42
call dbg.syscall.GetCurrentProcess
mov ebx, dword [esp]
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0xf8]
mov eax, dword [ebx + 0x18]
mov dword [esp], 0x506840
mov ecx, eax
cdq
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov eax, ecx
cdq
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
call dbg.runtime.makeslice
mov edi, dword [esp + 0x30]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x90], ebx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x94], ebx
mov ebx, dword [esp + 0x1c]
mov dword [esp + 0x98], ebx
xor ecx, ecx
mov ebx, dword [esp + 0xf8]
mov ebp, dword [ebx + 0x18]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x3c]
cmp ecx, ebp
jge 0x477d11
mov dword [esp + 0x44], ecx
mov ebx, dword [esp + 0xf8]
mov ebp, ecx
mov esi, dword [ebx + 0x18]
cmp ecx, esi
jae 0x477f3b
mov esi, dword [ebx + 0x14]
shl ebp, 2
add esi, ebp
mov ebx, dword [esi]
cmp ebx, 0
jbe 0x477d04
mov dword [esp], edi
mov ebx, dword [esp + 0xf8]
mov ebp, ecx
mov esi, dword [ebx + 0x18]
cmp ecx, esi
jae 0x477f34
mov esi, dword [ebx + 0x14]
shl ebp, 2
add esi, ebp
mov ebx, dword [esi]
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0x34], ecx
mov ebx, ecx
mov ebp, dword [esp + 0x94]
cmp ecx, ebp
jae 0x477f2d
mov ebp, dword [esp + 0x90]
shl ebx, 2
add ebp, ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], 0
mov byte [esp + 0x14], 1
mov dword [esp + 0x18], 2
call dbg.syscall.DuplicateHandle
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x74], edx
mov dword [esp + 0x70], ecx
cmp ecx, 0
je 0x477cb8
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
mov dword [esp + 0x104], ecx
mov dword [esp + 0x108], edx
nop
call dbg.runtime.deferreturn
add esp, 0xe0
ret
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x94]
cmp ebx, ebp
jae 0x477f26
mov ebp, dword [esp + 0x90]
shl ebx, 2
add ebp, ebx
mov ebx, dword [ebp]
mov dword [esp + 8], ebx
mov dword [esp], 0xc
mov eax, 0x58633c
mov dword [esp + 4], eax
call dbg.runtime.deferproc
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x44]
cmp eax, 0
jne 0x477f19
inc ecx
mov ebp, dword [esp + 0x3c]
cmp ecx, ebp
jl 0x477bdf
lea edi, [esp + 0x9c]
xor eax, eax
call fcn.0044cedf
lea ebx, [esp + 0x9c]
mov eax, ebx
mov ecx, 0x44
mov dword [ebx], ecx
mov ecx, 0x100
mov dword [ebx + 0x2c], ecx
mov ebx, dword [esp + 0x58]
movzx ebx, byte [ebx]
cmp bl, 0
je 0x477d52
mov ecx, dword [eax + 0x2c]
or ecx, 1
mov dword [eax + 0x2c], ecx
xor ecx, ecx
mov word [eax + 0x30], cx
cmp dword [esp + 0x94], 0
jbe 0x477f12
mov ebx, dword [esp + 0x90]
mov ebp, dword [ebx]
mov dword [eax + 0x38], ebp
cmp dword [esp + 0x94], 1
jbe 0x477f0b
mov ebx, dword [esp + 0x90]
add ebx, 4
mov ebp, dword [ebx]
mov dword [eax + 0x3c], ebp
cmp dword [esp + 0x94], 2
jbe 0x477f04
mov ebx, dword [esp + 0x90]
add ebx, 8
mov ebp, dword [ebx]
mov dword [esp + 0x5c], eax
mov dword [eax + 0x40], ebp
xor ebx, ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], ebx
lea ebx, [esp + 0x48]
mov dword [esp + 0x60], ebx
mov ebx, dword [esp + 0x58]
mov ebx, dword [ebx + 0xc]
or ebx, 0x400
mov dword [esp + 0x38], ebx
mov eax, dword [esp + 0xf8]
cmp eax, 0
je 0x477efd
add eax, 8
cld
mov ecx, dword [eax]
mov dword [esp], ecx
mov ecx, dword [eax + 4]
mov dword [esp + 4], ecx
mov ecx, dword [eax + 8]
mov dword [esp + 8], ecx
call dbg.syscall.createEnvBlock
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x6c]
mov dword [esp], ebx
mov ebx, dword [esp + 0x68]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov byte [esp + 0x10], 1
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], eax
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x24], ebx
call dbg.syscall.CreateProcess
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x104], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x108], ebx
mov ebx, dword [esp + 0x104]
cmp ebx, 0
je 0x477e97
mov dword [esp + 0xfc], 0
mov dword [esp + 0x100], 0
nop
call dbg.runtime.deferreturn
add esp, 0xe0
ret
mov ebx, dword [esp + 0x60]
mov ebp, dword [ebx + 4]
mov dword [esp + 8], ebp
mov dword [esp], 0xc
mov eax, 0x58633c
mov dword [esp + 4], eax
call dbg.runtime.deferproc
mov ecx, dword [esp + 0x60]
cmp eax, 0
jne 0x477ef0
mov edx, dword [ecx + 8]
mov ebp, dword [ecx]
mov dword [esp + 0xfc], edx
mov dword [esp + 0x100], ebp
xor ebx, ebx
mov dword [esp + 0x104], ebx
mov dword [esp + 0x108], ebx
nop
call dbg.runtime.deferreturn
add esp, 0xe0
ret
nop
call dbg.runtime.deferreturn
add esp, 0xe0
ret
mov dword [eax], eax
jmp 0x477de5
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
nop
call dbg.runtime.deferreturn
add esp, 0xe0
ret
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
call dbg.runtime.panicindex
ud2
nop
call dbg.runtime.deferreturn
add esp, 0xe0
ret
mov ebx, dword [esp + 0xec]
mov dword [esp], ebx
mov ebx, dword [esp + 0xf0]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0xf4]
mov dword [esp + 8], ebx
call dbg.syscall.makeCmdLine
mov edx, dword [esp + 0xc]
mov dword [esp + 0x80], edx
mov eax, dword [esp + 0x10]
jmp 0x477a48
call dbg.runtime.morestack_noctxt
jmp dbg.syscall.StartProcess