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

Disassembly:
mov ecx, dword [0x621238]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0xc4]
cmp eax, dword [ecx + 8]
jbe 0x48c876
sub esp, 0x144
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x168], 0
mov dword [esp + 0x16c], 0
mov eax, dword [esp + 0x14c]
test eax, eax
je 0x48c0d2
mov ecx, dword [esp + 0x15c]
test ecx, ecx
jne 0x48bd2d
lea ecx, [0x5fc4c0]
mov edx, dword [ecx + 0x20]
test edx, edx
jne 0x48bd3a
lea edx, [0x5fc580]
mov ebx, dword [ecx + 0x18]
cmp ebx, 3
jg 0x48c096
jl 0x48c05a
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xcc], edx
mov ebx, dword [ecx + 4]
test ebx, ebx
jne 0x48bd6a
mov ebx, dword [esp + 0x148]
jmp 0x48bd9f
mov edx, dword [ecx]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov edx, dword [esp + 0x148]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
call sym.syscall.joinExeDirAndFName
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x48c022
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov ebx, eax
mov eax, ecx
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym.syscall.UTF16FromString
mov eax, dword [esp + 0x14]
test eax, eax
je 0x48bdbb
mov ecx, dword [esp + 0x18]
xor edx, edx
jmp 0x48bdcf
mov edx, dword [esp + 0xc]
test edx, edx
jbe 0x48c86c
mov edx, dword [esp + 8]
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], ecx
test eax, eax
jne 0x48c000
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x48bdff
mov ebx, dword [eax + 4]
jmp 0x48be3a
mov eax, dword [esp + 0x150]
mov dword [esp], eax
mov eax, dword [esp + 0x154]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x158]
mov dword [esp + 8], eax
call sym.syscall.makeCmdLine
mov ebx, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
test ecx, ecx
jne 0x48be42
xor ecx, ecx
jmp 0x48be98
mov dword [esp], ebx
mov dword [esp + 4], ecx
call sym.syscall.UTF16FromString
mov eax, dword [esp + 0x14]
test eax, eax
je 0x48be5e
mov ecx, dword [esp + 0x18]
xor edx, edx
jmp 0x48be72
mov edx, dword [esp + 0xc]
test edx, edx
jbe 0x48c863
mov edx, dword [esp + 8]
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], ecx
test eax, eax
jne 0x48bfde
mov eax, dword [esp + 0xcc]
mov ecx, edx
mov edx, dword [esp + 0xc8]
mov dword [esp + 0xd8], ecx
mov ebx, dword [esp + 0xe4]
mov ebp, dword [ebx + 4]
test ebp, ebp
jne 0x48beb1
xor ebp, ebp
jmp 0x48befb
mov eax, dword [ebx]
mov dword [esp], eax
mov dword [esp + 4], ebp
call sym.syscall.UTF16FromString
mov eax, dword [esp + 0x14]
test eax, eax
je 0x48becf
mov ecx, dword [esp + 0x18]
xor edx, edx
jmp 0x48bee3
mov edx, dword [esp + 0xc]
test edx, edx
jbe 0x48c85a
mov edx, dword [esp + 8]
xor eax, eax
xor ecx, ecx
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], ecx
test eax, eax
jne 0x48bfbc
mov ebp, edx
mov dword [esp + 0xd4], ebp
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x58], 0
lea eax, [esp + 0x44]
mov dword [esp], eax
lea eax, [esp + 0x40]
mov dword [esp + 4], eax
lea eax, [esp + 0x58]
mov dword [esp + 8], eax
call sym.syscall.rtlGetNtVersionNumbers
mov eax, dword [esp + 0x44]
cmp eax, 6
jae 0x48bf46
mov eax, 1
jmp 0x48bf54
jne 0x48bf52
cmp dword [esp + 0x40], 1
setbe al
jmp 0x48bf54
xor eax, eax
mov byte [esp + 0x37], al
call sym.syscall.GetCurrentProcess
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0x2c]
mov edx, dword [esp]
mov dword [esp + 0x3c], edx
test ecx, ecx
jne 0x48bf74
mov ecx, edx
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0xe4]
mov edx, dword [eax + 0x18]
mov dword [esp + 0x54], edx
lea ebx, [0x503c80]
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov dword [esp + 0xe0], eax
mov ecx, dword [esp + 0xe4]
mov edx, dword [ecx + 0x18]
mov dword [esp + 0x64], edx
xor ebx, ebx
jmp 0x48c10f
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
call sym.runtime.deferreturn
add esp, 0x144
ret
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
call sym.runtime.deferreturn
add esp, 0x144
ret
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
call sym.runtime.deferreturn
add esp, 0x144
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], ecx
call sym.runtime.deferreturn
add esp, 0x144
ret
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
lea eax, [0x54d74c]
mov dword [esp + 0x168], eax
lea eax, [0x54d1a8]
mov dword [esp + 0x16c], eax
call sym.runtime.deferreturn
add esp, 0x144
ret
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
lea eax, [0x54d74c]
mov dword [esp + 0x168], eax
lea eax, [0x54d1ac]
mov dword [esp + 0x16c], eax
call sym.runtime.deferreturn
add esp, 0x144
ret
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
lea eax, [0x54d74c]
mov dword [esp + 0x168], eax
lea eax, [0x54d1ac]
mov dword [esp + 0x16c], eax
call sym.runtime.deferreturn
add esp, 0x144
ret
inc ebx
cmp ebx, edx
jge 0x48c24d
mov ebp, dword [ecx + 0x18]
cmp ebx, ebp
jae 0x48c851
mov ebp, dword [ecx + 0x14]
mov ebp, dword [ebp + ebx*4]
test ebp, ebp
jbe 0x48c10e
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
cmp esi, edi
je 0x48c15f
movzx edx, byte [esp + 0x37]
test dl, dl
je 0x48c164
mov dword [esp + 0x60], ebp
and ebp, 0x10000003
cmp ebp, 3
jne 0x48c159
mov ebp, dword [esp + 0x60]
mov esi, edi
jmp 0x48c164
mov ebp, dword [esp + 0x60]
jmp 0x48c164
movzx edx, byte [esp + 0x37]
mov edx, dword [esp + 0x54]
cmp ebx, edx
jae 0x48c848
mov dword [esp + 0x4c], ebx
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
lea ecx, [eax + ebx*4]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 0
mov byte [esp + 0x14], 1
mov dword [esp + 0x18], 2
call sym.syscall.DuplicateHandle
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x48c215
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xe0]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x5c], edx
lea ebx, [0x509d20]
mov dword [esp], ebx
call sym.runtime.newobject
mov eax, dword [esp + 4]
lea ecx, [sym.syscall.StartProcess.func2]
mov dword [eax], ecx
mov edx, dword [esp + 0x38]
mov dword [eax + 4], edx
mov ebx, dword [esp + 0x5c]
mov dword [eax + 8], ebx
mov dword [esp], eax
call sym.runtime.deferproc
test eax, eax
jne 0x48c209
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x4c]
jmp 0x48c10e
call sym.runtime.deferreturn
add esp, 0x144
ret
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], ecx
call sym.runtime.deferreturn
add esp, 0x144
ret
lea edi, [esp + 0xfc]
xor eax, eax
call fcn.004669ae
mov dword [esp], 2
call sym.syscall.newProcThreadAttributeList
mov ecx, dword [esp + 4]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0xc]
mov ebp, dword [esp + 8]
mov dword [esp + 0x140], ecx
mov dword [esp + 0x168], edx
mov dword [esp + 0x16c], ebx
test ebp, ebp
jne 0x48c495
mov eax, dword [esp + 0x140]
mov dword [esp + 0xe8], 0
mov dword [esp + 0xec], 0
lea ecx, [sym.syscall.StartProcess.func3]
mov dword [esp + 0xe8], ecx
mov dword [esp + 0xec], eax
lea eax, [esp + 0xe8]
mov dword [esp + 0xb0], eax
lea eax, [esp + 0xa4]
mov dword [esp], eax
call sym.runtime.deferprocStack
test eax, eax
jne 0x48c489
mov dword [esp + 0xfc], 0x48
mov dword [esp + 0x128], 0x100
mov edx, dword [esp + 0xcc]
movzx ebx, byte [edx]
test bl, bl
je 0x48c323
mov dword [esp + 0x128], 0x101
mov word [esp + 0x12c], 0
mov ebx, dword [edx + 0x2c]
test ebx, ebx
je 0x48c391
lea eax, [edx + 0x2c]
mov ecx, dword [esp + 0x140]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0x20000
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 4
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call sym.syscall.updateProcThreadAttribute
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], ecx
test edx, edx
jne 0x48c467
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0x54]
test ebx, ebx
jbe 0x48c83f
mov ebp, dword [esp + 0xe0]
mov esi, dword [ebp]
mov dword [esp + 0x134], esi
cmp ebx, 1
jbe 0x48c833
mov esi, dword [ebp + 4]
mov dword [esp + 0x138], esi
cmp ebx, 2
jbe 0x48c827
mov eax, dword [ebp + 8]
mov dword [esp + 0x13c], eax
mov eax, dword [edx + 0x24]
lea ecx, [ebx + eax]
mov esi, dword [edx + 0x20]
cmp ebx, ecx
jb 0x48c3e5
mov edi, ebx
jmp 0x48c42d
mov dword [esp + 0x64], eax
mov dword [esp + 0xdc], esi
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
lea ecx, [0x503c80]
mov dword [esp + 0x10], ecx
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0xdc]
mov edi, dword [esp + 0x54]
mov ebp, eax
mov ebx, edx
mov eax, dword [esp + 0x64]
mov dword [esp + 0x54], ebx
mov dword [esp + 0x50], ecx
mov dword [esp + 0xd0], ebp
lea edx, [ebp + edi*4]
mov dword [esp], edx
mov dword [esp + 4], esi
shl eax, 2
mov dword [esp + 8], eax
call sym.runtime.memmove
mov eax, dword [esp + 0xd0]
movzx ecx, byte [esp + 0x37]
mov edx, dword [esp + 0x50]
xor ebx, ebx
jmp 0x48c4b8
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
call sym.runtime.deferreturn
add esp, 0x144
ret
call sym.runtime.deferreturn
add esp, 0x144
ret
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
call sym.runtime.deferreturn
add esp, 0x144
ret
inc ebx
cmp ebx, edx
jge 0x48c4d7
mov ebp, dword [eax + ebx*4]
test cl, cl
je 0x48c4b7
and ebp, 0x10000003
cmp ebp, 3
jne 0x48c4b7
mov dword [eax + ebx*4], 0
jmp 0x48c4b7
xor ecx, ecx
xor ebx, ebx
jmp 0x48c4de
inc ecx
cmp ecx, edx
jge 0x48c4f7
mov ebp, dword [eax + ecx*4]
test ebp, ebp
je 0x48c4dd
cmp ebx, edx
jae 0x48c81e
mov dword [eax + ebx*4], ebp
inc ebx
jmp 0x48c4dd
mov edx, dword [esp + 0x54]
cmp ebx, edx
ja 0x48c817
test ebx, ebx
je 0x48c517
mov ebp, dword [esp + 0xcc]
movzx esi, byte [ebp + 0x1c]
xor esi, 1
jmp 0x48c520
mov ebp, dword [esp + 0xcc]
xor esi, esi
xchg esi, eax
mov byte [esp + 0x36], al
xchg esi, eax
mov dword [esp + 0x48], ebx
xchg esi, eax
test al, al
xchg esi, eax
je 0x48c5b6
test ebx, ebx
jbe 0x48c80e
mov ecx, dword [esp + 0x140]
mov dword [esp], ecx
mov dword [esp + 4], 0
mov dword [esp + 8], 0x20002
mov dword [esp + 0xc], eax
shl ebx, 2
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call sym.syscall.updateProcThreadAttribute
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], ecx
test edx, edx
je 0x48c5b6
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
call sym.runtime.deferreturn
add esp, 0x144
ret
mov eax, dword [esp + 0xe4]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call sym.syscall.createEnvBlock
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], ecx
test edx, edx
jne 0x48c7ec
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
or ecx, 0x80400
test edx, edx
je 0x48c6a6
mov ebp, dword [eax + 0x14]
mov esi, dword [eax + 0x18]
mov dword [esp], edx
mov edx, dword [esp + 0xc8]
mov dword [esp + 4], edx
mov edx, dword [esp + 0xd8]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], esi
movzx edx, byte [esp + 0x36]
mov byte [esp + 0x14], dl
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0xfc]
mov dword [esp + 0x24], ecx
lea ecx, [esp + 0x70]
mov dword [esp + 0x28], ecx
call sym.syscall.CreateProcessAsUser
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], ecx
jmp 0x48c713
mov edx, dword [eax + 0x14]
mov ebp, dword [eax + 0x18]
mov esi, dword [esp + 0xc8]
mov dword [esp], esi
mov esi, dword [esp + 0xd8]
mov dword [esp + 4], esi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebp
movzx edx, byte [esp + 0x36]
mov byte [esp + 0x10], dl
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ebx
mov ecx, dword [esp + 0xd4]
mov dword [esp + 0x1c], ecx
lea ecx, [esp + 0xfc]
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x70]
mov dword [esp + 0x24], ecx
call sym.syscall.CreateProcess
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x168], eax
mov dword [esp + 0x16c], ecx
mov eax, dword [esp + 0x168]
test eax, eax
jne 0x48c7ca
mov eax, dword [esp + 0x74]
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
lea ecx, [sym.syscall.StartProcess.func4]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x6c], eax
lea eax, [esp + 0x68]
mov dword [esp + 0x8c], eax
lea eax, [esp + 0x80]
mov dword [esp], eax
call sym.runtime.deferprocStack
test eax, eax
jne 0x48c7be
mov eax, dword [esp + 0xd0]
mov dword [esp + 0xf0], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0xf4], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0xf8], eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x160], eax
mov dword [esp + 0x164], ecx
mov dword [esp + 0x168], 0
mov dword [esp + 0x16c], 0
call sym.runtime.deferreturn
add esp, 0x144
ret
call sym.runtime.deferreturn
add esp, 0x144
ret
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
call sym.runtime.deferreturn
add esp, 0x144
ret
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
call sym.runtime.deferreturn
add esp, 0x144
ret
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
mov ecx, ebx
call sym.runtime.panicSliceAcap
mov eax, ebx
mov ecx, edx
call sym.runtime.panicIndex
mov eax, 2
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 1
mov ecx, eax
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
mov eax, ebx
mov ecx, edx
call sym.runtime.panicIndex
mov eax, ebx
mov ecx, ebp
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.syscall.StartProcess