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

Disassembly:
mov ecx, dword [0x6e06e0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x1c]
cmp eax, dword [ecx + 8]
jbe 0x4c2b3c
sub esp, 0x9c
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov ecx, dword [esp + 0xa4]
mov dword [esp + 4], ecx
call sym.path_filepath.VolumeName
mov eax, dword [esp + 8]
mov dword [esp + 0x88], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x5c], ecx
mov edx, dword [esp + 0xa8]
mov dword [esp], edx
mov ebx, dword [esp + 0xac]
mov dword [esp + 4], ebx
call sym.path_filepath.VolumeName
mov eax, dword [esp + 8]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0xa0]
mov dword [esp], edx
mov ebx, dword [esp + 0xa4]
mov dword [esp + 4], ebx
call sym.path_filepath.Clean
mov eax, dword [esp + 8]
mov dword [esp + 0x8c], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x60], ecx
mov edx, dword [esp + 0xa8]
mov dword [esp], edx
mov ebx, dword [esp + 0xac]
mov dword [esp + 4], ebx
call sym.path_filepath.Clean
mov eax, dword [esp + 8]
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x40], ecx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x8c]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0xc], ebx
call sym.strings.EqualFold
movzx eax, byte [esp + 0x10]
test al, al
jne 0x4c265c
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
cmp ecx, eax
jb 0x4c2b36
sub ecx, eax
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, eax
mov ebx, dword [esp + 0x8c]
add ebx, ecx
mov ebp, dword [esp + 0x3c]
mov ecx, dword [esp + 0x40]
cmp ebp, ecx
ja 0x4c2b2f
sub ecx, ebp
mov dword [esp + 0x40], ecx
mov esi, ecx
neg ecx
sar ecx, 0x1f
and ecx, ebp
mov edi, dword [esp + 0x84]
add ecx, edi
mov dword [esp + 0x84], ecx
cmp edx, 1
jne 0x4c24a1
cmp byte [ebx], 0x2e
jne 0x4c24a1
xor edx, edx
xor ebx, ebx
jmp 0x4c2508
test edx, edx
jne 0x4c2508
mov dword [esp + 0x6c], edx
mov dword [esp + 0x98], ebx
mov ecx, dword [esp + 0x88]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.path_filepath.volumeNameLen
cmp dword [esp + 8], 2
jle 0x4c24ea
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x84]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
mov edx, 1
lea ebx, [0x5b525c]
jmp 0x4c2508
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x84]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x98]
test edx, edx
je 0x4c2518
cmp byte [ebx], 0x5c
xchg edi, ebx
sete bl
xchg edi, ebx
jmp 0x4c251a
xor edi, edi
test esi, esi
je 0x4c2531
cmp byte [ecx], 0x5c
sete cl
mov byte [esp + 0x2f], cl
mov ecx, dword [esp + 0x84]
jmp 0x4c253f
mov dword [esp + 0x70], eax
xor eax, eax
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x70]
movzx ecx, byte [esp + 0x2f]
xchg edi, eax
cmp cl, al
xchg edi, eax
jne 0x4c2589
mov dword [esp + 0x60], edx
mov dword [esp + 0x8c], ebx
mov ecx, dword [esp + 0x88]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
mov dword [esp + 0xc], ebp
call sym.strings.EqualFold
movzx eax, byte [esp + 0x10]
test al, al
je 0x4c2589
xor eax, eax
xor ecx, ecx
jmp 0x4c2691
mov dword [esp], 0
lea eax, [0x57fe56]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x10
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], eax
lea eax, [0x57ed94]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0xd
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x20], eax
call sym.runtime.concatstring4
mov eax, dword [esp + 0x28]
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x7c], ecx
lea edx, [0x55f760]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x38]
mov dword [eax + 4], ecx
mov ecx, dword [0x6e0840]
test ecx, ecx
jne 0x4c261e
mov ecx, dword [esp + 0x7c]
jmp 0x4c2629
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x7c]
mov dword [edi], ecx
mov dword [eax], ecx
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
lea ecx, [0x5b6c84]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
add esp, 0x9c
ret
lea eax, [0x5b5240]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], 1
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
add esp, 0x9c
ret
mov ebx, dword [esp + 0x8c]
mov edx, dword [esp + 0x60]
mov ebp, ecx
jmp 0x4c2775
mov dword [esp + 0x44], eax
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x84]
jmp 0x4c2798
cmp eax, esi
mov ebx, dword [esp + 0x8c]
ja 0x4c2b16
mov esi, dword [esp + 0x44]
cmp esi, eax
ja 0x4c2b0d
mov dword [esp + 0x30], eax
sub eax, esi
mov dword [esp + 0x68], eax
neg eax
sar eax, 0x1f
and eax, esi
add eax, edi
cmp ecx, edx
ja 0x4c2b08
cmp ebp, ecx
ja 0x4c2b01
mov dword [esp + 0x58], ecx
mov dword [esp + 0x6c], ebp
sub ecx, ebp
mov dword [esp + 0x64], ecx
mov esi, ecx
neg ecx
sar ecx, 0x1f
and ecx, ebp
add ecx, ebx
mov dword [esp + 0x90], ecx
mov dword [esp], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], esi
call sym.strings.EqualFold
movzx eax, byte [esp + 0x10]
test al, al
je 0x4c27b3
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
cmp ebx, edx
jge 0x4c2751
lea ecx, [ebx + 1]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x40]
cmp ebx, ebp
jmp 0x4c2763
mov ebp, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
cmp ebp, ecx
mov ebx, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x58]
jge 0x4c276d
lea eax, [ebx + 1]
jmp 0x4c2691
mov eax, ebx
jmp 0x4c2691
inc ecx
cmp ecx, edx
jge 0x4c26a3
jae 0x4c2b26
lea esi, [ebx + ecx]
cmp byte [esi], 0x5c
jne 0x4c2774
jmp 0x4c26a3
inc eax
mov ebx, dword [esp + 0x8c]
cmp eax, esi
jge 0x4c26c0
jae 0x4c2b1f
lea ebx, [eax + edi]
cmp byte [ebx], 0x5c
jne 0x4c2790
jmp 0x4c26b7
mov eax, dword [esp + 0x64]
cmp eax, 2
jne 0x4c28a5
mov eax, dword [esp + 0x90]
cmp word [eax], 0x2e2e
jne 0x4c28a5
mov dword [esp], 0
lea eax, [0x57fe56]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x10
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0xac]
mov dword [esp + 0x10], eax
lea eax, [0x57ed94]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0xd
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x20], eax
call sym.runtime.concatstring4
mov eax, dword [esp + 0x28]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x78], ecx
lea edx, [0x55f760]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x34]
mov dword [eax + 4], ecx
mov ecx, dword [0x6e0840]
test ecx, ecx
jne 0x4c2867
mov ecx, dword [esp + 0x78]
jmp 0x4c2872
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x78]
mov dword [edi], ecx
mov dword [eax], ecx
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
lea ecx, [0x5b6c84]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
add esp, 0x9c
ret
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x60]
cmp eax, ecx
je 0x4c297a
sub ecx, eax
mov edx, ecx
neg ecx
sar ecx, 0x1f
and eax, ecx
mov ecx, dword [esp + 0x8c]
add eax, ecx
mov dword [esp], eax
mov dword [esp + 4], edx
lea eax, [0x5b525c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call sym.strings.Count
mov eax, dword [esp + 0x10]
mov dword [esp + 0x4c], eax
lea ecx, [eax + eax*2 + 2]
lea edx, [eax + eax*2]
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x40]
cmp ebx, ebp
je 0x4c2908
sub ebp, ebx
lea ecx, [edx + ebp + 3]
mov dword [esp + 0x48], ecx
lea eax, [0x559b20]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call sym.runtime.makeslice
mov ecx, dword [esp + 0x48]
cmp ecx, 2
jle 0x4c2932
mov eax, 2
jmp 0x4c2934
mov eax, ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x94], edx
lea ebx, [0x57c643]
cmp edx, ebx
je 0x4c2972
mov dword [esp + 0x50], eax
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call sym.runtime.memmove
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x94]
lea ebx, [0x57c643]
mov ebp, dword [esp + 0x4c]
xor esi, esi
jmp 0x4c29d2
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x44]
sub eax, ecx
mov edx, eax
neg eax
sar eax, 0x1f
and ecx, eax
mov eax, dword [esp + 0x84]
add eax, ecx
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], edx
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
add esp, 0x9c
ret
inc esi
add eax, 3
mov edi, dword [esp + 0x48]
mov ecx, edi
mov edx, dword [esp + 0x94]
cmp esi, ebp
jge 0x4c2a46
cmp eax, ecx
jae 0x4c2afc
mov byte [edx + eax], 0x5c
mov edi, ecx
sub edi, eax
dec edi
mov dword [esp + 0x6c], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
lea ecx, [eax + 1]
and ecx, edi
lea edi, [edx + ecx]
mov ecx, edx
mov edx, dword [esp + 0x6c]
cmp edx, 2
jle 0x4c2a0c
mov edx, 2
cmp ebx, edi
je 0x4c29c1
mov dword [esp + 0x54], esi
mov dword [esp + 0x50], eax
mov dword [esp], edi
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
call sym.runtime.memmove
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x94]
lea ebx, [0x57c643]
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0x54]
jmp 0x4c29c1
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x40]
cmp ebx, ebp
je 0x4c2aae
cmp eax, ecx
jae 0x4c2af7
mov byte [edx + eax], 0x5c
mov esi, ecx
sub ecx, eax
dec ecx
mov edi, ecx
neg ecx
sar ecx, 0x1f
inc eax
and eax, ecx
sub ebp, ebx
mov ecx, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebx, ebp
add eax, edx
mov ebp, dword [esp + 0x84]
add ebx, ebp
cmp ecx, edi
jl 0x4c2a8d
mov ecx, edi
cmp ebx, eax
je 0x4c2ab0
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call sym.runtime.memmove
mov edx, dword [esp + 0x94]
mov esi, dword [esp + 0x48]
jmp 0x4c2ab0
mov esi, ecx
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 8], esi
call sym.runtime.slicebytetostring
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
add esp, 0x9c
ret
call sym.runtime.panicIndex
call sym.runtime.panicIndex
mov eax, ebp
call sym.runtime.panicSliceB
call sym.runtime.panicSliceAlen
mov ecx, eax
mov eax, esi
call sym.runtime.panicSliceB
mov ecx, eax
mov edx, esi
call sym.runtime.panicSliceAlen
mov ecx, esi
call sym.runtime.panicIndex
mov eax, ecx
mov ecx, edx
call sym.runtime.panicIndex
mov eax, ebp
call sym.runtime.panicSliceB
call sym.runtime.panicSliceB
nop
call sym.runtime.morestack_noctxt
jmp sym.path_filepath.Rel