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

Disassembly:
mov ecx, dword [0x5ce0f0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x30]
cmp eax, dword [ecx + 8]
jbe 0x4b6c33
sub esp, 0xb0
mov eax, dword [esp + 0xb4]
mov dword [esp], eax
mov ecx, dword [esp + 0xb8]
mov dword [esp + 4], ecx
call sym.path_filepath.volumeNameLen
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xb8]
cmp ecx, eax
jb 0x4b6c2d
mov edx, ecx
sub ecx, eax
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and ecx, eax
mov ebp, dword [esp + 0xb4]
lea esi, [ebp + ecx]
test ebx, ebx
je 0x4b638e
mov dword [esp + 0x28], eax
movzx ecx, byte [ebp + ecx]
cmp cl, 0x5c
jne 0x4b6260
mov ecx, 1
jmp 0x4b6266
cmp cl, 0x2f
sete cl
mov dword [esp + 0x40], ebx
mov dword [esp + 0x64], esi
mov byte [esp + 0x26], cl
lea edi, [esp + 0x8c]
xor eax, eax
call fcn.00465697
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], ebx
mov dword [esp + 0xa4], ebp
mov dword [esp + 0xa8], edx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0xac], ecx
lea edi, [esp + 0x68]
mov eax, esi
lea esi, [esp + 0x8c]
call fcn.00465b56
movzx ecx, byte [esp + 0x26]
test cl, cl
je 0x4b6385
mov edx, dword [esp + 0x70]
test edx, edx
jne 0x4b6362
mov edx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x6c]
cmp ebp, edx
jle 0x4b62f9
jbe 0x4b6c24
mov esi, dword [esp + 0x68]
add esi, edx
cmp byte [esi], 0x5c
jne 0x4b62f9
inc edx
mov dword [esp + 0x7c], edx
jmp 0x4b637e
mov dword [esp + 0x3c], ebp
lea eax, [0x4d6820]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x7c]
cmp edx, ebx
jb 0x4b6c1d
cmp ebx, ecx
jl 0x4b633d
mov ebx, ecx
mov edx, dword [esp + 0x68]
cmp edx, eax
je 0x4b6355
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call sym.runtime.memmove
mov eax, dword [esp + 0x64]
movzx ecx, byte [esp + 0x26]
mov ebx, dword [esp + 0x40]
mov edx, dword [esp + 0x74]
mov ebp, dword [esp + 0x7c]
cmp edx, ebp
jbe 0x4b6c14
mov edx, dword [esp + 0x70]
mov byte [edx + ebp], 0x5c
inc dword [esp + 0x7c]
mov edx, 1
jmp 0x4b6387
xor edx, edx
mov ebp, edx
jmp 0x4b6448
cmp eax, 1
jle 0x4b6405
movzx eax, byte [ebp]
cmp al, 0x5c
je 0x4b63a1
cmp al, 0x2f
jne 0x4b6405
movzx eax, byte [ebp + 1]
cmp al, 0x5c
je 0x4b63af
cmp al, 0x2f
jne 0x4b6405
nop
mov dword [esp], ebp
mov dword [esp + 4], edx
lea eax, [0x4ea719]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x5135e0]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0xffffffff
call sym.strings.Replace
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
add esp, 0xb0
ret
mov dword [esp], 0
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
lea eax, [0x5135d0]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 1
call sym.runtime.concatstring2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
add esp, 0xb0
ret
cmp edx, ebx
jge 0x4b6853
jae 0x4b6c0b
movzx esi, byte [eax + edx]
xchg esi, eax
cmp al, 0x5c
xchg esi, eax
je 0x4b6468
xchg esi, eax
cmp al, 0x2f
xchg esi, eax
jne 0x4b646b
inc edx
jmp 0x4b6448
xchg esi, eax
cmp al, 0x2e
xchg esi, eax
jne 0x4b6757
lea edi, [edx + 1]
cmp ebx, edi
je 0x4b649c
jbe 0x4b6c02
movzx eax, byte [edx + eax + 1]
cmp al, 0x5c
jne 0x4b6493
mov eax, dword [esp + 0x64]
jmp 0x4b649c
cmp al, 0x2f
jne 0x4b64a0
mov eax, dword [esp + 0x64]
mov edx, edi
jmp 0x4b6448
xchg esi, eax
cmp al, 0x2e
xchg esi, eax
jne 0x4b674f
cmp ebx, edi
jbe 0x4b6bf9
mov esi, dword [esp + 0x64]
lea edi, [edx + esi + 1]
cmp byte [edi], 0x2e
jne 0x4b674b
lea eax, [edx + 2]
cmp ebx, eax
je 0x4b64e8
jbe 0x4b6bf2
movzx edi, byte [edx + esi + 2]
xchg edi, eax
cmp al, 0x5c
xchg edi, eax
je 0x4b64e8
xchg edi, eax
cmp al, 0x2f
xchg edi, eax
jne 0x4b6747
mov edx, dword [esp + 0x7c]
cmp ebp, edx
jge 0x4b64fa
dec edx
mov dword [esp + 0x7c], edx
jmp 0x4b6b98
test cl, cl
jne 0x4b6b3f
mov dword [esp + 0x38], eax
test edx, edx
jle 0x4b65c6
mov ebp, dword [esp + 0x70]
test ebp, ebp
jne 0x4b65aa
mov ebp, dword [esp + 0x6c]
cmp ebp, edx
jle 0x4b653d
jbe 0x4b6b8a
mov edi, dword [esp + 0x68]
add edi, edx
cmp byte [edi], 0x5c
jne 0x4b653d
inc edx
mov dword [esp + 0x7c], edx
jmp 0x4b65c6
mov dword [esp + 0x3c], ebp
lea eax, [0x4d6820]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x7c]
cmp edx, ebx
jb 0x4b6b83
cmp ebx, ecx
jl 0x4b6581
mov ebx, ecx
mov edx, dword [esp + 0x68]
cmp edx, eax
je 0x4b6599
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call sym.runtime.memmove
mov eax, dword [esp + 0x38]
movzx ecx, byte [esp + 0x26]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x74]
mov ebp, dword [esp + 0x7c]
cmp edx, ebp
jbe 0x4b6b7a
mov edx, dword [esp + 0x70]
mov byte [edx + ebp], 0x5c
inc dword [esp + 0x7c]
mov edx, dword [esp + 0x70]
test edx, edx
jne 0x4b6666
mov edx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x6c]
cmp ebp, edx
jle 0x4b65f9
jbe 0x4b6b71
mov edi, dword [esp + 0x68]
add edi, edx
cmp byte [edi], 0x2e
jne 0x4b65f9
inc edx
mov dword [esp + 0x7c], edx
jmp 0x4b6682
mov dword [esp + 0x3c], ebp
lea eax, [0x4d6820]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x7c]
cmp ebx, edx
ja 0x4b6b6a
cmp ebx, ecx
jl 0x4b663d
mov ebx, ecx
mov edx, dword [esp + 0x68]
cmp edx, eax
je 0x4b6655
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call sym.runtime.memmove
mov eax, dword [esp + 0x38]
movzx ecx, byte [esp + 0x26]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x74]
mov ebp, dword [esp + 0x7c]
cmp edx, ebp
jbe 0x4b6b61
mov edx, dword [esp + 0x70]
mov byte [edx + ebp], 0x2e
inc dword [esp + 0x7c]
mov edx, dword [esp + 0x70]
test edx, edx
jne 0x4b6722
mov edx, dword [esp + 0x7c]
mov ebp, dword [esp + 0x6c]
cmp edx, ebp
jge 0x4b66b5
jae 0x4b6b58
mov edi, dword [esp + 0x68]
add edi, edx
cmp byte [edi], 0x2e
jne 0x4b66b5
inc edx
mov dword [esp + 0x7c], edx
jmp 0x4b673e
mov dword [esp + 0x3c], ebp
lea eax, [0x4d6820]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], ebp
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x7c]
cmp ebx, edx
ja 0x4b6b51
cmp ebx, ecx
jl 0x4b66f9
mov ebx, ecx
mov edx, dword [esp + 0x68]
cmp edx, eax
je 0x4b6711
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call sym.runtime.memmove
mov eax, dword [esp + 0x38]
movzx ecx, byte [esp + 0x26]
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x64]
mov edx, dword [esp + 0x74]
mov ebp, dword [esp + 0x7c]
cmp ebp, edx
jae 0x4b6b48
mov edx, dword [esp + 0x70]
mov byte [edx + ebp], 0x2e
inc dword [esp + 0x7c]
mov ebp, dword [esp + 0x7c]
jmp 0x4b6b3f
test cl, cl
jmp 0x4b675b
test cl, cl
jmp 0x4b675b
test cl, cl
mov esi, dword [esp + 0x64]
jmp 0x4b675b
test cl, cl
mov esi, eax
mov dword [esp + 0x30], ebp
je 0x4b6770
cmp dword [esp + 0x7c], 1
jne 0x4b677c
test cl, cl
jne 0x4b6a1d
mov edi, dword [esp + 0x7c]
test edi, edi
je 0x4b6a1d
mov edi, dword [esp + 0x70]
test edi, edi
jne 0x4b682b
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x7c]
mov edi, dword [esp + 0x6c]
cmp eax, edi
jge 0x4b67ba
jae 0x4b6b38
mov ecx, dword [esp + 0x68]
add ecx, eax
cmp byte [ecx], 0x5c
jne 0x4b67ba
lea edi, [eax + 1]
mov dword [esp + 0x7c], edi
movzx ecx, byte [esp + 0x26]
jmp 0x4b6a1d
mov dword [esp + 0x3c], edi
lea eax, [0x4d6820]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], edi
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x7c]
cmp ebx, edx
ja 0x4b6b31
cmp ebx, ecx
jl 0x4b67fe
mov ebx, ecx
mov edx, dword [esp + 0x68]
cmp edx, eax
je 0x4b6816
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call sym.runtime.memmove
movzx ecx, byte [esp + 0x26]
mov edx, dword [esp + 0x2c]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x64]
mov edi, dword [esp + 0x74]
mov eax, dword [esp + 0x7c]
cmp eax, edi
jae 0x4b6b2a
mov edi, dword [esp + 0x70]
mov byte [edi + eax], 0x5c
inc dword [esp + 0x7c]
jmp 0x4b6a1d
mov eax, esi
jmp 0x4b6448
mov eax, dword [esp + 0x7c]
test eax, eax
jne 0x4b68ff
mov edx, dword [esp + 0x70]
test edx, edx
jne 0x4b68e3
mov ecx, dword [esp + 0x6c]
cmp eax, ecx
jge 0x4b6887
jae 0x4b6a12
mov edx, dword [esp + 0x68]
add edx, eax
cmp byte [edx], 0x2e
jne 0x4b6887
inc eax
mov dword [esp + 0x7c], eax
jmp 0x4b68ff
mov dword [esp + 0x40], ecx
lea eax, [0x4d6820]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x7c]
cmp ebx, edx
ja 0x4b6a0b
cmp ebx, ecx
jl 0x4b68cb
mov ebx, ecx
mov edx, dword [esp + 0x68]
cmp edx, eax
je 0x4b68e3
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call sym.runtime.memmove
mov ecx, dword [esp + 0x74]
mov eax, dword [esp + 0x7c]
cmp eax, ecx
jae 0x4b6a06
mov ecx, dword [esp + 0x70]
mov byte [ecx + eax], 0x2e
inc dword [esp + 0x7c]
lea eax, [esp + 0x68]
mov dword [esp], eax
call sym.path_filepath.postClean
mov eax, dword [esp + 0x70]
test eax, eax
je 0x4b6982
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
cmp ecx, edx
ja 0x4b6a01
mov edx, dword [esp + 0x78]
mov ebx, dword [esp + 0x7c]
cmp ebx, edx
ja 0x4b69fa
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x64], ecx
lea edx, [esp + 0x44]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call sym.runtime.slicebytetostring
mov dword [esp], 0
mov eax, dword [esp + 0x64]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 8], eax
call sym.runtime.concatstring2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x4b699f
mov edx, dword [esp + 0x84]
mov ecx, dword [esp + 0x88]
add ecx, dword [esp + 0x7c]
cmp edx, ecx
jb 0x4b69f5
mov eax, dword [esp + 0x80]
nop
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x4ea719]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x5135e0]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0xffffffff
call sym.strings.Replace
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
add esp, 0xb0
ret
call sym.runtime.panicSliceAlen
mov ecx, ebx
call sym.runtime.panicSliceAcap
call sym.runtime.panicSliceAlen
call sym.runtime.panicIndex
mov ecx, ebx
call sym.runtime.panicSliceAlen
call sym.runtime.panicIndex
inc edx
movzx ecx, byte [esp + 0x26]
cmp edx, ebx
jge 0x4b684c
movzx edi, byte [edx + esi]
xchg edi, eax
cmp al, 0x5c
xchg edi, eax
je 0x4b684c
xchg edi, eax
cmp al, 0x2f
xchg edi, eax
je 0x4b684c
mov eax, dword [esp + 0x70]
test eax, eax
jne 0x4b6af3
mov dword [esp + 0x34], edx
xchg edi, eax
mov byte [esp + 0x27], al
xchg edi, eax
mov eax, dword [esp + 0x7c]
mov ecx, dword [esp + 0x6c]
cmp eax, ecx
jge 0x4b6a81
jae 0x4b6b25
mov ebp, dword [esp + 0x68]
add ebp, eax
xchg edi, eax
cmp byte [ebp], al
xchg edi, eax
jne 0x4b6a81
lea ebp, [eax + 1]
mov dword [esp + 0x7c], ebp
mov ebp, dword [esp + 0x30]
jmp 0x4b6a17
mov dword [esp + 0x3c], ecx
lea eax, [0x4d6820]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], ecx
mov dword [esp + 0x70], eax
mov edx, dword [esp + 0x6c]
mov ebx, dword [esp + 0x7c]
cmp ebx, edx
ja 0x4b6b1e
cmp ebx, ecx
jl 0x4b6ac1
mov ebx, ecx
mov edx, dword [esp + 0x68]
cmp edx, eax
je 0x4b6ad9
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call sym.runtime.memmove
movzx ecx, byte [esp + 0x26]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x30]
mov esi, dword [esp + 0x64]
movzx edi, byte [esp + 0x27]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x7c]
cmp ecx, eax
jae 0x4b6b13
mov eax, dword [esp + 0x70]
xchg edi, ebx
mov byte [eax + ecx], bl
xchg edi, ebx
inc dword [esp + 0x7c]
jmp 0x4b6a17
mov edx, eax
mov eax, ecx
mov ecx, edx
call sym.runtime.panicIndex
mov ecx, ebx
call sym.runtime.panicSliceAlen
call sym.runtime.panicIndex
mov ecx, edi
call sym.runtime.panicIndex
mov ecx, ebx
call sym.runtime.panicSliceAlen
mov ecx, edi
call sym.runtime.panicIndex
mov edx, eax
mov eax, esi
jmp 0x4b6448
mov eax, ebp
mov ecx, edx
call sym.runtime.panicIndex
mov ecx, ebx
call sym.runtime.panicSliceAlen
mov eax, edx
mov ecx, ebp
call sym.runtime.panicIndex
mov eax, ebp
mov ecx, edx
call sym.runtime.panicIndex
mov ecx, ebx
call sym.runtime.panicSliceAlen
mov eax, edx
mov ecx, ebp
call sym.runtime.panicIndex
mov eax, ebp
mov ecx, edx
call sym.runtime.panicIndex
mov ecx, ebx
call sym.runtime.panicSliceAlen
mov eax, edx
mov ecx, ebp
call sym.runtime.panicIndex
dec edx
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x7c]
cmp ebp, edx
jge 0x4b6b3f
mov edi, dword [esp + 0x70]
test edi, edi
je 0x4b6bbb
mov ecx, dword [esp + 0x74]
cmp ecx, edx
jbe 0x4b6beb
movzx edi, byte [edi + edx]
movzx ecx, byte [esp + 0x26]
jmp 0x4b6bcb
mov edi, dword [esp + 0x6c]
cmp edi, edx
jbe 0x4b6be2
mov edi, dword [esp + 0x68]
movzx edi, byte [edi + edx]
xchg edi, eax
cmp al, 0x5c
xchg edi, eax
je 0x4b6b3f
xchg edi, eax
cmp al, 0x2f
xchg edi, eax
jne 0x4b6b93
jmp 0x4b6b3f
mov eax, edx
mov ecx, edi
call sym.runtime.panicIndex
mov eax, edx
call sym.runtime.panicIndex
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, edi
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, edi
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, edx
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, ebp
mov ecx, edx
call sym.runtime.panicIndex
mov ecx, ebx
call sym.runtime.panicSliceAlen
mov eax, edx
mov ecx, ebp
call sym.runtime.panicIndex
call sym.runtime.panicSliceB
nop
call sym.runtime.morestack_noctxt
jmp sym.path_filepath.Clean