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

Disassembly:
mov ecx, dword [0x647d6c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 8]
cmp eax, dword [ecx + 8]
jbe 0x4f3fd9
sub esp, 0x88
mov ecx, dword [esp + 0x90]
cmp ecx, 1
jle 0x4f39e2
cmp ecx, 2
jle 0x4f39da
lea ebx, [ecx - 2]
mov dword [esp + 0x48], ebx
mov ebp, dword [esp + 0x8c]
xor eax, eax
xor edx, edx
xor esi, esi
xor edi, edi
jmp 0x4f3e99
xor eax, eax
xor edx, edx
xor ebx, ebx
jmp 0x4f39e9
add esp, 0x88
ret
test al, al
jne 0x4f3a04
mov eax, dword [esp + 0x8c]
lea ebx, [eax + ecx*8 - 8]
mov ebp, dword [ebx]
mov edx, dword [ebx + 4]
xor ebx, ebx
jmp 0x4f3e62
mov dword [esp + 0x3c], edx
mov dword [esp + 0x74], ebx
mov dword [esp], ebx
mov dword [esp + 4], edx
lea eax, [0x568d58]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call sym.strings.Cut
movzx eax, byte [esp + 0x20]
mov byte [esp + 0x27], al
test al, al
jne 0x4f3a66
mov ebx, dword [esp + 0x8c]
mov ecx, dword [ebx + 4]
cmp ecx, 2
jb 0x4f3e57
mov ebp, dword [ebx]
lea esi, [ecx - 2]
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 2
add esi, ebp
xor edx, edx
jmp 0x4f3c9e
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
test edx, edx
jle 0x4f3ab9
lea ebp, [edx - 1]
cmp edx, ebp
jb 0x4f3c8f
mov dword [esp + 0x30], edx
mov dword [esp + 0x78], ebx
lea eax, [ebx + edx - 1]
mov dword [esp], eax
lea eax, [0x569830]
mov dword [esp + 4], eax
mov dword [esp + 8], 1
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x78]
mov ecx, eax
movzx eax, byte [esp + 0x27]
jmp 0x4f3abb
xor ecx, ecx
test cl, cl
je 0x4f3acb
lea ecx, [edx - 1]
cmp edx, ecx
jae 0x4f3acd
jmp 0x4f3c8a
mov ecx, edx
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x74], ebx
mov eax, dword [esp + 0x90]
mov edx, dword [esp + 0x8c]
lea ebp, [edx + eax*8 - 8]
mov dword [esp + 0x84], ebp
mov esi, dword [ebp]
mov dword [esp + 0x7c], esi
mov edi, dword [ebp + 4]
mov dword [esp + 0x34], edi
mov dword [esp], esi
mov dword [esp + 4], edi
lea ebp, [0x539788]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 2
call sym.strings.Cut
nop
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
xor edx, edx
jmp 0x4f3b28
inc edx
cmp edx, eax
jge 0x4f3b4b
lea ebx, [edx + ecx]
cmp byte [ebx], 0x20
jbe 0x4f3b27
mov ebx, dword [esp + 0x34]
mov edx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x74]
xor eax, eax
jmp 0x4f3c3f
movzx eax, byte [esp + 0x27]
test al, al
je 0x4f3b61
mov eax, 3
lea ecx, [0x5398f8]
jmp 0x4f3b6c
mov eax, 2
lea ecx, [0x539788]
mov dword [esp], 0
mov edx, dword [esp + 0x74]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call sym.runtime.concatstring2
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x8c]
lea edx, [ecx + eax*8 - 4]
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x14]
mov dword [edx], ebx
mov edx, dword [0x647e70]
test edx, edx
jne 0x4f3bbf
mov edx, dword [esp + 0x84]
jmp 0x4f3bd2
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebp
mov edx, dword [esp + 0x84]
mov ebx, dword [edx]
mov dword [edi + 4], ebx
mov dword [edx], ebp
mov edx, dword [esp + 0x2c]
xor ebx, ebx
jmp 0x4f3bdd
inc ebx
cmp eax, ebx
jle 0x4f3c2e
lea ebp, [ecx + ebx*8]
test ebx, ebx
jle 0x4f3bdc
mov esi, dword [ebp + 4]
test esi, esi
je 0x4f3bdc
cmp edx, esi
ja 0x4f3c35
mov edi, dword [ebp]
lea ecx, [ecx + ebx*8 + 4]
sub esi, edx
mov dword [ecx], esi
mov ecx, dword [0x647e70]
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, edx
add esi, edi
test ecx, ecx
je 0x4f3c22
call sym.runtime.gcWriteBarrier2
mov dword [edi], esi
mov ecx, dword [ebp]
mov dword [edi + 4], ecx
mov dword [ebp], esi
mov ecx, dword [esp + 0x8c]
jmp 0x4f3bdc
add esp, 0x88
ret
mov eax, edx
mov ecx, esi
call sym.runtime.panicSliceB
inc eax
cmp eax, edx
jge 0x4f3c6c
cmp eax, ebx
jge 0x4f3c6a
movzx edi, byte [eax + esi]
lea ecx, [eax + ebp]
xchg edi, eax
cmp byte [ecx], al
xchg edi, eax
jne 0x4f3c66
xchg edi, eax
cmp al, 0x20
xchg edi, eax
jbe 0x4f3c3e
xchg edi, eax
cmp al, 0x2a
xchg edi, eax
je 0x4f3c3e
cmp eax, edx
jmp 0x4f3c6c
cmp eax, edx
jmp 0x4f3c6c
cmp eax, edx
ja 0x4f3c83
mov ecx, dword [esp + 0x8c]
mov edx, eax
mov eax, dword [esp + 0x90]
jmp 0x4f3bd8
mov ecx, eax
call sym.runtime.panicSliceAlen
call sym.runtime.panicSliceAlen
mov eax, ebp
mov ecx, edx
call sym.runtime.panicSliceB
inc edx
movzx eax, byte [esp + 0x27]
cmp edx, edi
jge 0x4f3ce1
lea eax, [edx + esi]
cmp byte [eax], 0x20
jbe 0x4f3c98
mov dword [esp + 0x44], ecx
mov dword [esp + 0x80], ebp
lea eax, [0x51ea80]
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 + 0x80]
mov edx, dword [esp + 0x44]
mov ebx, 2
jmp 0x4f3d4e
mov edx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x74]
mov ecx, edx
xor esi, esi
jmp 0x4f3cf7
inc esi
movzx eax, byte [esp + 0x27]
mov edx, edi
cmp esi, 3
jge 0x4f3d15
test edx, edx
jle 0x4f3d15
lea edi, [edx - 1]
cmp ecx, edi
jbe 0x4f3d3f
lea eax, [edx + ebp - 1]
cmp byte [eax], 0x20
je 0x4f3cef
movzx eax, byte [esp + 0x27]
cmp edx, ecx
jne 0x4f3d27
test edx, edx
jle 0x4f3d27
lea esi, [edx + ebp - 1]
cmp byte [esi], 9
jne 0x4f3d27
dec edx
cmp edx, ecx
ja 0x4f3d34
mov ecx, edx
mov ebx, ebp
jmp 0x4f3acd
mov eax, ecx
mov ecx, edx
mov edx, eax
call sym.runtime.panicSliceAlen
mov eax, edi
call sym.runtime.panicIndex
xchg ebp, ecx
mov byte [eax + ebx], cl
xchg ebp, ecx
inc ebx
cmp ebx, edx
jge 0x4f3d5d
movzx ebp, byte [ebx + ecx]
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
jbe 0x4f3d46
cmp ebx, 2
jle 0x4f3d85
cmp edx, 2
jbe 0x4f3e4b
cmp byte [eax + 2], 9
jne 0x4f3d81
cmp ebx, edx
ja 0x4f3e44
add ebx, 0xfffffffe
add eax, 2
jmp 0x4f3d92
cmp ebx, edx
jmp 0x4f3d87
cmp ebx, edx
mov word [eax], 0x2020
ja 0x4f3e3d
lea ecx, [esp + 0x54]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call sym.runtime.slicebytetostring
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
jl 0x4f3e02
mov edx, ecx
sub ecx, eax
cmp edx, ecx
jb 0x4f3e34
mov ebx, edx
sub ebx, ecx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, ecx
mov esi, dword [esp + 0x74]
add ebx, esi
cmp eax, ebp
je 0x4f3dd5
xor ecx, ecx
jmp 0x4f3e0a
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0xc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x74]
mov ecx, eax
mov eax, dword [esp + 0x28]
jmp 0x4f3e0a
mov edx, ecx
mov esi, dword [esp + 0x74]
xor ecx, ecx
test cl, cl
je 0x4f3e18
mov ecx, edx
sub ecx, eax
cmp edx, ecx
jae 0x4f3e1a
jmp 0x4f3e2f
mov ecx, edx
movzx eax, byte [esp + 0x27]
mov ebx, dword [esp + 0x8c]
mov ebp, esi
mov edx, ecx
jmp 0x4f3d2b
call sym.runtime.panicSliceAlen
mov eax, ecx
mov ecx, edx
call sym.runtime.panicSliceB
mov ecx, ebx
call sym.runtime.panicSliceAcap
mov ecx, ebx
call sym.runtime.panicSliceAcap
mov eax, 2
mov ecx, edx
call sym.runtime.panicIndex
mov eax, 2
call sym.runtime.panicSliceB
inc ebx
cmp ebx, edx
jge 0x4f3e7a
movzx esi, byte [ebx + ebp]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
jbe 0x4f3e61
xchg esi, eax
cmp al, 0x2a
xchg esi, eax
je 0x4f3e61
cmp ebx, edx
ja 0x4f3e85
mov edx, ebx
mov ebx, ebp
jmp 0x4f3a04
mov ecx, ebx
call sym.runtime.panicSliceAlen
inc eax
mov edi, dword [esp + 0x48]
mov edi, esi
mov esi, ebx
mov ebx, dword [esp + 0x48]
cmp eax, ebx
jge 0x4f3f35
mov dword [esp + 0x2c], esi
mov dword [esp + 0x74], edi
lea ebx, [ebp + eax*8 + 8]
mov dword [esp + 0x84], ebx
mov esi, dword [ebx]
mov edi, dword [ebx + 4]
nop
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x4c]
jmp 0x4f3f53
test dl, dl
je 0x4f3edf
mov edx, edi
mov ebx, esi
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x74]
jmp 0x4f3ee3
mov edx, edi
mov ebx, esi
mov dword [esp + 0x40], eax
xor ebp, ebp
jmp 0x4f3f7c
lea ebx, [eax + 1]
cmp ecx, ebx
jbe 0x4f3f69
lea ebx, [ebp + eax*8 + 0xc]
mov dword [ebx], 0
mov ebx, dword [0x647e70]
test ebx, ebx
jne 0x4f3f12
mov ebx, dword [esp + 0x84]
jmp 0x4f3f22
mov ebx, dword [esp + 0x84]
mov esi, dword [ebx]
call sym.runtime.gcWriteBarrier1
mov dword [edi], esi
mov dword [ebx], 0
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x74]
jmp 0x4f3e8c
mov eax, edx
mov edx, esi
mov ebx, edi
jmp 0x4f39e9
inc ebx
mov ebp, dword [esp + 0x8c]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x84]
mov ebx, dword [esp + 0x38]
cmp ebx, edi
jge 0x4f3eee
lea ebp, [ebx + esi]
cmp byte [ebp], 0x20
jbe 0x4f3f40
jmp 0x4f3ecd
mov eax, ebx
call sym.runtime.panicIndex
inc ebp
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x90]
cmp ebp, edi
jge 0x4f3fba
cmp ebp, edx
jge 0x4f3fb8
movzx ecx, byte [esi + ebp]
lea eax, [ebp + ebx]
cmp byte [eax], cl
jne 0x4f3fa9
cmp cl, 0x20
jbe 0x4f3f70
cmp cl, 0x2a
je 0x4f3f70
cmp ebp, edi
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x90]
jmp 0x4f3fba
cmp ebp, edi
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x90]
jmp 0x4f3fba
cmp ebp, edi
ja 0x4f3fcf
mov edx, 1
mov ebx, ebp
mov ebp, dword [esp + 0x8c]
jmp 0x4f3e8c
mov ecx, ebp
mov edx, edi
call sym.runtime.panicSliceAlen
nop
call sym.runtime.morestack_noctxt
jmp sym.go_printer.stripCommonPrefix