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

Disassembly:
mov ecx, dword [0x80b088]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0xc4]
cmp eax, dword [ecx + 8]
jbe 0x48e636
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 0x48de92
mov ecx, dword [esp + 0x15c]
test ecx, ecx
jne 0x48daed
lea ecx, [0x7e5cc0]
mov edx, dword [ecx + 0x20]
test edx, edx
jne 0x48dafa
lea edx, [0x7e5d40]
mov ebx, dword [ecx + 0x18]
cmp ebx, 3
jg 0x48de56
jl 0x48de1a
mov dword [esp + 0xe4], ecx
mov dword [esp + 0xcc], edx
mov ebx, dword [ecx + 4]
test ebx, ebx
jne 0x48db2a
mov ebx, dword [esp + 0x148]
jmp 0x48db5f
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 0x48dde2
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 0x48db7b
mov ecx, dword [esp + 0x18]
xor edx, edx
jmp 0x48db8f
mov edx, dword [esp + 0xc]
test edx, edx
jbe 0x48e62c
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 0x48ddc0
mov dword [esp + 0xc8], edx
mov eax, dword [esp + 0xcc]
mov ecx, dword [eax + 8]
test ecx, ecx
je 0x48dbbf
mov ebx, dword [eax + 4]
jmp 0x48dbfa
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 0x48dc02
xor ecx, ecx
jmp 0x48dc58
mov dword [esp], ebx
mov dword [esp + 4], ecx
call sym.syscall.UTF16FromString
mov eax, dword [esp + 0x14]
test eax, eax
je 0x48dc1e
mov ecx, dword [esp + 0x18]
xor edx, edx
jmp 0x48dc32
mov edx, dword [esp + 0xc]
test edx, edx
jbe 0x48e623
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 0x48dd9e
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 0x48dc71
xor ebp, ebp
jmp 0x48dcbb
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 0x48dc8f
mov ecx, dword [esp + 0x18]
xor edx, edx
jmp 0x48dca3
mov edx, dword [esp + 0xc]
test edx, edx
jbe 0x48e61a
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 0x48dd7c
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 0x48dd06
mov eax, 1
jmp 0x48dd14
jne 0x48dd12
cmp dword [esp + 0x40], 1
setbe al
jmp 0x48dd14
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 0x48dd34
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, [0x602240]
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 0x48decf
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, [0x68bef0]
mov dword [esp + 0x168], eax
lea eax, [0x68b53c]
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, [0x68bef0]
mov dword [esp + 0x168], eax
lea eax, [0x68b540]
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, [0x68bef0]
mov dword [esp + 0x168], eax
lea eax, [0x68b540]
mov dword [esp + 0x16c], eax
call sym.runtime.deferreturn
add esp, 0x144
ret
inc ebx
cmp ebx, edx
jge 0x48e00d
mov ebp, dword [ecx + 0x18]
cmp ebx, ebp
jae 0x48e611
mov ebp, dword [ecx + 0x14]
mov ebp, dword [ebp + ebx*4]
test ebp, ebp
jbe 0x48dece
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
cmp esi, edi
je 0x48df1f
movzx edx, byte [esp + 0x37]
test dl, dl
je 0x48df24
mov dword [esp + 0x60], ebp
and ebp, 0x10000003
cmp ebp, 3
jne 0x48df19
mov ebp, dword [esp + 0x60]
mov esi, edi
jmp 0x48df24
mov ebp, dword [esp + 0x60]
jmp 0x48df24
movzx edx, byte [esp + 0x37]
mov edx, dword [esp + 0x54]
cmp ebx, edx
jae 0x48e608
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 0x48dfd5
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xe0]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x5c], edx
lea ebx, [0x60dd20]
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 0x48dfc9
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xe4]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x4c]
jmp 0x48dece
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.004673ce
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 0x48e255
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 0x48e249
mov dword [esp + 0xfc], 0x48
mov dword [esp + 0x128], 0x100
mov edx, dword [esp + 0xcc]
movzx ebx, byte [edx]
test bl, bl
je 0x48e0e3
mov dword [esp + 0x128], 0x101
mov word [esp + 0x12c], 0
mov ebx, dword [edx + 0x2c]
test ebx, ebx
je 0x48e151
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 0x48e227
mov edx, dword [esp + 0xcc]
mov ebx, dword [esp + 0x54]
test ebx, ebx
jbe 0x48e5ff
mov ebp, dword [esp + 0xe0]
mov esi, dword [ebp]
mov dword [esp + 0x134], esi
cmp ebx, 1
jbe 0x48e5f3
mov esi, dword [ebp + 4]
mov dword [esp + 0x138], esi
cmp ebx, 2
jbe 0x48e5e7
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 0x48e1a5
mov edi, ebx
jmp 0x48e1ed
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, [0x602240]
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 0x48e278
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 0x48e297
mov ebp, dword [eax + ebx*4]
test cl, cl
je 0x48e277
and ebp, 0x10000003
cmp ebp, 3
jne 0x48e277
mov dword [eax + ebx*4], 0
jmp 0x48e277
xor ecx, ecx
xor ebx, ebx
jmp 0x48e29e
inc ecx
cmp ecx, edx
jge 0x48e2b7
mov ebp, dword [eax + ecx*4]
test ebp, ebp
je 0x48e29d
cmp ebx, edx
jae 0x48e5de
mov dword [eax + ebx*4], ebp
inc ebx
jmp 0x48e29d
mov edx, dword [esp + 0x54]
cmp ebx, edx
ja 0x48e5d7
test ebx, ebx
je 0x48e2d7
mov ebp, dword [esp + 0xcc]
movzx esi, byte [ebp + 0x1c]
xor esi, 1
jmp 0x48e2e0
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 0x48e376
test ebx, ebx
jbe 0x48e5ce
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 0x48e376
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 0x48e5ac
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 0x48e466
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 0x48e4d3
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 0x48e58a
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 0x48e57e
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