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

Disassembly:
mov ecx, dword [0x5cdb40]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x1c]
cmp eax, dword [ecx + 8]
jbe 0x4b4732
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 0x4b426c
mov ecx, dword [esp + 0x60]
mov eax, dword [esp + 0x5c]
cmp ecx, eax
jb 0x4b472c
sub ecx, eax
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, eax
mov ebx, dword [esp + 0x8c]
add ebx, ecx
mov ecx, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
cmp ecx, ebp
jb 0x4b4725
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 0x4b40b1
cmp byte [ebx], 0x2e
jne 0x4b40b1
xor edx, edx
xor ebx, ebx
jmp 0x4b4118
test edx, edx
jne 0x4b4118
mov dword [esp + 0x74], 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 0x4b40fa
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, [0x4dac59]
jmp 0x4b4118
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x84]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x40]
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x98]
test edx, edx
je 0x4b4128
cmp byte [ebx], 0x5c
xchg edi, ebx
sete bl
xchg edi, ebx
jmp 0x4b412a
xor edi, edi
test esi, esi
je 0x4b4141
cmp byte [ecx], 0x5c
sete cl
mov byte [esp + 0x2f], cl
mov ecx, dword [esp + 0x84]
jmp 0x4b414f
mov dword [esp + 0x6c], eax
xor eax, eax
mov byte [esp + 0x2f], al
mov eax, dword [esp + 0x6c]
movzx ecx, byte [esp + 0x2f]
xchg edi, eax
cmp cl, al
xchg edi, eax
jne 0x4b4199
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 0x4b4199
xor eax, eax
xor ecx, ecx
jmp 0x4b42a1
mov dword [esp], 0
lea eax, [0x4dcd74]
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, [0x4dc2be]
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, [0x4ca8a0]
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 [0x5cdbe8]
test ecx, ecx
jne 0x4b422e
mov ecx, dword [esp + 0x7c]
jmp 0x4b4239
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, [0x501e88]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
add esp, 0x9c
ret
lea eax, [0x4dac56]
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 0x4b4385
mov dword [esp + 0x44], eax
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x84]
jmp 0x4b43a8
cmp eax, esi
mov ebx, dword [esp + 0x8c]
ja 0x4b470c
mov esi, dword [esp + 0x44]
cmp esi, eax
ja 0x4b4703
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 0x4b46fe
cmp ebp, ecx
ja 0x4b46f7
mov dword [esp + 0x58], ecx
mov dword [esp + 0x74], 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 0x4b43c3
mov ebx, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
cmp ebx, edx
jge 0x4b4361
lea ecx, [ebx + 1]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x40]
cmp ebx, ebp
jmp 0x4b4373
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 0x4b437d
lea eax, [ebx + 1]
jmp 0x4b42a1
mov eax, ebx
jmp 0x4b42a1
inc ecx
cmp ecx, edx
jge 0x4b42b3
jae 0x4b471c
lea esi, [ebx + ecx]
cmp byte [esi], 0x5c
jne 0x4b4384
jmp 0x4b42b3
inc eax
mov ebx, dword [esp + 0x8c]
cmp eax, esi
jge 0x4b42d0
jae 0x4b4715
lea ebx, [eax + edi]
cmp byte [ebx], 0x5c
jne 0x4b43a0
jmp 0x4b42c7
mov eax, dword [esp + 0x64]
cmp eax, 2
jne 0x4b44b5
mov eax, dword [esp + 0x90]
cmp word [eax], 0x2e2e
jne 0x4b44b5
mov dword [esp], 0
lea eax, [0x4dcd74]
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, [0x4dc2be]
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, [0x4ca8a0]
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 [0x5cdbe8]
test ecx, ecx
jne 0x4b4477
mov ecx, dword [esp + 0x78]
jmp 0x4b4482
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, [0x501e88]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
add esp, 0x9c
ret
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x60]
cmp eax, ecx
je 0x4b4588
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, [0x4dac59]
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 0x4b4518
sub ebp, ebx
lea ecx, [edx + ebp + 3]
mov dword [esp + 0x48], ecx
lea eax, [0x4c7b20]
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 0x4b4542
mov eax, 2
jmp 0x4b4544
mov eax, ecx
mov edx, dword [esp + 0xc]
mov dword [esp + 0x94], edx
lea ebx, [0x4dac77]
cmp edx, ebx
je 0x4b4582
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, [0x4dac77]
mov ebp, dword [esp + 0x4c]
jmp 0x4b45d7
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
dec ebp
add eax, 3
mov ecx, dword [esp + 0x48]
test ebp, ebp
jle 0x4b463c
cmp eax, ecx
jae 0x4b46f2
mov byte [edx + eax], 0x5c
mov esi, ecx
sub esi, eax
dec esi
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
lea ecx, [eax + 1]
and ecx, esi
lea esi, [edx + ecx]
cmp edi, 2
jle 0x4b4609
mov edi, 2
cmp ebx, esi
je 0x4b45cf
mov dword [esp + 0x54], ebp
mov dword [esp + 0x50], eax
mov dword [esp], esi
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
call sym.runtime.memmove
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x94]
lea ebx, [0x4dac77]
mov ebp, dword [esp + 0x54]
jmp 0x4b45cf
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x40]
cmp ebx, ebp
je 0x4b46a4
cmp eax, ecx
jae 0x4b46ed
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 0x4b4683
mov ecx, edi
cmp ebx, eax
je 0x4b46a6
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 0x4b46a6
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