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

Disassembly:
mov ecx, dword [0x9364f0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x697c2b
sub esp, 0x6c
mov eax, dword [esp + 0x70]
mov dword [esp], eax
mov ecx, dword [esp + 0x74]
mov dword [esp + 4], ecx
call sym.internal_filepathlite.Base
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x74]
cmp ecx, eax
je 0x6977fd
mov eax, dword [esp + 0x70]
jmp 0x69785e
mov ecx, dword [esp + 8]
mov dword [esp], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
jne 0x697828
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x70]
jmp 0x69785e
mov dword [esp], 0
lea eax, [0x7007bb]
mov dword [esp + 4], eax
mov dword [esp + 8], 2
mov eax, dword [esp + 0x70]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0x10], eax
call sym.runtime.concatstring2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x50], eax
mov dword [esp + 0x2c], ecx
call sym.os_exec.pathExt
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x2c]
lea edx, [ecx - 1]
mov ebx, dword [esp + 0x50]
jmp 0x69787d
dec edx
test edx, edx
jl 0x6978b8
cmp edx, ecx
jae 0x697c23
movzx ebp, byte [ebx + edx]
xchg ebp, eax
cmp al, 0x5c
xchg ebp, eax
je 0x6978b8
xchg ebp, eax
cmp al, 0x2f
xchg ebp, eax
je 0x6978b8
xchg ebp, eax
cmp al, 0x2e
xchg ebp, eax
jne 0x69787c
mov ebp, ecx
sub ecx, edx
mov esi, ecx
neg ecx
sar ecx, 0x1f
and edx, ecx
lea ecx, [ebx + edx]
mov edx, ecx
mov ecx, ebp
jmp 0x6978bc
xor esi, esi
xor edx, edx
mov dword [esp + 0x38], eax
mov ebp, dword [esp]
mov dword [esp + 0x58], ebp
mov edi, dword [esp + 4]
mov dword [esp + 0x34], edi
test esi, esi
je 0x6978ea
mov dword [esp + 0x4c], edx
mov dword [esp + 0x28], esi
mov dword [esp + 0x3c], eax
xor eax, eax
mov dword [esp + 0x44], eax
jmp 0x697bbc
mov edx, dword [esp + 0x7c]
test edx, edx
je 0x697b4e
mov dword [esp], ebx
mov dword [esp + 4], ecx
call sym.internal_filepathlite.VolumeName
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x697af2
mov eax, dword [esp + 0x2c]
cmp eax, 1
jle 0x69797c
mov ecx, dword [esp + 0x50]
movzx edx, byte [ecx]
cmp dl, 0x5c
je 0x697928
cmp dl, 0x2f
jne 0x697980
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
call sym.os_exec.lookPath
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], ebx
add esp, 0x6c
ret
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov edx, dword [esp + 0x7c]
mov dword [esp + 0x60], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x68], eax
mov dword [esp + 0x64], ecx
lea edx, [esp + 0x5c]
mov dword [esp], edx
mov dword [esp + 4], 2
mov dword [esp + 8], 2
call sym.path_filepath.join
mov eax, dword [esp + 0xc]
mov dword [esp + 0x48], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x24], ecx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x34]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x38]
mov dword [esp + 0x10], edx
call sym.os_exec.lookPath
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x697ac6
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x14]
nop
nop
mov eax, dword [esp + 0x24]
cmp eax, ecx
jle 0x697a2a
xor ebx, ebx
jmp 0x697a59
mov dword [esp + 0x30], ecx
mov dword [esp + 0x54], edx
mov dword [esp], edx
mov ecx, dword [esp + 0x48]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x54]
mov ebx, eax
mov eax, dword [esp + 0x24]
test bl, bl
je 0x697a72
cmp eax, ecx
ja 0x697b96
sub ecx, eax
mov ebx, ecx
neg ebx
sar ebx, 0x1f
and eax, ebx
add edx, eax
mov dword [esp], 0
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
call sym.runtime.concatstring2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
add esp, 0x6c
ret
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
add esp, 0x6c
ret
mov eax, dword [esp + 0x50]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x10], eax
call sym.os_exec.lookPath
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], ebx
add esp, 0x6c
ret
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], eax
call sym.os_exec.lookPath
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], ebx
add esp, 0x6c
ret
call sym.runtime.panicSliceB
mov eax, dword [esp + 0x44]
inc eax
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x28]
mov edi, dword [esp + 0x34]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x44]
cmp eax, edi
jge 0x697c1a
lea ecx, [ebp + eax*8]
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp], edx
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call sym.strings.EqualFold
movzx eax, byte [esp + 0x10]
test al, al
je 0x697b9b
mov eax, dword [esp + 0x50]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
add esp, 0x6c
ret
mov eax, dword [esp + 0x38]
jmp 0x6978ea
mov eax, edx
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.os_exec.lookExtensions